linux刪除不了文件, 修改文件屬性也刪除不了的一個解決思路

場景:html

  公司要求卸載軟件時, 也包含卸載一個目錄下的全部文件. 因而去修改刪除文件的shell腳本, 添加了刪除文件及文件夾的命令(固然是在root權限下的)linux

  如: rm -rf /home/vito/****shell

  但發現運行shell腳本時, 死活刪除不了那個目錄下的文件, 固然也就刪除不了目錄, 同時提示----rm: cannot remove '/home/vito/****/xxx.xxx': Permission denied.spa

  在網上查了一下, 說這種狀況下, 通常都是該文件被設置了一些不可刪除的屬性, 如圖:3d

  

  能夠經過命令lsattr filename, 查看文件因此具備的屬性, 從上圖也能夠看出, 這個文件具備 i 和 a 屬性, 至於這些字母表明什麼意思, 能夠參考這個鏈接htm

  http://www.cnblogs.com/JasonYangBlogs/p/4833896.html(雖然經過linux命令: man chattr, 也能夠看到英文版本, 不過中文版理解起來更快一些)blog

  a :設置a以後,這個文件將只能增長數據,而不能刪除也不能修改數據,只有root才能設置這個屬性。rem

  i :它可讓一個文件不能被刪除、更名,設置鏈接也沒法寫入或添加數據。只有root才能設置這個屬性。it

  所以, 這個file1具備這兩個隱藏屬性後, 直接使用rm命令是沒法刪除這個文件的.io

  那怎麼辦呢, 很簡單, 經過chattr命令, 修改這兩個文件的屬性後, 就能夠正常刪除了.

  命令爲: chattr -ia ./file1

    這裏 '-' 的意思表示去除, 同理, "+" 表示設置文件的屬性, 如圖

  

  --------------------------------------------- 分割線---------------------------------------------

 

新狀況, 即便取消了沒法刪除的屬性, 依然沒法刪除文件

  如圖:

  

  這是爲何, 明明刪除去除了文件的不可刪屬性, 怎麼仍是刪除不了文件, 連root用戶都刪除不了, 那還有其它用戶能夠刪除麼???  

  答案是不可能, 若是連root用戶都刪除不了的文件, 其它用戶更不可能刪除得了, 所以只能是其它問題引發的, 當時想了好久, 一直沒有明白爲何會刪除不了, 網上也沒有找到想要的答案, 就這樣一直耗着. 

  後來, 請教別人的時候, 看到別人會查看文件夾的隱藏屬性, 實然之間, 就明白是什麼回事了.

  --------------------------------------------- 分割線 -------------------------------------------

問題的解決

  其實這個問題很簡單, 就是由於當前文件的文件夾(目錄)的隱藏屬性是不可刪除的, 所以當你要刪除文件夾(目錄)下面的文件時, 系統也會提示文件不可刪除, 權限不足.

  如圖

  

  file2文件在文件夾(目錄)dir1下, 雖然file2文件已經去掉了不可刪除屬性, 但由於其所在的文件夾(目錄)的屬性也是不可刪除, 最終, file2文件也所以沒法刪除!!!!

  解決的辦法就是將當前文件所在的文件夾(目錄){有時候可能不止一層文件夾(目錄)被設置成了不可刪除屬性}的不可刪除屬性去掉便可, 如果有多層文件夾(目錄)都具備不可刪除屬性, 那就須要保證每層的不可刪除屬性都去掉了, 以後就能夠刪除那一直以來刪除不了的文件了

  如圖:

  

 

總結:

  思惟仍是應該多發散一些, IT的邏輯仍是很清晰的, 須要我的好好思考! 

相關文章
相關標籤/搜索