rwx 9비트 외에 「특수 권한 3비트」가 있습니다.
setuid·setgid·sticky.
동작이 흥미롭고 보안에 중요.
setuid(SUID, 4xxx).
「실행 시 파일 소유자의 권한으로 실행」.
/usr/bin/passwd가 대표적 — 일반 사용자가 passwd로 비밀번호 바꾸려면 /etc/shadow에 쓰기 권한 필요한데, passwd가 root 소유 + setuid라 root 권한으로 실행되어 가능.
ls -l에서 소유자 x 자리에 s.
setgid(SGID, 2xxx).
1) 파일에 — 그룹 권한으로 실행.
2) 디렉토리에 — 그 안에 만들어진 파일이 디렉토리 그룹을 상속.
「공유 폴더」에 매우 유용 — 모든 멤버가 만든 파일이 자동으로 그룹 공유.
sticky bit(1xxx).
디렉토리에만 의미.
「그 디렉토리 안의 파일은 만든 사람만 삭제 가능」.
/tmp가 대표적 — 모든 사람이 쓸 수 있지만 다른 사람 파일은 못 지움.
ls -l에서 기타 x 자리에 t.
설정.
chmod 4755 file — setuid + 755.
chmod 2755 dir — setgid + 755.
chmod 1777 dir — sticky + 777.
또는 chmod u+s, g+s, +t.
보안 — setuid 파일은 신중하게(권한 상승 경로).
find / -perm -4000으로 시스템의 setuid 파일 점검.
한 줄 요약
특수 권한 — setuid는 소유자 권한 실행(passwd 등), setgid는 그룹 상속(공유 폴더), sticky는 본인 파일만 삭제(/tmp).
chmod 4755·2755·1777로 설정.
보안 점검 필수.
더 알아볼 것
- setuid 보안 위험
- setcap — capability로 대체
- find -perm으로 점검