文件删除引出chattr,lsattr案例

今天无意发现/home/xuliangwei/下面有一个shell.sh文件,cat shell.sh    

[root@Shell xuliangwei]# cat shell.sh 
123

    发现是以前测试用随便创建的文件,上来不管三七二十一就 rm -f shell.sh

[root@Shell xuliangwei]# rm -f shell.sh 
rm: 无法删除"shell.sh": 不允许的操作

咦,不对劲,难道权限问题

[root@Shell xuliangwei]# ll
总用量 4
-rwxr-xr-t 1 root root 4 8月  12 08:43 shell.sh

755,咦多了个t, t代表粘滞位,对文件并没什么用,而且也是用来共享的。然而并没什么用,因为我是root,想干什么就干什么。

修改下目录权限,还是不行

[root@Shell home]# chmod 777 -R xuliangwei/
chmod: 更改"xuliangwei/shell.sh" 的权限: 不允许的操

不管了  连目录一起干掉

[root@Shell xuliangwei]# cd ../
[root@Shell home]# rm -rf xuliangwei/
rm: 无法删除"xuliangwei/shell.sh": 不允许的操作

神马情况,最牛逼的rm -rf 都不管用了,难道是文件被占用了

[root@Shell home]# ps aux | grep *.sh | grep -v grep    
    [root@Shell home]#

文件也没有被占用,那到底是什么情况。


通过大神的分析 这种情况是文件被锁死了,一查看发现有i,文件被锁定了

[root@Shell xuliangwei]# lsattr shell.sh 
----i--------e- shell.sh

解除权限在来一次,成功删除

[root@Shell xuliangwei]# chattr -i shell.sh 
[root@Shell xuliangwei]# 
[root@Shell xuliangwei]# lsattr shell.sh 
-------------e- shell.sh
[root@Shell xuliangwei]# rm -f shell.sh 
[root@Shell xuliangwei]# ls

正常删除文件分析:

  1. 权限

  2. 目录权限

  3. 是否是root权限

  4. 文件是否被占用

这种分析我们往往忽略了chattr这个命令,如果你不懂的话,这个文件你还真的没办法删除。

chattr是用来锁定/etc/passwd 、/etc/shadow 等  这些系统中比较重要的文件,可以防止系统重要文件被别人删除,从而导致的一系列问题。

使用方法: 

chattr +i /etc/passwd

锁定系统关键文件

如果以后还有朋友遇到我这种使用root都无法删除文件的情况,上来看下

lsattr  文件

看文件是否被锁定。

如果锁定,使用chattr解锁

chattr -i 文件

一个小小的删除问题,让一群大神都搞不定,看来技术还有待提升哦,细节细节。



本文出自 “徐亮��” 博客,转载请与作者联系!

你可能感兴趣的:(chattr,lsattr)