

vagrant 사용자 복구기존 사용자 모두 삭제 (예: user01 등)
userdel -r user01
userdel -r user02
userdel -r user03
userdel -r testuser01
userdel -r vagrant
-r 옵션을 사용해야 홈 디렉토리까지 같이 삭제됨vagrant 사용자 재생성 + sudo 권한 부여useradd -m -s /bin/bash vagrant
passwd vagrant
wheel 그룹에 추가
usermod -aG wheel vagrant
wheel 그룹은 /etc/sudoers 파일에서 sudo 사용 허용됨vagrant 사용자로 전환
su - vagrant
root 권한 일회성 전환
sudo -i
홈 디렉토리 기본 경로 /home1, 기본 쉘 /bin/sh
useradd -D -b /home1 -s /bin/sh
useradd -D사용자: user01
UID: 1001
GID: 1001
보조그룹: 1000
홈디렉토리: /home/user01 (기본값 무시)
쉘: /bin/bash
groupadd -g 1001 user01
useradd -u 1001 -g 1001 -G 1000 -d /home/user01 -s /bin/bash user01
사용자: user02
UID: 2000
GID: 1000
보조그룹: 10
홈디렉토리: /home/user02
쉘: /bin/bash
useradd -u 2000 -g 1000 -G 10 -d /home/user2 -s /bin/bash user02
사용자: user03
UID: 2001
GID: 2001
보조그룹: wheel
홈디렉토리: /home/user03
쉘: /bin/bash
groupadd -g 2001 user03
useradd -u 2001 -g 2001 -G wheel -d /home/user3 -s /bin/bash user03
사용자: testuser01
UID: 2002
GID: 1000
보조그룹: 없음
홈디렉토리: /home/testuser01
쉘: /bin/sh
useradd -u 2002 -g 1000 testuser01
/home1에 생성되고, 쉘도 /bin/sh/home, /bin/bash로 변경useradd -D -b /home -s /bin/bash
user02 홈디렉토리 변경 → /home/user02
usermod -md /home/user02 user02
-m 옵션이 없으면 디렉토리만 등록되고 실제 이동은 안 됨-md 함께 써야 파일도 함께 이동됨testuser01 → user04 변경
usermod -l user04 -c "user4" -md /home/user04 -s /bin/bash testuser01
-l : 계정명 변경-c : comment-md : 홈 디렉토리 변경 및 이동-s : 쉘 변경/etc/passwd 확인
tail -n 5 /etc/passwd
id 확인
id user01
id user02
id user03
id user04
useradd -D -b /home1 -s /bin/shuseradd -u UID -g GID -G 보조 -d 홈 -s 쉘 사용자su - 사용자usermod -aG wheel 사용자usermod -l newname oldnameusermod -md /새홈 사용자usermod -s /bin/bash 사용자usermod -c "설명" 사용자newgroup01 - GID: 4000
newgroup02 - GID: 10
groupadd -g 4000 newgroup01
groupadd -og 10 newgroup02
newgroup01 → 이름 newgroup, GID 1000
groupmod -og 1000 -n newgroup newgroup01
newgroup02 → 이름 newgroup01, GID 4000
groupmod -g 4000 -n newgroup01 newgroup02
-g: GID 변경-n: 그룹명 변경user01 → newgroup 구성원
usermod -aG newgroup user01
user02 → newgroup01 구성원
usermod -aG newgroup01 user02
-aG: 기존 보조 그룹 유지하면서 추가grep newgroup /etc/group
grep newgroup01 /etc/group
또는
getent group newgroup
getent group newgroup01
또는
id user01
id user02
egrep 'user01|user02' /etc/group
groupdel newgroup
에러발생 -> id vagrant
-> usermod -g 1000 vagrant -> id vagrant
-> groupdel newgroup -> 삭제완료
groupdel newgroup01
usermod -g 다른그룹 사용자로 변경 필요예: user01, user02, user03 잠겨 있었다면
usermod -U user01
usermod -U user02
usermod -U user03
U: unlockpasswd -S user01groupadd -g GID 그룹명GID 변경: groupmod -g GID -n 새이름 기존이름usermod -aG 그룹명 사용자getent group 그룹명groupdel 그룹명usermod -U 사용자user01이 /etc/shadow를 cat으로 읽을 수 있도록 설정/etc/shadow는 root 전용 접근 (600 권한, root:root)
해결 방법: cat 명령어에 setuid 설정 → 실행 시 root 권한 부여
cp /bin/cat /usr/local/bin/cat_shadow
chmod u+s /usr/local/bin/cat_shadow
chown root:root /usr/local/bin/cat_shadow
검증
ls -l /usr/local/bin/cat_shadow
# -rwsr-xr-x 1 root root ...
user01로 전환하여 테스트
su - user01
/usr/local/bin/cat_shadow /etc/shadow
/etc/shadow 내용을 읽을 수 있어야 함/ptest 내 파일들이 항상 user02 그룹을 갖도록 설정단계 1: 디렉토리 생성
mkdir -m 2777 /ptest
단계 2: 소유 그룹을 user02로 설정
chown :user02 /ptest
단계 3: setgid 설정
chmod g+s /ptest
또는
chmod 2775 /ptest
/ptest에 만들어지는 모든 파일/디렉토리의 그룹이 user02로 자동 설정됨단계 1: 디렉토리 생성
mkdir -m 777 /ptest/dir01
단계 2: sticky bit 설정
chmod o+t /ptest/dir01
또는
chmod 1777 /ptest/dir01
파일/디렉토리 삭제 제한: 생성자 or root만 가능
보안성 있는 공동작업 디렉토리 설정 시 주로 사용 (/tmp도 같은 구조)
setuid: chmod u+s 파일
setgid: chmod g+s 디렉토리
sticky bit: chmod +t 디렉토리
/etc/shadow 읽기: su - user01 && /usr/local/bin/cat_shadow /etc/shadow
/ptest 내 그룹 유지: touch /ptest/testfile && ls -l /ptest
sticky bit 확인: ls -ld /ptest/dir01 (t 플래그 확인)
at <timespec>: 지정 시간에 명령어 한 번 실행
at -l 또는 atq: 예약 목록 확인
at -c <번호>: 예약 작업 내용 확인
atrm <번호>: 예약 작업 삭제
now +3 min: 지금부터 3분 뒤
teatime: 오후 4시
midnight: 자정
noon tomorrow: 내일 정오
04:00 PM 2/23/22: 날짜 지정 가능
12:00 PM today: 오늘 정오
1. 3분 뒤 ps -ef > psfile01 실행
at now +3 min
at> ps -ef > psfile01
<Ctrl + D>
2. 23년 8월 1일 0시에 date 실행 (메일로 결과 수신)
at 00:00 23-08-01
at> date
<Ctrl + D>
3. 오늘 오후 12시에 cal 실행 (메일로 결과 수신)
at 12:00 PM today
at> cal
<Ctrl + D>
4. 내일 오후 4시에 ps -ef > psfile02 실행
at teatime tomorrow
at> ps -ef > psfile02
<Ctrl + D>
5. 예약 확인
atq
crontab -e: 예약 작업 편집
crontab -l: 예약 목록 확인
crontab -r: 모든 예약 삭제
crontab <파일>: 예약 내용을 외부 파일로부터 등록
시간 설정 형식
분 시 일 월 요일 command
분: 0-59
시: 0-23
일: 1-31
월: 1-12 (Jan~Dec 가능)
요일: 0-7 (0 or 7: 일요일) (Mon~Sun 가능)
1. 매년 1월 첫 번째 일요일 자정 재부팅
0 0 1-7 1 0 reboot
2. 매월 13~17시 사이 10분마다 date >> datefile01
*/10 13-17 * * * date >> datefile01
3. test 파일에 아래 작업 내용 추가 (vim 사용)
vim test
내용
# 3. 3,6,9월 둘째 화요일 오후 2시 20분
20 14 8-14 3,6,9 2 cat /etc/passwd > userfile
# 4. 매주 수~금 오후 5시 secure 로그 추출
0 17 * * 3-5 egrep '^... .. (0[89]|1[0-7])' /var/log/secure > securefile
4. 해당 작업 예약 등록
crontab test
5. 작업 예약 목록 확인
crontab -l
6. 3번 작업 삭제 (crontab -e로 직접 삭제)
crontab -e
# 3번 라인 삭제
:wq
7. 모든 작업 삭제
crontab -r

디스크 인식
→ 파티션 생성 (fdisk)
→ 파일시스템 생성 (mkfs, mkswap)
→ 마운트 (mount, swapon)
→ 자동 마운트 설정 (/etc/fstab)
1. 디스크 인식
echo '- - -' > /sys/class/scsi_host/host0/scan # 또는 host1, host2...
lsblk # 디스크 상태 확인
2. 파티션 생성 (/dev/sdb 기준)
MBR 파티션 테이블
fdisk /dev/sdb
p: primarye: extended+2G: 2GB 크기 지정w: 저장3. 파티션 인식 강제 등록
partprobe /dev/sdb
4. 파일시스템 포맷
ext4
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2
mkfs.ext4 /dev/sdb3
xfs
mkfs.xfs /dev/sdb5
mkfs.xfs /dev/sdb6
mkfs.xfs /dev/sdb7
mkfs.xfs /dev/sdb8
5. 수동 마운트
mkdir /mnt/disk{1..3}
mount /dev/sdb1 /mnt/disk1
mount /dev/sdb2 /mnt/disk2
mount /dev/sdb3 /mnt/disk3
확인
df -Th
lsblk
6. 자동 마운트 설정
vim /etc/fstab
추가
/dev/sdb1 /mnt/disk1 xfs defaults 0 1
/dev/sdb2 /mnt/disk2 xfs defaults 0 1
/dev/sdb3 /mnt/disk3 xfs defaults 0 1
저장 후 마운트
mount -a
7. 모든 파티션 삭제
fdisk /dev/sdb
d (반복해서 모두 삭제)
w
partprobe /dev/sdb
8. 스왑 설정 실습
1G / 2G / 3G 크기의 주파티션 생성
mkswap /dev/sdb1
mkswap /dev/sdb2
mkswap /dev/sdb3
수동 마운트
swapon /dev/sdb1
자동 마운트 설정
vim /etc/fstab
추가
/dev/sdb2 swap swap defaults 0 0
/dev/sdb3 swap swap defaults 0 0
swapon -a
9. 스왑 상태 확인
free -h
swapon -s
lsblk
10. sticky bit + setgid 연습
디렉토리 생성 및 설정
mkdir /ptest
chmod 2777 /ptest
chown :user02 /ptest
확인
touch /ptest/file1
mkdir /ptest/dir1
ls -l /ptest
user02, 권한에 s 있음 (setgid)sticky bit 설정
mkdir /ptest/dir01
chmod 1777 /ptest/dir01
ls -ld /ptest/dir01
t 있음 → 생성자 또는 root만 삭제 가능lsblkdf -Thfree -h, swapon -sblkidfstab 확인: cat /etc/fstabsticky/setgid: ls -ld-f 옵션 필수: mkfs.xfs -f /dev/sdb1mount -a 대신 /etc/fstab 경로, UUID 등을 점검t): 공동 디렉토리 접근 + 파일 보호 용도로 /tmp에서 기본 사용