rm 매뉴얼 페이지에 아래와 같이 나와 있습니다.

You do not need read or write permission for the file you want
to remove. However, you must have write permission for the directory containing the file.

파일삭제나 생성을 위해서는 해당 디렉토리의 write권한이 필요하며,
실제 파일 자체의 write권한은 관계가 없다고 되어있습니다.
(파일의 write 권한은 단지 modify에만 해당, 단, read는 파일의 read권한이 적용됩니다 )

즉, 디렉토리가 777 권한이면 누구나 임의의 파일을 생성하고 수정하고 삭제가 가능합니다.
이처럼 공용 디렉토리인 경우 777을 주게 되면
임의로 자신의 소유가 아닌 다른 소유자의 파일 삭제가 가능하므로 문제가 될 수 있기 때문에,
그런 문제를 예방하기 위해 나온 것이 sticky bit입니다.
sticky bit을 적용하면 해당 파일의 소유자 또는 root만이 파일을 삭제할 수 있습니다.

- sticky bit(t,T)
디렉토리에 sticky bit이 설정되면, 디렉토리에 존재하는 파일들은
root나 소유자에 의해서만 삭제 또는 이름변경이 가능합니다.
sticy bit이 없으면, 디렉토리에 write 권한이 있는 누구나가 파일을 삭제, 이름변경 할 수 있습니다.
(파일에 sticky bit은 리눅스에서는 무시됩니다.)

- sticky bit 적용방법
chmod 1777 filename => 숫자로 권한을 줄때 앞에 1을 붙임
chmod +t filename => 문자로 권한을 줄 때 +t 옵션

sticky bit이 적용되면 뒤에 drwxrwxrwxt로 뒤에 t가 붙게 되며,
이렇게 sticky bit 적용되어 공용으로 사용되는 디렉토리가 /tmp, /var/tmp 영역 입니다.


+ Recent posts