강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

특정파일에 SetUID Bit 설정하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

특정파일에 SetUID Bit 설정하기






이번에는 특정파일에 SetUID Bit를 설정하는 방법에 대해서 설명 하겠습니다.

 

 

 

 특정 파일에 SetUID Bit가 설정되어 있다는 의미는 다음과 같습니다.

 

 

 

 

 

“SetUID가 설정된 파일을 실행하였을 경우 실행되는 동안에는 실행시킨 사용자의 권한이 아닌 파일의 소유자권한으로 실행된다.

 

 

 

 

이 말의 의미를 잘 이해하셔야 합니다.

 

 

 

 일반적으로 특정 실행파일을 실행하였을 경우에는 그 파일을 실행시킨 실행자의 권한으로 실행됩니다.

 

 

 

 , root가 실행하였다면 root권한으로 실행되고 bible이 실행하였다면 bible권한으로 실행되는 것이 가장 일반적이고, 지금까지 우리가 알았던 상식입니다.

 

 

 

 

 

하지만, SetUID가 설정되어 있는 실행파일은 의미가 조금 다릅니다.

 

 

 

 , SetUID가 설정되어 있는 실행파일을 실행하였을 경우에 실행시작부터 실행 종료할 때까지 실행시킨 사용자의 권한이 아닌 그 파일의 소유자 권한으로 실행이 된다는 것을 의미합니다.

 

 

 

 예를 들면 sudo라는 파일이 root소유로 되어 있고 SetUID설정이 되어 있는 실행파일입니다.

 

 

 

 이 파일을 root가 실행할 때도 있고 bible과 같은 일반사용자가 실행할 경우도 있을 것입니다.

 

 

 

 그렇다면 root가 실행했든 bible사용자 같은 일반사용자가 실행하였든 실행권한이 있는 어떤 사용자가 실행하더라도 이 파일의 실행은 root권한으로 실행이 됩니다.

 

 

 

 , sudo라는 파일의 소유자가 root이기 때문에 그리고 SetUID가 설정되어 있기 때문에 어떤 사용자가 실행하더라도 root권한으로 실행이 된다는 의미입니다.

 

 

 

 당연히 이 실행파일(sudo)에 대한 실행권한은 가지고 있어야 하겠지요.

 

 

 

그래서 이번에는 이런 SetUID를 어떻게 설정하는가에 대해서 알아볼 것입니다.

 

 

 

 간단히 설명 드려서 SetUID퍼미션을 설정하는 방법은 4755, 4644, 4750등과 같이 지금까지 설명한 일반퍼미션앞에 4를 붙이시면 됩니다.

 

 

 

 , SetUID퍼미션과 일반퍼미션의 설정을 별개로 생각하면 됩니다.

 

 

 

 아래의 예는 testfile에 일반 퍼미션 755와 함께 SetUID Bit(4)를 설정한 예입니다.

 

 

 

 

 

[root@su250 su]# ls -l testfile

-rwxr-x--x 1 root root 33846 2009-01-0722:54 testfile

[root@su250 su]#

[root@su250 su]# chmod 4755 testfile

[root@su250 su]#

[root@su250 su]# ls -l testfile

-rwsr-xr-x 1 root root 33846 2009-01-0722:54 testfile

[root@su250 su]#

 

위의 결과를 보시면 testfile의 퍼미션설정의 소유자 실행퍼미션 자리에 s라는 문자가 설정된 것을 보실 수 있을 것입니다.

 

 

 

 파일의 소유자 실행퍼미션 자리에 s라는 문자가 있다면 다른 사용자들이 이 파일을 실행하더라도 파일의 소유자권한으로 실행이 됩니다.

 

 

 

 

 

참고로 다음의 예에서 설명하는 SetGID는 일반퍼미션앞에 2를 붙이시면 되고 Sticky Bit 1을 붙이시면 됩니다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,042 명
  • 현재 강좌수 :  35,846 개
  • 현재 접속자 :  102 명