"명령을 쳤는데 재부팅하니(또는 다시 로그인하니) 사라졌다"는 지문은 주차를 가리지 않고 같은 구조다. 명령은 지금만, 파일에 적어야 다음에도 유지된다.
지금만 (명령)
다음에도 (파일)
주차
mount /dev/sdb1 /data
/etc/fstab 에 한 줄
W2·W4
systemctl isolate multi-user.target
systemctl set-default multi-user.target
W2
init 3
/etc/inittab
W2
umask 027
~/.bashrc (전체 사용자는 /etc/profile)
W4
export EDITOR=vi
~/.bash_profile
W5
alias ll='ls -l'
~/.bashrc
W5
vi 안에서 :set nu
~/.vimrc
W6
at 22:00 (한 번 실행하고 사라진다)
crontab -e (반복)
W6
반대 방향의 함정도 있다. 파일을 고쳤는데 지금 반영이 안 된다 — 설정 파일은 읽히는 시점이 정해져 있기 때문이다. 셸 설정은 source 로, /etc/fstab은 mount -a 로 다시 읽히고, /etc/default/grub은 grub2-mkconfig 로 grub.cfg 를 다시 만들어야 한다. crontab -e 로 고친 예약만은 저장하는 즉시 반영된다.
일반 사용자가 root만 쓸 수 있는 /etc/shadow를 고치며 자기 비밀번호를 바꿀 수 있는 이유가 4주차의 SetUID 다. /usr/bin/passwd 가 4755 라서 실행하는 동안만 소유자(root)의 권한을 빌린다. 권한·계정·특수 권한 세 단원이 한 문제에 겹치는 대표 사례다.
시험 문항은 주차별로 나오지만 실제 작업은 주차를 넘나든다. 협업 디렉터리를 하나 만드는 과정을 따라가며 각 줄이 어느 단원인지 짚어 본다.
groupadd -g 1500 dev # W3 그룹 생성 → /etc/group 에 한 줄useradd -m -u 1001 -G dev alice # W3 계정 생성 → /etc/passwd, 홈 디렉터리passwd alice # W3 비밀번호 → /etc/shadowid alice# uid=1001(alice) gid=1001(alice) groups=1001(alice),1500(dev)mkdir /project # W3chgrp dev /project # W4 소유 그룹을 dev 로chmod 2770 /project # W4 SetGID(2) + rwxrwx---ls -ld /project# drwxrws--- 2 root dev 4096 Oct 14 10:00 /projectsu - alice # W3·W5 로그인 셸로 전환umask 027 # W4touch /project/plan.txtls -l /project/plan.txt# -rw-r----- 1 alice dev 0 Oct 14 10:05 /project/plan.txt
출력에서 읽을 것
이유
단원
groups=...,1500(dev)
-G는 보조 그룹이다. 기본 그룹(gid=)은 계정과 같은 이름으로 따로 만들어진 alice (레드햇·데비안 계열의 기본 동작)
W3
drwxrws--- 의 s
그룹 칸의 x 자리가 s → SetGID
W4
plan.txt의 그룹이 dev
alice의 기본 그룹(alice)이 아니라 디렉터리의 그룹을 물려받았다
W4
plan.txt의 권한 640
파일 기준 666에서 umask 027을 뺐다
W4
su - 의 하이픈
하이픈이 있어야 alice의 .bash_profile까지 읽는 로그인 셸이 된다
W5
여기에 프로세스와 패키지 단원이 이어 붙는다.
crontab -l # W6 root 의 예약 목록# 0 3 * * 0 tar -czf /backup/project.tar.gz /project
시각 다섯 칸은 분 0 · 시 3 · 일 * · 월 * · 요일 0 이므로 "매주 일요일 3시 정각"이다 (W6).
tar -czf 는 c 묶기 · z gzip 압축 · f 파일 이름 이다. z가 없으면 묶기만 하고 압축은 하지 않는다 (W7).
cron이 돌리는 작업에는 화면이 없다. 결과와 에러를 파일로 남기려면 줄 끝에 >> /var/log/backup.log 2>&1 을 붙인다 (W5).