리눅스 파일 권한 ⑤특수 권한 setuid, setgid, stikybit

반응형

 

 

지금까지 리눅스 파일의 상세 정보를 읽고

 

파일과 디렉토리의 권한과 소유권을 변경하는 작업을 해봤습니다.

 

 

이번에는 예외적인 상황에서 일반 사용자의 권한을 바꿔주는 특수 권한에 대해서 알아봅시다.

 

 

 

 

SetUID

 

chmod 4000 파일명
chmod u+s 파일명
chmod u-s 파일명

 

/usr/bin/passwd 파일

 

 

setuid는 일반 사용자가 파일을 사용하는 동안 파일 소유자의 권한으로 실행할 수 있게 해주며,

 

사용자 권한의 x를 s로 바꿉니다.

 

(만약 사용자 권한에 x가 없는 상태에서 setuid 권한을 주면

s가 아닌 S로 바뀌는데, 이는 실행 권한이 없다는 뜻입니다.)

 

 

위 사진의 /usr/bin/passwd 파일은 사용자 정보가 들어있는 파일입니다.

 

원칙대로라면 소유주가 root로 설정되어있기 때문에 사용자 본인의 정보를 수정하지 못하는 일이 발생합니다.

 

하지만 setuid로 예외 권한을 설정하면

 

passwd 파일을 설정할 때에는 root의 권한을 가지고 수정할 수 있게 됩니다.

 

 

stat 명령어로 특수 권한 정보를 알 수 있습니다.

 

stat 파일명

 

 

파일 권한에 setuid 특수권한이 더해져있음을 볼 수 있습니다.

(4000 + 755 = 4755)

 

 

 

SetGID

 

chmod 2000 파일명
chmod g+s 파일명
chmod g-s 파일명

 

/usr/bin/write 파일

 

 

setgid는 일반 사용자가 파일을 사용하는 동안 파일 그룹의 권한으로 실행할 수 있게 해주며,

 

사용자 권한의 x를 s로 바꿉니다.

 

(만약 그룹 권한에 x가 없는 상태에서 setgid 권한을 주면

s가 아닌 S로 바뀌는데, 이는 실행 권한이 없다는 뜻입니다.)

 

setgid 권한을 설정한 디렉토리에서 하위 디렉토리를 생성하면 동일한 권한으로 생성되는 특징이 있습니다.

.

 

 

stat 명령어로 파일의 상태 정보를 확인해봅시다.

 

 

 

 

파일 권한에 setuid 특수권한이 더해져있음을 볼 수 있습니다.

(2000 + 755 = 2755)

 

 

Stiky Bit

 

chmod 1000 파일명
chmod o+t 파일명(chmod u+t 파일명)
chmod o-t 파일명(chmod u-t 파일명)

 

 

 

stikybit 권한이 설정된 디렉토리에는

 

누구나 파일과 디렉토리를 만들고 접근할 수 있습니다.

 

단, 삭제는 생성한 사용자와 디렉토리의 소유자만 가능합니다.

 

 

 

 

SetUID, SetGID, Stiky bit 파일 찾기

 

 

find 명령어의 perm 옵션을 사용하면 해당 권한을 가진 파일을 찾을 수 있습니다.

 

find / -perm 모드 : 모드와 똑같은 파일 찾기
find / -perm -모드 : 권한을 모두 만족하는 파일 찾기
find / -perm /모드 : 권한을 하나라도 만족하는 파일 찾기

 

 

setuid로 확인을 해봅시다.

 

find / -perm [모드]

 

find / -perm -[모드]

 

 

find / -perm /[모드]

 

 

no such file or directory 오류도 같이 포함돼서 깔끔하게 나오지는 않습니다.

 

find / -perm -모드 2> /dev/zero

 

2는 오류 설명

>는 오류 출력 위치를 의미합니다.

 

이 명령어를 사용하면 오류는 제외하고 파일을 찾아줍니다.

 

 

 

 

 

 

 

 

 

 

 

 

[K-Digital Training, 애티버스러닝 교육 내용을 정리한 포스팅입니다.]

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유