시스템 보안 - 리눅스 특수권한(SetUID, SetGID, Stickybit)
본문 바로가기

시스템 보안 - 리눅스 특수권한(SetUID, SetGID, Stickybit)

액트 2019. 8. 27.

시스템 보안 - 리눅스 특수권한(SetUID, SetGID, Stickybit)


SetUID와 SetGID가 설정된 모든 파일을 찾으려는 명령어가 바르게 기술된 것은?      2
① find / -type f \(-perm -1000 -0 perm -2000 \) -print 
② find / -type f \(-perm -2000 -0 perm -4000 \) -print
③ find / -type f \(-perm -100 -0 perm -200 \) -print
④ find / -type f \(-perm -200 -0 perm -400 \) -print


리눅스 특수권한에 대해 살펴보겠습니다.

리눅스는 보통 사용자와 파일에 권한을 부여해 가장 기초적인 보안 체계를 이룹니다.

일반적으로 파일이나 디렉토리에는 user, group, other 권한이 존재하고

각각 읽기, 쓰기, 실행 권한을 부여할 수 있습니다.

이런 일반 권한 이외에도 리눅스에는 특수권한이란 것이 존재합니다.

 

  • SetUID

SetUID가 설정된 파일을 실행할 때 일시적으로 파일 소유자의 권한을 얻어 실행할 수 있도록 합니다. 

예를들어 root 권한으로 지정된 프로그램에 SetUID가 지정되어 있다면 실행할 때 root 권한으로 실행됩니다.

SetUID를 적용하기 위해서는 기존의 허가권 앞에 4를 붙이면 됩니다.

ex) # chmod 4644 파일이름

<기존 권한에 실행권한이 없으면 대문자 S, 있으면 소문자 s로 표시됩니다.>

 

SetUID가 적용되어 있는 파일 중 가장 대표적인 것은 /usr/bin/passwd 파일입니다.

해당 파일은 계정의 비밀번호를 변경할 수 있도록 하는 명령어 실행 파일로

/etc/passwd로 접근하여 비밀번호를 변경하도록 합니다.

실제 /etc/passwd의 권한은 소유주인 root만이 변경이 가능하도록 설정이 되어있습니다.

만약 /usr/bin/passwd에 SetUID가 적용되어있지 않다면 일반 사용자들은 

항상 관리자를 거쳐 자신의 비밀번호를 변경해야합니다.

이런 번거로움을 줄이기위해 일반 사용자들도 root의 권한으로 /etc/passwd 파일을 수정 가능하도록 설정한 것입니다.

 

  • SetGID

 SetUID와 마찬가지로 SetGID가 설정된 파일을 실행할 때 일시적으로 파일 소유그룹의 권한을 얻어 실행하도록 합니다.

SetGID를 적용하기 위해서는 기존의 허가권 앞에 2를 붙이면 됩니다.

ex) # chmod 2644 파일이름

<기존 권한에 실행권한이 없으면 대문자 S, 있으면 소문자 s로 표시됩니다.>

 

  • Sticky Bit

Sticky Bit가 설정된 디렉토리에 파일을 생성하면 해당 파일은 생성한 사람의 소유가 되며

소유자와 root만이 해당 파일에 대한 삭제 및 수정에 대한 권한을 가질 수 있습니다.

즉, Sticky Bit가 설정된 디렉토리안에 누구나 파일을 생성할 수는 있지만 삭제는 본인과 관리자만 가능하게 되는겁니다. 

Sticky Bit를 적용하기 위해서는 기존의 허가권 앞에 1를 붙이면 됩니다.

ex) # chmod 1644 디렉토리이름

<기존 권한에 실행권한이 없으면 대문자 T,  있으면 소문자 t로 표시됩니다.>

 

 

일반적으로 유닉스 운영체제는 파일이나 디렉토리의 소유자, 소유그룹만이 삭제, 수정을 할 수 있도록 권한을 지정하지만

모든 사용자들이 파일 생성, 수정, 삭제 할 수 있는 디렉토리가 있습니다. 

/tmp와 /var/tmp 디렉토리는 모든 사용자가 사용하는 공용 디렉토리입니다.

그렇다보니 파일의 소유자가 아닌 다른 사용자가 777권한인 파일을 삭제, 수정하는 부분에서 문제가 발생하게 됩니다.

이를 방지하기 위해 Sticky Bit를 설정하여 공용 디렉토리라 하더라도

그 파일의 소유자와 관리자만이 삭제, 수정 권한을 가질 수 있습니다.

 

  • 참고로 특수 권한은 해당 자리의 기존 권한에 실행 권한이 있어야 정상적으로 적용이 됩니다.

 

[출처]:https://idchowto.com/?p=42667

 

 

 

 

 

 

 

댓글