Files
如何刪除只讀目錄中的文件?
我有一個目錄和一個文件,目錄標記為只讀:
$ mkdir directoryname $ touch directoryname/filename $ chmod a-w directoryname
我無法刪除文件,即使將
-f
標誌傳遞給rm
:$ rm -f directoryname/filename rm: cannot remove `directoryname/filename': Permission denied
有沒有辦法強制
rm
刪除這個文件?顯然,我可以暫時給予directoryname
寫權限,但我正在尋找一種更方便的方式。我相信底層
unlink
系統呼叫以同樣的方式失敗。有沒有辦法解決這個問題?
關於什麼:
sudo rm directory/filename
或者:
su -c "rm directory/filename"
取決於您的發行版和/或設置。
root
在上述命令期間,你給自己一個臨時的,就像root
在 Unix/Linux 上的萬能一樣,你可以做任何事情。這與您可以刪除對管理員帳戶的訪問權限的 MS Windows 形成對比(儘管有一些解決方法)。
SELinux
可以像各種擴展屬性工具(例如chattr
)一樣提供幫助,但最終,它們可以被繞過,因為root
可以改變擴展屬性並可以配置(甚至禁用)SELinux
。