最近我們的伺服器被駭客攻擊,然後有些文件的屬性被修改,導致我們無法刪除病毒文件,同時採用 root 用戶也無法刪除,現在把解決方案記錄下來。
Linux 檔案/資料夾無法刪除問題解決方案
#普通刪除
如果檔案是目前使用者的,那麼使用rm 指令就可以刪除
rm -rf file.sh
如果無法刪除,則嘗試使用root 使用者刪除,如果無法刪除那麼請看下面的說明。
推薦:《Linux教學》
#需要了解的指令
##如果普通的刪除方式沒有用,那麼我們需要了解下面的命令來進行刪除lsattr
#lsattr 命令用於顯示檔案的屬性,使用方式如下# 列出 file.sh 文件的属性 lsattr file.sh # 列出当前目录下所有文件以及文件夹的属性
lsattr
屬性說明
i 屬性設定之後可使檔案無法被刪除、改名,設定連線也無法寫入或新增數據,只有root 使用者才能設定a 屬性設定之後,檔案只能增加數據,既不能刪除也不能修改數據,只有root 使用者才能設定A 設定A屬性後,若當您存取此檔案或目錄時,它的存取時間atime 不會被修改,可避免I/O較慢的機器過度存取磁碟。這對速度較慢的計算機有幫助。 s 屬性設定之後,如果檔案被刪除,將從硬碟徹底刪除S 屬性設定之後,檔案將同步寫入硬碟(一般為非同步)u屬性設定之後,檔案刪除後資料內容仍存在磁碟中,可以找回檔案e 代表該檔案為執行檔chattr
chattr 用於修改檔案屬性,該指令請切換至root 使用者下使用,如果是ubuntu 使用者可在指令前加sudo 進行修改# 为 file.sh 文件增加 i 标识 chattr +i file.sh # 为 file.sh 文件去除 i 标识 chattr -i file.sh # 为 file.sh 增加 i, a 两个标识 chattr +ia file.sh # 为 file.sh 文件移除 i, a 两个标识 chattr -ia file.sh
實際操作
#由上文得知當檔案設定i 和a 任一屬性我們就無法對檔案進行刪除操作,那麼我們先移除i, a 屬性,然後執行刪除:# 移除 i, a 属性 chattr -ia file.sh # 查看是否移除成功 lsattr file.sh # 移除文件 rm -rf file.sh如果檔案還未刪除成功,則我們需要考慮檔案所屬的資料夾是否設定了i 或a 屬性(這一點確實很難發現)
# 退回上一级 cd .. # 直接使用 lsattr 命令,这样可以列出当前文件夹下所有文件和文件夹的属性 # 不要使用 lsattr 文件夹 这样的语法,这样是列出该文件夹下的文件的属性
lsattr
如果資料夾被設定則對資料夾的屬性執行移除操作,然後再刪除資料夾裡面的檔案收穫
雖然lsattr 和chattr 是在這次清除病毒的過程中發現的,但是透過了解檔案屬性,發現我們在實際的工作中可以透過檔案屬性來保護重要的檔案避免被誤刪,並確保誤刪後能夠恢復檔案。 對於檔案的操作後如果還是沒有效果,我們可以嘗試從資料夾入手解決。以上是linux無法刪除檔案怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!