1. 程式人生 > 其它 >chmod: changing permissions of ‘/root/.ssh/authorized_keys’: Operation not permitted

chmod: changing permissions of ‘/root/.ssh/authorized_keys’: Operation not permitted

技術標籤:問題集Linuxlinuxjavashell

一般,Linux下root使用者的許可權是最大 (Linux下UID數值越小的使用者,許可權越大,可以看到最小值為0,即root使用者)
但是在使用chmod改變檔案許可權的時候,即使在root使用者下,也會遇到operation not permitted的問題。
其實chmod的底層實現是chattr命令,用此命的功能更為強大,甚至可以鎖定檔案,即使root使用者也操作不了此檔案。

然後執行下面的命令檢視當前檔案屬性,可以發現有 i 和 a 兩個屬性:

lsattr authorized_keys

在這裡插入圖片描述
說明此時的檔案是被鎖定的,任何使用者都是修改不了的,那麼我們就去掉這兩個屬性:

可以使用chattr去掉這屬性:

chattr -ia authorized_keys

此時再次使用chmod命令即可更改檔案的許可權。

該方法對於檔案目錄同樣適用,但是檔案目錄使用lsattr命令檢視屬性的時候並沒有反應,但是使用chattr命令去掉ia屬性之後,能夠成功使用chmod更改許可權。

如果想要恢復ia屬性,使用:

chattr +ia authorized_keys