원본 출처 : http://nobless_05.blog.me/50081222489
디렉토리에 주어지는 권한으로
Sticky bit 가 설정된 디렉토리에 있는 파일은 접근 권한과 상관없이 파일의 소유자와 관리자만 파일을 삭제 가능하다.
Sticky bit가 주어진 대표적인 디렉토리 /tmp이다.
다른 사용자가 /tmp 디렉토리에 다른 파일을 생성하면 역시 생성한 소유자의 소유로 파일이 생성된다.
파일을 삭제할 때에도 생성한 사람만이 삭제를 할 수가 있다.
-> Others(나머지) 사용자의 퍼미션 값에 실행의 값이 'x'가 아닌 't' 로 되어있다.
즉, sticky bit는 파일의 나머지 사용자의 권한을 나타내는 퍼미션값에 't'기호가 명시되어있다.
ex)#chmod 1755 rick
--->rick이라는 폴더에 stick bit를 설정한것이다.
(1755라는게 1755자체가 sticky bit가 아니고 1이 sticky bit가 되는것이다. 나머지 755는 퍼미션을 의미한다.)
<apple login>
#cd /tmp
#touch test1
#ls -al test1
<banana login>
#cd /tmp
#touch test2
#ls -al test2
파일의 퍼미션이 보통 644로 되어있을것이다.(umask값이 다르면 다를수 있음)
그런데 apple이 자신이 만든 파일이 아닌 test2 파일을 지울 수 없을것이다.(rm으로 해보면 권한거부 메시지가 뜬다)
당연한 현상인가? 아래의 테스트를 해보자.
<root login>
#cd /
#chmod 0777 /tmp
-> sticky bit을 없애버렸다.
<apple login>
#cd /tmp
#rm test2
-> 삭제가 되었다.
분명 파일의 퍼미션은 644였다. 그런데 삭제가 된 이유는????
664 상태이지만 파일의 퍼미션보다 디렉토리의 퍼미션이 우선되기 때문에 다른 계정의 사용자가 지울수 있게 된다.
이렇게 된다면 문제가 생기는 경우가 있다.
여러사용자가 사용하는 디렉토리의 경우 사용자들이 파일을 작성,삭제,수정할 수 있도록
디렉토리의 권한을 만들어줘야 하지만 이렇게 되면 다른 사용자의 파일도 삭제가 가능하다.
아까 말했듯이 디렉토리의 퍼미션이 파일의 퍼미션보다 우선순위가 높기 때문이다.
(파일에 퍼미션을 걸어봐야 디렉토리 퍼미션을 보게 된다는 것이다.)
이럴 때 sticky bit를 걸어주면 파일을 작성할 수는 있지만 남의 파일을 지울 수는 없다.
리눅스에서 /tmp 디렉토리가 sticky bit가 설정되어있다.
#adduser banana
#passwd banana
#ls -l /
drwxrwxrwt 12 root root 4096 Jun 10 21:38 tmp
---> sticky bit 가 설정되어 있다.(1777)
*apple로 로그인
$cd /tmp
$touch apple.txt
$ll
-rw-rw-r-- 1 apple apple 0 12월 12 00:34 apple.txt
*banana로 로그인
$cd /tmp
$rm apple.txt
--->sticky bit 로 인하여 다른 계정이 만든 파일이 지워지지 않는다.
디렉토리 퍼미션이 777 이라면 다른 계정이 만든 파일을 지울수 있다.
(파일을 삭제할 때는 파일의 w 권한이 적용되는 것이 아니고 그 파일이 속한 디렉토리의 w 권한이 적용된다.
파일의 w 권한은 파일의 내용을 수정할 수 있다는 의미이다.)
sticky bit 는 주로 공용 디렉토리(인터넷 게시판)에 설정하며 루트나 파일 소유자만이 해당 파일을 삭제할 수 있다.
'Solaris > 기술과 팁' 카테고리의 다른 글
솔라리스10 svcadm 과 svcs 활용하여 서비스 관리하기 (sendmail 등) (0) | 2011.07.15 |
---|---|
사용자 권한 관리 (set uid, set gid 등) (0) | 2011.07.13 |
솔라리스9 보안상 snmp 서비스 제거 (0) | 2011.05.23 |
솔라리스10 보안상 snmp 서비스 내리기 (0) | 2011.05.23 |
Ctrl + z 로 Foreground 작업이 일시 중단(stop)되어 SIGTSTP 되었을 때 원래 작업으로 돌아가는 법 (0) | 2011.04.18 |