Files

如何刪除只讀目錄中的文件?

  • August 1, 2014

我有一個目錄和一個文件,目錄標記為只讀:

$ 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

引用自:https://unix.stackexchange.com/questions/147842