首页 > 技术文章 > linux在root用户下无法使用chattr的解决办法

xiazhenbin 2021-05-18 09:25 原文

最近在学习linux操作系统的时候,想用chattr来修改某一个文件的权限时,突然爆出了以下这个错误:

bash /usr/bin/chattr permission denied

考虑到可能是普通用户权限不够,我又切换到了root用户。按理说root用户的权限是最高的了,结果还是爆出上面那个错误。

查阅了国内的相关博客,发现没有解决这一问题的,于是FQ在外网上找到了解决办法。

以下是链接

# chattr -l
-bash: /usr/bin/chattr: Permission denied
# chattr -i chattr
-bash: /usr/bin/chattr: Permission denied
# chmod +x chattr
chmod: changing permissions of `chattr': Operation not permitted

为了恢复chattr的功能,解决办法如下:

# cp /usr/bin/chattr /usr/bin/chattr2
# chmod 755 /usr/bin/chattr2
# chattr2 -i /usr/bin/chattr
# chmod 755 /usr/bin/chattr
# ls -la /usr/bin/chattr  
# lsattr /usr/bin/chattr
-rwxr-xr-x 1 root root 9664 2010-08-17 01:29 /usr/bin/chattr
-----------------e- /usr/bin/chattr

大致思路是:复制chattr的副本chattr2,用chmod来修改chattr2的权限(号码为755)。然后反过来使用chattr2打开chattr的权限,再用chmod修改。最后chattr就能使用了。

通过这个问题的解决,让我体会对一句话有了深刻的体会:inux一切皆文件

 

补充关于权限:i和a的说明

i:不可修改权限 例:chattr u+i filename 则filename文件就不可修改,无论任何人,如果需要修改需要先删除i权限,用chattr -i filename就可以了。查看文件是否设置了i权限用lsattr filename。

a:只追加权限, 对于日志系统很好用,这个权限让目标文件只能追加,不能删除,而且不能通过编辑器追加。可以使用chattr +a设置追加权限。

推荐阅读