解决Linux下root用户不能删除文件的问题

时间:2022-01-04 02:22:09

在操作服务器的过程中,想清理掉一个测试文件夹的内容,但有一个文件始终删除不了,后来找到答案,备忘如下:

[root@localhost vcstock]# ls -l .user.ini
-rw-r--r-- 1 root root 19 Jun 6 16:47 .user.ini
[root@localhost vcstock]# rm -f .user.ini
rm: cannot remove `.user.ini': Operation not permitted

当前是root用户,系统居然告诉我操作不允许,是Linux疯了么?当然不是,用lsattr命令,问题就有了答案。

[root@localhost vcstock]# lsattr .user.ini
----i--------e- .user.ini
问题终于暴露了,在lsattr命令下,这个.user.ini文件带有一个"i"的属性,所以才不可以删除。
[root@localhost vcstock]# chattr -i .user.ini
[root@localhost vcstock]# lsattr .user.ini
-------------e- .user.ini
[root@localhost vcstock]# rm -f .user.ini #删除成功

这个属性专门用来保护重要的文件不被删除。如果想给一个文件多加点保护,可以使用下边的命令:

chattr +i filename
这样一来,想要删除这个文件就要多一个步骤。同时,这样的文件也是不可以编辑和修改的。
只有root用户才能使用chattr命令。此命令可以在Linux ext2或ext3系统上使用。