개요
setgid 비트는 파일 시스템 권한의 한 종류로, 파일과 디렉토리에 따라 다르게 동작합니다. 디렉토리에 적용 시, 해당 디렉토리 내에 생성되는 모든 새 파일 및 하위 디렉토리는 부모 디렉토리의 그룹 소유권을 자동으로 상속받습니다. 실행 파일에 적용 시, 해당 파일이 실행될 때 파일 소유자의 그룹 ID로 프로세스가 실행됩니다.
주요 특징
- 디렉토리: 해당 디렉토리 내에 생성되는 파일 및 하위 디렉토리가 부모 디렉토리의 그룹 소유권을 상속받습니다.
- 실행 파일: 해당 파일이 실행될 때 파일 소유자의 그룹 ID로 프로세스가 실행됩니다.
chmod명령어를 통해 설정 및 해제합니다.
사용 예시
setgid 비트는 `chmod` 명령어를 사용하여 설정합니다. 숫자 모드(2xxx) 또는 심볼릭 모드(g+s)를 사용할 수 있습니다.
디렉토리에 setgid 설정 (심볼릭 모드)
sudo chmod g+s /shared_data
`/shared_data` 디렉토리에 setgid 비트를 설정하여, 이 디렉토리 내에 생성되는 모든 파일과 하위 디렉토리가 `/shared_data`의 그룹 소유권을 상속받도록 합니다.
디렉토리에 setgid 설정 (숫자 모드)
sudo chmod 2770 /shared_data
기존 권한(rwxrwx---)에 setgid 비트(2)를 추가하여 2770으로 설정합니다.
실행 파일에 setgid 설정
sudo chmod g+s /usr/local/bin/my_tool
특정 실행 파일이 항상 특정 그룹 권한으로 실행되도록 합니다. (예: `my_tool`이 `tool_group` 권한으로 실행)
setgid 비트 제거
sudo chmod g-s /path/to/item
파일 또는 디렉토리에서 setgid 비트를 제거합니다.
setgid 설정 확인
ls -l /path/to/item
`ls -l` 명령어를 사용하여 파일 또는 디렉토리의 권한을 확인합니다. 그룹 권한 위치에 's'가 있으면 setgid가 설정된 것입니다.
팁 & 주의사항
setgid 비트는 강력한 기능이므로 사용 시 주의가 필요합니다.
디렉토리 setgid 활용
- 공유 작업 디렉토리에서 여러 사용자가 동일한 그룹으로 파일을 생성해야 할 때 매우 유용합니다.
- 새로 생성되는 파일의 그룹 소유권을 일관되게 유지하여 권한 문제를 줄일 수 있습니다.
실행 파일 setgid 주의사항
- 실행 파일에 setgid를 설정하는 것은 보안 취약점의 원인이 될 수 있으므로 신중하게 사용해야 합니다.
- 신뢰할 수 있고 보안 검증이 완료된 실행 파일에만 적용해야 합니다.
umask와의 상호작용
setgid 비트가 설정된 디렉토리에서 파일이 생성될 때, umask 설정도 함께 고려됩니다. umask는 새로 생성되는 파일의 기본 권한을 제한하므로, setgid와 함께 적절히 설정해야 합니다.