> 패키지 및 시스템 관리 > setgid

setgid: SGID 비트 이해 및 설정

setgid는 파일 또는 디렉토리에 적용되는 특별한 권한 비트입니다. 디렉토리에 설정되면 해당 디렉토리 내에 생성되는 모든 파일과 하위 디렉토리가 부모 디렉토리의 그룹 소유권을 상속받게 됩니다. 실행 파일에 설정되면 해당 파일이 실행될 때 파일 소유자의 그룹 ID로 실행됩니다. 이는 공유 환경에서 그룹 권한 관리를 용이하게 하거나 특정 프로그램이 특정 그룹 권한으로 실행되도록 할 때 유용합니다.

개요

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와 함께 적절히 설정해야 합니다.



동일 카테고리 명령어