사이트 내 전체검색
SetUID, SetGID, Sticky Bit
로빈아빠
https://cmd.kr/server/931 URL이 복사되었습니다.

본문

SetUID, SetGID, Sticky Bit


ㅇ 의 미


SetUID : 일반적으로는 파일을 실행시키면, 실행시킨 사용자의 권한으로 실행이 
되지만, SetUID가 설정된 파일을 실행하면 파일의 소유자 권한으로 실행이됨.


SetGID : 일반적으로는 파일을 실행시키면, 실행시킨 소유그룹의 권한을 가지게
되지만, SetGID가 설정된 파일을 실행하면 파일의 소유그룹권한을 가지게됨.


StickyBit : 공유디렉토리의 의미임. StickBit이 설정된 디렉토리에 파일을 생성하면 
생성한 사람의 소유로 생성됨. 삭제 또한 생성한 사람과 root만이 가능함.
한마디로 공유디렉토리로 사용하기 위한 용도임.


ㅇ 설정방법


- SetUID(SetGID, StickyBit)은 일반 퍼미션과는 별도로 그 퍼미션자리가 존재함.
- SetUID 설정 : chmod 4xxx 파일명 (xxx는 일반퍼미션)
- SetGID 설정 : chmod 2xxx 파일명 (xxx는 일반퍼미션)
- StickyBit설정 : chmod 1xxx 디렉토리명 (xxx는 일반퍼미션)
* SetUID와 SetGID를 동시에 설정 : chmod 6xxx 파일명 (xxx는 일반퍼미션)


ㅇ설정확인 : ls -l


-rwsr-xr-x 1 root root 42972 Jan 10 10:45 FILE1
-rwxr-sr-x 1 root root 1422 Jan 10 10:45 FILE2
-rwsr-sr-x 1 root root 142972 Jan 10 10:45 FILE3
drwxrwxrwt 10 root root 4096 Feb 8 16:48 tmp


ㅇ참고사항


- SetUID, SetGID, StickyBit는 해당 자리의 일반퍼미션에 실행퍼미션이 있어야만 적용됨.
- SetUID(SetGID, StickyBit)는 대부분 소문자로 표기됨.
- 만약 대문자로 표기되어 있다면 설정은 되어 있지만, 일반퍼미션에 실행퍼미션이 설정되어 있지 않기 때문임.


자료출처 : www.superuser.co.kr




명령어 실행절차


일반적으로 시스템사용자가 명령어를 실행시켰을 때 명령어를 찾아서 실행시키는 경로와 절차는 다음과 같습니다.

  1. 현재 작업디렉토리에서 찾음.
  2. $PATH에서 찾음
  3. 찾은후에 실행권한 체크
  4. 권한이 있다면 실행시킨 사용자의 UID로 실행
  5. 권한이없다면 이 파일이 Setuid bit가 있는가를 확인
  6. Setuid bit가 있다면 명령어 소유주의 UID(Effective UID)로 실행 

find 명령어로 찾기


setuid, setgid, sticky bit 퍼미션으로 설정된 파일 찾기


> setuid 퍼미션으로 설정된 파일 찾기


find / -perm -4000


> setgid 퍼미션으로 설정된 파일 찾기


find / -perm -2000


> sticky bit 퍼미션으로 설정된 파일 찾기


find / -perm -1000

 


Find 명령어로 setuid, setgid를 먼저 찾아내 남발 된 것을 제거 한다.


# find / -type f \( -perm -4000 -o -perm -2000\) -ls > test


 find

 find 명령어로

 /

 루트 밑으로

 -type f

 타입은 파일로

 \( \)

 비트 中 4000비트이거나 4000에서

 아무 비트나 추가된 파일 검색

 -perm -4000

 setuid 검색

 -perm -2000

 setgid 검색

 -o

 OR 조건

 -ls > test

 퍼미션 정보를 보여 주고,

 test 파일로 저장하라

댓글목록

등록된 댓글이 없습니다.

1,139 (4/23P)

Search

Copyright © Cmd 명령어 3.15.228.32