1) 특수권한 요약 (기호 방식 / 의미 / 대표 예)
| 특수권한 | 숫자값 | 기호(권한 비트에 표시) | 의미(한 줄) | 대표 예 |
|---|---|---|---|---|
| setuid | 4 | 실행 권한 자리 x가 **s**로 표시 (없으면 S) → -rwsr-xr-x |
파일 실행 시 실행한 사용자가 아니라 파일 소유자 권한으로 실행 | /usr/bin/passwd |
| setgid | 2 | 그룹 실행 자리 x가 **s**로 표시 (없으면 S) → -rwxr-sr-x |
실행 시 그룹 권한 적용 / 디렉터리에 걸면 생성 파일이 디렉터리의 그룹을 상속 | 공유 디렉터리, 일부 시스템 바이너리 |
| sticky-bit | 1 | 기타 사용자 실행 자리 x가 **t**로 표시 (없으면 T) → drwxrwxrwt |
디렉터리 내에서 본인/소유자/root만 삭제 가능 (남이 만든 파일 삭제 방지) | /tmp |
s vs S, t vs T
-
s/t: 해당 위치에 실행(x) 권한이 있을 때 -
S/T: 실행(x) 권한이 없는데 특수권한만 걸린 상태(대개 설정 실수)
2) 특수권한 설정 예제 (chmod 숫자/기호 방식)
| 목적 | 숫자 방식 예제 | 기호 방식 예제 | 확인(권한 표시 예) |
|---|---|---|---|
| setuid 설정 | chmod 4755 file |
chmod u+s file |
-rwsr-xr-x |
| setgid 설정(파일) | chmod 2755 file |
chmod g+s file |
-rwxr-sr-x |
| setgid 설정(디렉터리: 그룹 상속) | chmod 2775 dir |
chmod g+s dir |
drwxrwsr-x 또는 drwxrwsr-x(그룹 x 있으면 s) |
| sticky 설정(디렉터리) | chmod 1777 dir |
chmod +t dir |
drwxrwxrwt |
| 특수권한 조합 예 | chmod 6755 file (4+2=6) |
chmod u+s,g+s file |
-rwsr-sr-x |
3) “특수권한 파일/디렉터리 검색” 예제 (find)
| 찾고 싶은 대상 | 명령어 예제 | 설명 |
|---|---|---|
| setuid 파일 찾기 | find / -perm -4000 -type f 2>/dev/null |
소유자 setuid 비트가 설정된 파일 |
| setgid 파일 찾기 | find / -perm -2000 -type f 2>/dev/null |
그룹 setgid 비트가 설정된 파일 |
| sticky-bit 디렉터리 찾기 | find / -perm -1000 -type d 2>/dev/null |
sticky-bit가 설정된 디렉터리 |
| setuid 또는 setgid 찾기 | find / -perm /6000 -type f 2>/dev/null |
둘 중 하나라도(OR) 설정된 파일 |
| 특수권한 “정확히” 매칭(주의) | find / -perm 4755 -type f 2>/dev/null |
권한이 정확히 4755인 것만 찾음(실무에선 보통 -4000//6000를 더 씀) |
| 결과를 상세 표시 | find / -perm -4000 -type f -exec ls -l {} \; 2>/dev/null |
권한 문자열까지 같이 확인 |
보안기사 시험 포인트(짧게)
-
setuid/setgid: 권한 상승과 직결 → 관리 미흡 시 취약점(특히 쓰기 가능한 파일에 setuid는 위험)
-
sticky-bit:
/tmp같은 공용 디렉터리에서 “남의 파일 삭제 방지”