問題背景
線上環境修改root密碼時報如下錯誤:
[root]# passwd root
Changing password for user root.
passwd: Authentication token manipulation error
解決辦法
查看/etc/passwd、/etc/shadow文件屬性
[root]# lsattr /etc/shadow
----i----------- /etc/shadow
[root]# lsattr /etc/passwd
----i----------- /etc/passwd
注釋:
- A:即Atime,告訴系統不要修改對這個文件的最后訪問時間。
- S:即Sync,一旦應用程序對這個文件執行了寫操作,使系統立刻把修改的結果寫到磁盤。
- a:即Append Only,系統只允許在這個文件之后追加數據,不允許任何進程覆蓋或截斷這個文件。如果目錄具有這個屬性,系統將只允許在這個目錄下建立和修改文件,而不允許刪除任何文件。
- b:不更新文件或目錄的最后存取時間。
- c:將文件或目錄壓縮后存放。
- d:當dump程序執行時,該文件或目錄不會被dump備份。
- D:檢查壓縮文件中的錯誤。
- i:即Immutable,系統不允許對這個文件進行任何的修改。如果目錄具有這個屬性,那么任何的進程只能修改目錄之下的文件,不允許建立和刪除文件。
- s:徹底刪除文件,不可恢復,因為是從磁盤上刪除,然后用0填充文件所在區域。
- u:當一個應用程序請求刪除這個文件,系統會保留其數據塊以便以后能夠恢復刪除這個文件,用來防止意外刪除文件或目錄。
- t:文件系統支持尾部合並(tail-merging)。
- X:可以直接訪問壓縮文件的內容。
撤銷/etc/passwd、/etc/shadow的i文件屬性
[root]# chattr -i /etc/shadow
[root]# chattr -i /etc/passwd
再次查看/etc/passwd、/etc/shadow文件屬性
[root]# lsattr /etc/shadow
---------------- /etc/shadow
[root]# lsattr /etc/passwd
---------------- /etc/passwd
然后,重新更新用戶密碼即可。