CentOS环境下,root修改文件权限时,报错:chmod: changing permissions of ‘cadvisor’: Operation not permitted问题的处理策略

今天在给项目解决一个问题时,需要修改文件,增加文件的执行权限,按照常规的做法无非就是:

 

chmod 755 二进制文件

 

就可以解决了,但是,在执行赋权命令时,却报了下面的错误

 

[root@nccztsjb-node-14 bin]# chmod 755 cadvisor 
chmod: changing permissions of ‘cadvisor’: Operation not permitted
[root@nccztsjb-node-14 bin]# 

看到这个错误,就有点让我困惑不解,我明明是root用户,这个具有最高级权限的,超级管理员,本应该可以做任何的事情,但是一个小小的修改文件权限都做不了吗?

 

事实证明,确实是这样的,因为文件被赋予了一个隐藏的权限

[root@nccztsjb-node-14 bin]# lsattr cadvisor 
----i--------e-- cadvisor
[root@nccztsjb-node-14 bin]# lsattr -l cadvisor 
cadvisor                     Immutable, Extents
[root@nccztsjb-node-14 bin]# 

就是我们看到的 i (Immutable:不可变的)这个属性,使得文件,即使是超级管理员也不允许修改,这个属性的根本目的,就是为了要保护文件不被修改。

 

那么,既然已经知道了问题的所在,该如何破局呢?

 

方法也很简单,使用lsattr的小伙伴chattr就可以彻底去除这个 i 的属性

 

chattr -i cadvisor

[root@nccztsjb-node-14 bin]# lsattr cadvisor 
-------------e-- cadvisor
[root@nccztsjb-node-14 bin]# lsattr -l cadvisor 
cadvisor                     Extents
[root@nccztsjb-node-14 bin]# 

之后,我们再返回来,执行我们的赋权命令

 

chmod 755 cadvisor

轻松搞定,无任何异常!

 

看来在linux中,还有所谓的隐藏文件属性,不只是 755 rwx。

 

当然了,经过这次,我们对于linux系统中,对安全的管理方式,又有了一个更加深入的理解。

 

posted @ 2022-07-01 14:15  Zhai_David  阅读(633)  评论(0编辑  收藏  举报