왜 끈적 끈적한 비트를 사용합니까?


18

"sticky bit는 디렉토리에만 적용되며 일반적으로 공개적으로 쓸 수있는 디렉토리에서 사용됩니다. sticky bit가 적용되는 디렉토리 내에서 사용자는 자신이 소유하지 않은 파일을 삭제하거나 이름을 바꿀 수 없습니다."

내가 다음을 실행하면 이것이 의미합니까?

// only allow other users to read files in /directory
sudo chmod o-w -R /directory
sudo chmod o-x -R /directory
sudo chmod o+r -R /directory

사용자는 여전히 자신의 소유가 아닌 파일을 삭제하거나 이름을 바꿀 수 있습니까?

답변:


22

고정 비트는와 같이 세계적으로 쓸 수있는 디렉토리에 유용합니다 /tmp. 이 디렉토리에서 누구나 파일을 작성할 수 있으므로 디렉토리는 세계적으로 쓸 수 있어야합니다. 그러나 이는 파일 삭제가 디렉토리에 대한 쓰기 권한에 의해 제어되므로 파일에 속하지 않더라도 누구나 파일을 삭제할 수 있음을 의미합니다. 디렉토리에 고정 비트가 있으면 파일 소유자 만 삭제할 수 있습니다.

권한이있는 디렉토리에서는 rwx------또는 디렉토리 rwxr-xr-x소유자 만 파일을 만들거나 삭제할 수 있습니다. 다른 사용자에게 속한 파일 (루트로 이동하거나 디렉토리에 더 많은 열린 권한이있을 때 생성 된 파일)이있는 경우 파일의 소유자가 아니라 파일을 삭제할 권한이있는 디렉토리의 소유자입니다.

권한이있는 디렉토리 rwxrwx---에서 그룹의 모든 구성원이 파일을 작성하고 삭제할 수 있습니다. 그룹의 모든 구성원은 다른 사용자에게 속한 파일이라도 삭제할 수 있습니다. 권한이있는 경우 rwxrwx--T대신 (자본은 T비슷 t하지만, t것을 의미 x비트가 설정되어 T것을 의미 x비트가 분명하다), 그 그룹의 구성원이 파일을 생성 할 수 있으며, 그룹의 구성원은 파일 만 자신의 파일을 삭제할 수 있습니다 .

다음 명령을 사용하여 시스템에 고정 비트가있는 디렉토리를 확인할 수 있습니다.

find / /run /run/lock /run/shm -xdev -path /usr -prune -o -perm -o+t -ls 2>/dev/null

/tmp모든 사용자에게 열려있는 디렉토리와 /var/spool/cron/crontabs자체 디렉토리 ( setgid ) 로 실행되는 시스템 프로그램 용으로 예약 된 디렉토리를 찾을 수 있습니다 . 여기서 고정 비트는 프로그램이 파일을 대신하여 파일 만 삭제할 수 있도록합니다. 파일을 소유 한 사용자 (프로그램이 파일을 소유 한 사용자 대신 파일 만 작성할 수 있도록하는 것은 프로그램이 루트가 아닌 해당 사용자로 실행 중이므로 다른 사용자에게 속한 파일을 작성할 수 없음).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.