Ubuntu 14.04에서 디렉터리의 내용을 나열하면 해당 디렉터리 /var/spool/cron
에 다음과 같은 권한이 부여됩니다(관련 없는 열은 정리됨).ls -l
drwxrwx--T daemon daemon atjobs
drwxrwx--T daemon daemon atspool
drwx-wx--T root crontab crontabs
실행 가능한 비트가 없는 디렉토리에 고정 비트를 설정하는 목적은 무엇입니까?
답변1
매뉴얼 페이지에서 sticky
:
끈적한 디렉토리
"고정 비트"가 설정된 디렉터리는 추가 전용 디렉터리, 더 정확하게는 파일 삭제를 제한하는 디렉터리가 됩니다. 사용자는 디렉터리에 대한 쓰기 권한이 있고 파일 소유자, 디렉터리 소유자 또는 수퍼유저인 경우에만 고정 디렉터리에 있는 파일을 삭제하거나 이름을 바꿀 수 있습니다. 이 기능은 공개적으로 쓰기가 가능해야 하는 /tmp와 같은 디렉토리에 효과적으로 작동하지만 사용자가 서로의 파일을 임의로 삭제하거나 이름을 바꾸는 권한은 거부되어야 합니다.
모든 사용자는 고정 디렉터리를 만들 수 있습니다. 파일 모드 수정에 대한 자세한 내용은 chmod(1)를 참조하십시오.
그 결과 고정 디렉터리에 있는 파일의 소유자만 파일을 삭제할 수 있습니다. 테이블의 관점에서 cron
이것은 다음을 의미합니다.나들어가서 삭제할 수 없습니다당신의cron 테이블을 다음 중 하나로 교체하세요.내 거디렉토리에 대한 쓰기 액세스 권한이 있더라도 선택하십시오. /tmp
끈적끈적한 것도 이 때문이다 .
답변2
실행 가능한 비트가 없는 디렉토리에 고정 비트를 설정하는 목적은 무엇입니까?
drwx-wx--T 2 root crontab 4096 Apr 24 15:00 /var/spool/cron/crontabs/
당신이 보는 것은 데비안에서 보는 것과 비슷합니다. 목차하다소유자 및 그룹에 대한 실행 비트를 설정합니다. 고정성은 소유자에게만 의미가 없습니다. 정의에 따라 사용자는 단 한 명뿐이므로 소유자는 어쨌든 고정성을 무시할 수 있습니다. 그러나 이 그룹의 경우 이와 같이 전역적으로 쓰기 가능한 디렉토리를 갖는 것만큼 중요합니다 /tmp
. 즉, 일반 사용자는 다른 사용자에게 속한 파일을 삭제할 수 없습니다.
그런데 왜 누군가가 이 조직의 구성원이 되겠습니까 crontab
?
물론 그들은 crontab을 수정할 수 있습니다! 데비안은 crontab
setgid 권한을 사용하므로 일반 사용자가 자신의 UID 및 GID를 사용하여 디렉터리에 액세스할 수 있습니다 crontab
. crontab
세트로 실행하는 것보다 약간 더 안전 합니다.UID사용자를 서로 분리하기 때문에 권한이 부여됩니다.
-rwxr-에스rx 1 루트 crontab 36008 2015년 6월 11일/usr/bin/crontab
이제 일반적으로 디렉터리의 파일은 해당 소유자가 소유하고 이름을 지정하므로 crontab
사용자 자신의 crontab 삭제만 허용하면 문제가 발생하지 않습니다. 이와 같이 파일 권한을 설정하면 프로그램의 오류를 방지할 수 있습니다.그리고사용자의 실제 UID뿐만 아니라 사용자의 실제 UID에 액세스하는 것과 관련이 있도록 만드세요.이름.