본문 바로가기

학습 기록/리눅스 마스터 2급

[파일 시스템 관련 명령어] SetUID, SetGID, Sticky bit

[SetUID와 SetGID]

: 프로세스가 실행되는 동안 해당 프로세스의 root 권한을 임시로 가져오는 기능

: 프로세스가 사용자보다 높은 수준의 접근을 요구할 때 파일 접근 제한으로 원활한 기능을 제공할 수 없기 때문에 이를 해결하기 위한 방법


SetUID

: 프로그램을 실행하는 동안 프로세스는 파일의 소유자와 같은 권한으로 실행

 

- 소문자 's'

: 실행 파일에 setUID 설정

: 정상적으로 실행 가능

 

- 대문자 'S'

: 실행 파일이 아닌데 setUID 설정

: 실행 불가능


SetGID

: 프로그램을 실행하는 동안 프로세스는 파일의 그룹과 같은 권한으로 실행

: SetGID 권한이 명시된 디렉터리에 생성되는 모든 하위 디렉터리나 파일도 동일한 권한을 가짐


표기법

  코드 절대값 설명
SetUID s 4000 프로세스 실행 당시 UID로 설정
SetGID s 2000 프로세스 실행 당시 GID로 설정
Sticky bit t 1000 실행 후에도 메모리를 점유하도록 설정

 


[Sticky bit]

: 공용 디렉터리를 사용할 때 설정하여 사용

: Sticky bit로 설정되는 디렉터리는 /tmp 안에 생성

 

목적

: 해당 파일의 소유자나 root만이 변경 가능하게 하여 공용 디렉터리라도 권한에 제약을 두어 다른 사용자들의 파일을 보호하기 위한 목적

 

특징

1) 사용자 권한을 지정하기 어려운 프로그램들 - 일시적으로 특정 디렉터리에 파일을 생성하고 삭제하도록 이용

2) 특정 응용 프로그램이 다른 응용 프로그램에서 - 생성한 파일을 삭제하지 못하는 권한 설정

3) 설정된 디렉터리 - 누구든 접근 가능하고 파일을 생성

4) 생성된 sticky bit 파일 삭제 - 소유자(파일 생성자)와 관리자만 삭제 가능

5) sticky bit가 적용된 디렉터리 내 파일 - 생성은 누구나 가능, 삭제는 생성자 본인과 관리자만 가능

 

* 삭제와 관련하여 권한 확인 주의