Linux刪除文件出現rm: cannot remove `.user.ini': Operation not permitted
- 2019 年 10 月 10 日
- 筆記
在Linux中rm -rf的威力是十分巨大的,特別是附帶了 -f 參數,不少新手都干過用root用戶執行 rm -rf /命令這種傻事,如果雲伺服器沒有快照,簡直就是災難,從根目錄開始所有文件被遞歸刪除,連繫統都被損壞。
但是,偶爾也會遇到使用rm -rf也刪除不了的文件,執行後報rm: cannot remove `.user.ini': Operation not permitted,如下圖:

這時候需要使用到Linux的chattr命令, chattr命令用於改變文件屬性。這項指令可改變存放在ext2文件系統上的文件或目錄屬性,這些屬性共有以下8種模式: a:讓文件或目錄僅供附加用途。 b:不更新文件或目錄的最後存取時間。 c:將文件或目錄壓縮後存放。 d:將文件或目錄排除在傾倒操作之外。 i:不得任意更動文件或目錄。 s:保密性刪除文件或目錄。 S:即時更新文件或目錄。 u:預防以外刪除。 語法chattr[-RV][-v<版本編號>][+/-/=<屬性>][文件或目錄…]參數 -R 遞歸處理,將指定目錄下的所有文件及子目錄一併處理。 -v<版本編號> 設置文件或目錄版本。 -V 顯示指令執行過程。 +<屬性> 開啟文件或目錄的該項屬性。 -<屬性> 關閉文件或目錄的該項屬性。
=<屬性> 指定文件或目錄的該項屬性。
進入到`.user.ini'所在目錄,執行一下 lsattr -a,查看文件下下邊包含文件的屬性,看到`.user.ini'有個'i'屬性,代表不得任意更動文件或目錄,正是此屬性在作祟:

然後執行命令:
chattr -i .user.ini
就可以去除掉此屬性,然後我們再執行刪除,就可以順利刪除掉了

