解決Linux環境只有root用戶才能刪除文件
一、概述
Linux環境下,發現iotapp賬號自己建的文件並賦予777權限,其他用戶無法刪除,iotapp也無法刪除,只有root用戶和用WinSCP通過SFTP方式可以刪除。
二、排查
1. 本用戶無法刪除自己創建的文件。
2. 排查父級目錄權限,發現正常。
3. 切換至root賬號,發現能刪除。
4. lsattr顯示文件屬性,看這個文件是否具有 i 和 a 屬性,如果有可以通過chattr -ia ./test.txt去除(這里 '-' 的意思表示去除文件屬性, 同理,"+" 表示設置文件的屬性);
- a :設置a之后,這個文件將只能增加數據,而不能刪除也不能修改數據,只有root才能設置這個屬性。
- i :它可以讓一個文件不能被刪除、改名,設置連接也無法寫入或添加數據。只有root才能設置這個屬性。
發現文件未被限制為不能被刪除。
5. lsattr查看父級屬性,發現正常。
6. iotapp賬號,用WinSCP通過SFTP連到服務器,可以刪除此文件。
7. 在終端命令行,除root外任何賬號不能刪除文件,而sftp可以刪除,懷疑是 rm 程序的問題,root用戶下,ll /bin/rm 查看rm程序,發現除root外,其他賬號沒有執行rm程序的權限。
8. chmod 755 /bin/rm修改權限后,iotapp可以刪除此文件。