반응형
✅setuid (Set User ID)
📌 정의
- 파일 실행 시, 실행한 사용자(user)의 권한이 아닌 → 해당 파일의 소유자 권한으로 실행되도록 하는 권한 비트
🔧 예시
-rwsr-xr-x 1 root root 102K /usr/bin/passwd
- s → setuid 설정됨 (소유자 권한)
- 소유자는 root → 일반 유저가 실행해도 root 권한으로 작동함
📍 주요 사용처
- /usr/bin/passwd: 사용자 비밀번호 변경 프로그램
- 일반 사용자가 자신의 /etc/shadow를 직접 수정할 수는 없음
- setuid root로 실행되기 때문에 passwd는 root 권한으로 처리 가능
⚠️ 주의 사항 (보안)
- 권한 상승의 핵심 수단
- 취약한 setuid 프로그램이 있으면 일반 사용자가 root 쉘 획득 가능
- 스크립트 파일에는 setuid 적용 안 됨 (해킹 위험 때문)
✅ setgid (Set Group ID)
📌 정의
- 파일 또는 디렉터리에 적용될 수 있음
🔹 파일에 적용
- 실행 시 해당 파일 소유 그룹의 권한으로 실행
🔹 디렉터리에 적용
- 그 디렉터리 안에 생성되는 파일/디렉터리의 그룹 소유자가 부모 디렉터리와 동일하게 됨
🔧 예시: 디렉터리
mkdir /shared chown root:devgroup /shared chmod 2775 /shared
- 2는 setgid 비트
- ls -l 시 drwxr-sr-x처럼 s가 나옴
- 이후 이 디렉터리에 생성되는 모든 파일은 자동으로 devgroup 그룹 소유가 됨
협업 시 여러 사용자가 하나의 그룹을 통해 공유 파일을 관리할 때 유용
🔐 퍼미션 비트 요약
비트 | 8진수 | 파일에서 의미 | 디렉터리에서 의미 |
setuid | 4 | 실행 시 파일 소유자 권한 | - |
setgid | 2 | 실행 시 파일 소유 그룹 권한 | 새 파일이 상위 그룹을 상속 |
sticky | 1 | - | 파일 소유자만 삭제 가능 (예: /tmp) |
🧠 퍼미션 표시 방식
- 일반 퍼미션: rwxrwxrwx
- 특수 비트 포함 시:
특수비트 조합 | 예시 |
setuid만 | -rwsr-xr-x |
setgid만 | -rwxr-sr-x |
둘 다 | -rwsr-sr-x |
디렉터리에서 setgid:
drwxr-sr-x 2 root devgroup 4096 Apr 25 12:00 shared
🛡️ 보안 관점 조언
✔ 확인 방법
find / -perm /4000 -type f 2>/dev/null # setuid find / -perm /2000 -type f 2>/dev/null # setgid (파일) find / -perm /2000 -type d 2>/dev/null # setgid (디렉터리)
✔ 위험한 setuid 파일 예시
- 임의로 컴파일한 C 프로그램에 setuid를 주는 것은 위험함
- 퍼미션 잘못 설정된 setuid는 root shell이 될 수도 있음
✔ 대응 방법
- 시스템 내 모든 setuid 파일은 정기 감사
- setuid가 필요 없는 바이너리는 chmod u-s로 비트 제거
✅ 요약
항목 | setudi | setgid |
적용 대상 | 파일 | 파일, 디렉터리 |
효과 | 실행 시 소유자 권한으로 실행 | 파일: 소유 그룹 권한 디렉토리: 그룹 상속 |
표시 | -rwsr-xr-x | -rwxr-sr-x (파일), drwxr-sr-x (디렉토리) |
보안 이슈 | root 권한 상승 가능 | 디렉토리 그룹 권한 관리 실수 |
반응형
'OS' 카테고리의 다른 글
[Windows] Win + R 실행창 유용 명령어 모음 (1) | 2025.04.29 |
---|---|
[Linux] 사용하지 않는 포트 비활성화 하는 방법 (0) | 2025.04.29 |
[Linux] shared memory 정리하는 법 (0) | 2025.04.17 |
[Linux] Oracle Shared memory 사용률 확인 (0) | 2025.04.17 |
[Linux] history 삭제하는 방법 (0) | 2025.04.03 |