chmod: changing permissions of 'xxx': Operation not permitted


眾所周知,在linux系統中,權限最大的是root賬號,但凡修改涉及到系統本身的重大權限的操作,都需要root的權限才能操作。但是有些時候也有root干不了的事情。
比如:chmod: changing permissions of 'authorized_keys': Operation not permitted

問題背景和解決

  1. 部署在服務器上的redis緩存數據庫被提示有高危風險,根據提出的改進意見,則是修改ssh/下的authorized_keys這個文件夾的權限為所有者只讀。

  2. 修改文件權限,我們可以看到報了沒有權限這個錯誤(Operation not permitted),如圖:

  3. 一般我們都知道,Linux下root用戶的權限是最大了,難道還有root用戶操作不了的文件?(Linux下UID數值越小的用戶,權限越大,可以看到最小值為0,即root用戶)

  4. 其實chmod的底層實現是chattr命令,用此命的功能更為強大,甚至可以鎖定文件,即使root用戶也操作不了此文件。

  5. chattr是用來更改文件屬性,lsattr可用來查看文件的屬性,執行命令lsattr authorized_keys查看當前文件屬性,可以發現有i和a兩個屬性。

  6. 那么我們就去掉這兩個屬性。

chattr -ia authorized_keys 
  1. 然后我們chmod 400 authorized_keys即可。就可將文件的屬性更改了。
  2. 最后恢復取消掉的那倆屬性。
chattr +ia authorized_keys 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM