场景引入:
[root@spark001 ~]# chmod 755 /etc/hosts
chmod: changing permissions of ‘/etc/hosts’: Operation not permitted
[root@spark001 ~]#
或想要对文件进行修改时候,都是提示无法操作的,尽管你是root~
what? linux 中还有文件是我root不能操作的!
解决
主要说明:可能你的文件出于安全考虑 此时正 是 锁住状态,解锁即可。
Linux lsattr命令用于显示文件属性。
用chattr执行改变文件或目录的属性,可执行lsattr指令查询其属性。
ps:lsattr这个大学上课的时候好像学过,不过忘记啦~
[root@spark001 ~]# lsattr /etc/hosts
----ia-------e-- /etc/hosts
[root@spark001 ~]#
可以发现当前文件有个i属性,查阅命令帮助文档可以看到有i属性的文件是不能修改的,更不可被删除,即使是root用户也不可
既然知道了文件不能操作的原因是加了i属性,所以相应的解决方案就是把文件的i属性去除,然后对此文件内容进行修改,最好在操作完成后恢复文件的i属性。
这里最好同时把a属性也搞掉,a代表 让某个文件只能往里面追加数据
去除ia属性:chattr -ia /etc/hosts
添加ia属性:chattr +ia /etc/hosts
如下:
[root@spark001 ~]# chattr -ia /etc/hosts
[root@spark001 ~]# lsattr /etc/hosts
-------------e-- /etc/hosts
[root@spark001 ~]#
到这里,就可以对文件的权限和内容进行修改了,我其实主要是想修改文件的内容了。
接下来,就可以正常操作/etc/hosts文件了,修改完毕之后,最好还是
添加ia属性:chattr +ia /etc/hosts
相当于把文件锁住,这样就不会被 任意一个用户 误操作啦~~