今天无意发现/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
正常删除文件分析:
权限
目录权限
是否是root权限
文件是否被占用
这种分析我们往往忽略了chattr这个命令,如果你不懂的话,这个文件你还真的没办法删除。
chattr是用来锁定/etc/passwd 、/etc/shadow 等 这些系统中比较重要的文件,可以防止系统重要文件被别人删除,从而导致的一系列问题。
使用方法:
chattr +i /etc/passwd
锁定系统关键文件
如果以后还有朋友遇到我这种使用root都无法删除文件的情况,上来看下
lsattr 文件
看文件是否被锁定。
如果锁定,使用chattr解锁
chattr -i 文件
一个小小的删除问题,让一群大神都搞不定,看来技术还有待提升哦,细节细节。
本文出自 “徐亮��” 博客,转载请与作者联系!