SUID, SGID, Sticky Bit는 정보보안기사나 리눅스마스터 자격증 시험에는 거의 매년 출제될 정도로 중요한 토픽입니다. 해당 권한(특수권한) 보유 여부에 따라 보안 취약점이 노출 될 소지가 있기 때문입니다. 이 내용은 반드시 학습하시기 바랍니다.
리눅스/유닉스 시스템에서는 파일 및 디렉토리에 대한 접근을 제어하기 위해 일반 권한(읽기, 쓰기, 실행) 외에도 특수 권한(Special Permissions)을 제공합니다. 여기에는 다음 세 가지가 포함됩니다.
이들 특수 권한은 일반 권한만으로는 구현하기 어려운 시스템 관리 및 협업 기능, 그리고 보안 강화 목적으로 사용됩니다. 하지만 이 특수 권한들이 잘못 설정되었을 경우 보안상 큰 위협이 될 수 있으므로, 그 취약점과 함께 적절한 대응 방안도 반드시 이해하고 있어야 합니다.
SUID는 특정 실행 파일에 대해 사용자가 실행할 때 해당 파일의 ‘소유자’ 권한으로 실행되도록 하는 설정입니다. 예를 들어, 파일의 소유자가 root일 경우 일반 사용자도 root 권한으로 실행할 수 있게 됩니다.
ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 Apr 8 2025 /usr/bin/passwd
s
가 사용자 실행 위치에 있는 것으로 보아 SUID가 설정되어 있습니다.passwd
명령은 사용자가 자신의 비밀번호를 변경할 수 있게 해주지만, 이 작업은 /etc/shadow
파일을 수정해야 하므로 root 권한이 필요합니다. 이때 SUID가 이를 가능하게 해줍니다.chmod u+s filename
-rwsr-xr-x
형태로 표시됨find / -perm -4000 -type f 2>/dev/null
SGID는 파일 또는 디렉토리가 실행될 때 해당 그룹의 권한으로 실행되도록 설정하거나, 디렉토리 내 생성된 파일이 부모 디렉토리의 그룹을 상속받도록 설정하는 특수 권한입니다.
ls -ld /var/www/html
drwxr-sr-x 2 root webdev 4096 Apr 8 10:00 /var/www/html
s
가 그룹 실행 위치에 표시됨webdev
그룹의 소속 사용자들은 모두 이 디렉토리에 파일을 생성해도 동일 그룹으로 소유권이 설정되어 협업이 쉬움chmod g+s directory_or_file
770
, 750
등)find / -perm -2000 -type f 2>/dev/null
Sticky Bit는 디렉토리에 설정되는 특수 권한으로, 해당 디렉토리에 있는 파일을 오직 ‘소유자’만 삭제할 수 있도록 제한합니다. 특히, 공유 디렉토리에서 유용하게 사용됩니다.
ls -ld /tmp
drwxrwxrwt 10 root root 4096 Apr 8 10:05 /tmp
t
는 Sticky Bit가 설정된 디렉토리를 의미함/tmp
디렉토리는 시스템 전반에서 공유되는 임시 저장소이므로 모든 사용자에게 쓰기 권한을 부여하되, 각자의 파일만 삭제할 수 있게 Sticky Bit를 설정함chmod +t directory
/tmp
디렉토리는 다른 사용자가 내 파일을 삭제하거나 바꿀 수 있는 위험을 동반/tmp
, /var/tmp
등 공용 디렉토리에 Sticky Bit 반드시 설정ls -ld /tmp /var/tmp
SUID, SGID, Sticky Bit를 시각적으로 이해할 수 있도록 간단한 구성도를 아래에 나타내보겠습니다.
[사용자] ---> 실행 (파일 or 디렉토리) ---> SUID: 소유자 권한으로 실행
---> SGID (파일): 그룹 권한으로 실행
---> SGID (디렉토리): 그룹 상속 유지
---> Sticky Bit: 파일 소유자만 삭제 가능
항목 | 대상 | 작동 방식 | 보안 위험 | 대응 방안 |
---|---|---|---|---|
SUID | 파일 | 소유자 권한으로 실행 | 루트 권한 상승, 악용 가능 | SUID 파일 점검, 필요시 제거 |
SGID | 파일/디렉토리 | 그룹 권한 실행 또는 그룹 상속 | 그룹 권한 노출, 실행 취약점 | 권한 점검, 그룹 관리 |
Sticky Bit | 디렉토리 | 파일 소유자만 삭제 가능 | 파일 삭제 우려 (미설정 시) | /tmp 등 공용 폴더에 반드시 설정 |
SUID, SGID, Sticky Bit는 리눅스 시스템의 유연성과 보안성을 동시에 제공하는 유용한 기능입니다. 그러나, 그만큼 설정 실수로 인한 보안 사고의 위험성도 높기 때문에, 실무에서는 이 특수 권한들을 반드시 명확하게 이해하고, 정기적인 점검 및 보안 정책을 통해 철저히 관리해야 합니다.
윈도우 운영체제의 노트북에서는 iPhone 유선 테더링이 잘 안되는 경우가 많습니다. 보통 iPhone의 드라이버가 설치가 안되있어서인…
안녕하세요, 혹시 이런 생각해 본 적 없으신가요? "내가 투자한 회사는 누가 감시하고, 어떻게 운영될까?" 오늘은…
1. Gemini CLI란 무엇인가요? Gemini CLI는 터미널 환경에서 직접 Gemini 모델과 상호작용할 수 있도록 만들어진…
과적합은 머신러닝에서 학습용데이터를 과하게 학습하여, 실제데이터를 예측하지 못하는 현상을 말합니다. 인공지능(AI)의 학습 방법은 우리가 시험공부를…