【运维】Linux如何解决root用户Operation not permitted

在linux中,root用户是可以做任何的事情,但是当使用一些命令时仍然会出现类似于“Chmod: changing permissions of 'xxx ': Operation not permitted”这样的提示语,如下图所示:

出现这种情况的原因:与该文件(目录)特有的属性是相关的,即文件(目录)属性就是定义为不能被修改的。

对此我们可先用lsattr命令查看文件的属性:lsattr 文件名

如果我们想查看一个目录的权限,可使用:lsattr -d 目录名命令

在linux下,有些配置文件是不允许任何人包括root修改的,为了防止被误删除或修改,可以设定该文件的"不可修改位(immutable)",即文件属性为i。从上面可以看出当前文件有个i属性,有i属性的文件是不能修改的,更不可被删除,即使是root用户也不可。

既然知道了文件不能操作的原因是加了i属性,所以相应的解决方案就是把文件的i属性去除,然后对此文件内容进行修改,最好在操作完成后恢复文件的i属性。

去除i属性命令:其中对于文件名,既可以是相对路径,也可以是绝对路径

chattr -i 文件名


添加i属性命令:

chattr +i 文件名

  扩展:在解决了个人问题之后,另外还有必要了解一下lsattr和chattr的其它语法命令.

  语法:lsattr 选项 文件名

  选项:

     -a 显示所有文件和目录

     -d 若目标是目录,仅列出目录本身的属性,而不是子文件的

  chattr的全称为change attribute 作用:改变文件属性

  语法:chattr [-RV][-v<版本编号>][+/-/=<属性>] [文件或目录名]

  参数:

           -R  递归处理,将指定目录下的所有文件及子目录一并处理。
           -v<版本编号>  设置文件或目录版本。
           -V  显示指令执行过程。
           +<属性>  开启文件或目录的该项属性。
           - <属性>  关闭文件或目录的该项属性。
           =<属性>  指定文件或目录的该项属性。

  补充说明:这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:

           a:如果对文件设置a属性,那么只能在文件中增加数据(只能采用输出重定向方式来增加数据,不能使用vi命令来增加数据),但是不能删除和修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除文件(当设定 a 之后,这个目录将只能增加数据,而不能删除,只有 root 才能设定这个属性)
           b:不更新文件或目录的最后存取时间。
           c:将文件或目录压缩后存放。
           d:将文件或目录排除在倾倒操作之外。
            i:如果对文件设置i属性,那么不允许对文件进行删除、改名、也不能对文件添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许新建、删除和重命名文件。
           s:保密性删除文件或目录。
           S:即时更新文件或目录。
           u:预防以外删除。

其他说明:

chattr是用来更改文件属性,lsattr可用来查看文件的属性,执行命令lsattr /etc/sysctl.conff便可以看到当前文件的属性;

可以发现当前文件有个i属性,查阅命令帮助文档可以看到有i属性的文件是不能修改的,更不可被删除,即使是root用户也不可。

Application/Student/View# lsattr /Application/Spc/View/Login


Application/Student/View# chattr -i /Application/Student/View/Login/index.html

应用举例:

1、用chattr命令防止系统中某个关键文件被修改:

# chattr +i /etc/resolv.conf

然后用mv /etc/resolv.conf等命令操作于该文件,都是得到Operation not permitted 的结果。vim编辑该文件时会提示W10: Warning: Changing a readonly file错误。要想修改此文件就要把i属性去掉: chattr -i /etc/resolv.conf

lsattr /etc/resolv.conf

会显示如下属性

----i-------- /etc/resolv.conf

2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:

chattr +a /var/log/messages

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值