在linux系统下,有时候为了修改文件或目录的权限,需要用chmod命令对其权限进行修改,但是对于部分系统文件,会报下面的错误
chmod 700 test.txt
chmod: changing permissions of test.txt: Operation not permitted
出现这个问题的原因是这些文件在创建时,认为是不可变的,创建者通过chattr设置了immutable属性,解决方法如下:
查看文件的属性是否包含
lsattr test.txt
----i----------e----- test.txt
其中i表明被打上了immutable属性,可以通过chattr进行修改
chattr -i test.txt
然后可以用chmod修改文件权限了
chmod 700 test.txt
如果以后要设置回immutable,可以通过下面命令添加
chattr +i test.txt
注意:
1. 相关命令同样适用于目录
2. 可以通过-R选项对目录进行递归操作
3. 如果chattr失败,有可能是由于文件所在文件系统比较老,最好确保文件系统与内核配套