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

SetUID, SetGID, Stickybit 실무 다루기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

SetUID, SetGID, Stickybit 실무 다루기

 

 

먼저, SetUID, SetGID 그리고 Stickybit에 대하여 실제 예를 들어서 설명해 보도록 하겠다. 패스워드를 변경하기 위해 사용하는 명령어인 passwd라는 명령어는 /bin/bin/passwd에 명령어 형태로 존재한다.

 

그리고 일반사용자들이 /usr/bin/passwd명령어를 실행하여 /etc/passwd 또는 /etc/shadow파일에 저장되어 있는 자기자신의 패스워드를 변경한다. 물론 이 명령어는 계정을 가진 사용자라면 누구나 사용가능하다. 다음 3개의 파일에 대한 퍼미션을 확인해 보십시요.

 

 

[root@sulinux ~]# ls -l /usr/bin/passwd
-r-s--x--x  1 root root 19336 Sep  7 17:11 /usr/bin/passwd
[root@sulinux ~]#
[root@sulinux ~]# ls -l /etc/passwd
-rw-r--r--  1 root root 2026 Jan 19 14:29 /etc/passwd
[root@sulinux ~]#
[root@sulinux ~]# ls -l /etc/shadow
-r--------  1 root root 1439 Jan 19 14:30 /etc/shadow
[root@sulinux ~]#

 

 

위의 예에서 알 수 있듯이 계정사용자의 정보를 보관하고 있는 파일은 /etc/passwd /etc/shadow파일이다. 그리고 이 파일들의 퍼미션은 각각 644, 그리고 400이다.

 

, root사용자외에 일반사용자는 변경할 수 없는 퍼미션이다.

 

단 수정가능한 사용자는 이 파일의 소유자인 root만이 가능하지만, 흔히 계정을 가진 사용자라면 누구나 이 파일에 있는 자신의 패스워드를 변경할 수 있다.

 

좀 이상하지 않습니까?  일반사용자들은 분명히 /etc/passwd파일과 /etc/shadow파일을 변경할 수 없음에도 불구하고 /usr/bin/passwd라는 명령어를 이용하여 /etc/passwd파일과 /etc/shadow파일의 내용을 수정할 수 있다.

 

 

이것의 비밀은 SetUID라는 것에 있다. , 위에서 보시는 바와 같이 /usr/bin/passwd명령어파일은 root소유로 되어 있고 또한 SetUID가 설정(s표시)되어 있다.

 

따라서 일반사용자들이 /usr/bin/passwd명령어를 실행하여 /etc/shadow파일에 있는 자신의 패스워드를 변경하려고 할때에 실행시킨 일반사용자의 권한으로 실행되는 것이 아니라 /usr/bin/passwd명령어파일의 소유주인 root권한으로 실행이 된다. 따라서 일반사용자들도 /usr/bin/passwd명령어를 이용하여 /etc/passwd파일과 /etc/shadow파일을 수정하여 자신의 패스워드를 변경할 수 있는 것이다.

 

 

, 특정파일이나 명령어에 SetUID가 설정되어 있다면 그 파일(명령어)을 실행할 때에는  실행시킨 사용자의 권한으로 실행되는 것이 아니라 그 파일(명령어)의 소유자의 권한으로 실행된다. 이것이 SetUID의 의미이며 효과이다.

 

 

그리고 SetUID SetGID 그리고 Stickybit는 일반 퍼미션외에 다른 방법으로 그 설정을 표시하고 있다.

 

 

4XXX : SetUID를 의미함. (XXX는 일반퍼미션)


2XXX : SetGID
를 의미함. (XXX는 일반퍼미션)


1XXX : Sticky-bit
를 의미함. (XXX는 일반퍼미션)

 

 

참고로 Sticky-bit설정은 대부분 /tmp 디렉토리에 설정되어 있는데, 가장 흔한 용도는 공용디렉토리로 사용하기 위한 것이다.  

 

, Sticky-bit로 설정된 디렉토리는 모든 사용자가 write가능하며 write된 파일은 그 사용자의 소유로 생성 된다. Sticky-bit 때문에 가능한 것이지요. 물론 삭제할 수 있는 권한 또한 root와 소유자만이 가능하다.

 

 

따라서 사용자들에게 공용으로 사용될 디렉토리를 Sticky-bit로 설정해두면 이런 것들이 가능하게 된다. , 그럼 이제부터 SetUID SetGID 그리고 Stickybit의 설정법에 대해서 알아보도록 하겠다.

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,783 개
  • 현재 접속자 :  226 명