_리눅스 실습 커리큘럼 10/40 · 권한과 사용자 (5주차)_
앞 편에서 파일마다 chmod 로 권한을 맞췄습니다. 그런데 매번 chmod 를 치는 사람은 결국 하나를 빠뜨립니다. 만들어지는 순간의 기본 권한을 정책으로 정하는 것이 umask 이고, 공유 디렉터리의 삭제 보호가 sticky bit 입니다.
umask와 sticky bit, 왜 필요한가
- 운영 계정이 만드는 파일을 남이 읽지 못하게 하려면 umask 027 한 줄로 끝납니다.
/tmp처럼 모두가 쓰는 디렉터리에서 남의 파일을 지우지 못하게 하는 장치가 sticky bit 입니다.- umask 계산은 리눅스마스터 2급 필기·실기 단골, sticky 는 LPIC-1 특수 권한 단원입니다.
이번 편에서 익힐 것
- umask 계산 — 파일 666, 디렉터리 777 에서 빼기
- 로그인 셸에 영구 적용 —
~/.bashrc - 실제 파일 권한으로 확인 —
su - 사용자,stat - sticky bit —
chmod 1777,chmod +t
umask와 sticky bit 핵심 명령어
umask # 현재 값(예: 0022)
echo 'umask 027' >> /home/alice/.bashrc
su - alice -c 'umask' # 0027 — 로그인 셸(-)이어야 .bashrc 가 읽힘
su - alice -c 'mkdir ~/docs && touch ~/docs/memo.txt'
stat -c '%a %n' /home/alice/docs /home/alice/docs/memo.txt # 750, 640
chmod 1777 /srv/upload # sticky: 맨 앞 1
stat -c %A /srv/upload # drwxrwxrwt ← 끝의 t
| umask | 새 파일 | 새 디렉터리 |
|---|---|---|
| 022 | 644 | 755 |
| 027 | 640 | 750 |
| 077 | 600 | 700 |
- 권한 문자열 끝이
t면 sticky + 실행,T면 sticky 만(기타 실행 없음)입니다.
umask와 sticky bit 자주 하는 실수
su alice(하이픈 없이) — 로그인 셸이 아니라.bashrc가 안 읽혀 umask 가 반영되지 않은 듯 보입니다.- root 로 만들고 chmod 로 숫자만 맞춤 — 통과는 되지만 umask 를 확인하는 문제의 목적이 아닙니다.
chmod 777만 하고 sticky 를 빼먹음 —1777또는+t.
umask와 sticky bit 실습 문제
- umask 로 기본 권한 정책 적용하기
- 공유 업로드 디렉터리에 sticky bit 설정하기
다음 편
다음 편은 SUID·SGID·world-writable 파일 감사 입니다. 화·금요일에 이어집니다.
<!-- publish_key:linux-path-20w-p10-post -->

아직 댓글이 없습니다. 궁금한 점이나 풀이 경험을 남겨 보세요.