最近在學習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設置追加權限。