Linux
Linux:作為其他和組刪除文件
這個問題應該被問一百萬次,但我找不到正常的答案。
使用者是組adm的成員
我以root身份創建
# touch /tmp/keyboard-backlight.on # chmod 666 /tmp/keyboard-backlight.on # chgrp adm /tmp/keyboard-backlight.on # chgrp adm /tmp/ # echo "text" > /test.txt # chmod 0666 /test.txt
作為使用者
user@host ~ $ rm /tmp/keyboard-backlight.on rm: cannot remove '/tmp/keyboard-backlight.on': Operation not permitted user@host ~ $ rm /test.txt rm: cannot remove '/test.txt': Permission denied
為什麼我不能刪除這些文件?
刪除和創建文件需要對包含該文件的目錄具有寫權限。
對於
/
,它由 擁有root
,並且對組或其他人沒有“寫入”權限。因此root
,無論文件的權限如何,都只能在那裡刪除文件。$ ls -ld / drwxr-xr-x 24 root root 4096 Nov 3 19:21 /
關於
/tmp
,此文件夾通常啟用了粘性位。請參閱Linux 權限:SUID、SGID 和粘性位:最後一個特殊許可被稱為“粘性位”。此權限不會影響單個文件。但是,在目錄級別,它限制了文件刪除。只有文件的所有者(和root)可以刪除該目錄中的文件。一個常見的例子是
/tmp
目錄:[tcarrigan@server article_submissions]$ ls -ld /tmp/ drwxrwxrwt. 15 root root 4096 Sep 22 15:28 /tmp/
權限集由小寫的t表示,其中x通常表示執行權限。