問題
root密碼修改時報Authentication token manipulation error錯誤:
分析
linux系統中,賬戶的密碼都是存儲在/etc/shadow文件中,要修改賬戶的密碼必定要修改shadow文件。這裏出現這樣的錯誤,會不會是root用戶無法修改造成的?
/etc/shadow文件的默認權限是000,但是正常情況下對於權限是000的文件,root用戶應該是有讀寫權限的。這裏想到linux系統文件還有一些隱藏權限,執行lsattr /etc/shadow命令返回:
果然是被修改了,"a"表示文件只能被追加,但是不能被修改同樣不能被刪除。這種情況下,導致賬戶密碼無法修改。
執行chattr -a /etc/shadow命令,再次修改root密碼成功:
總結
對於“Authentication token manipulation error”這種報錯,網上有一些其他說法:/etc/passwd /etc/shadow 文件不同步、磁盤空間不足、inode 滿了、/etc/pam.d/passwd 相關動態庫文件問題,根據自己系統情況逐一排查。
簡單回顧下lsattr、chattr用法:
1.lsattr命令
列出文件或目錄的隱藏權限,格式:lsattr [ -RVad ] [ files… ]
常用選項說明:
選項 | 含義 |
---|---|
R | 遞歸打印目錄下所有文件及子目錄的權限 |
V | 同時打印出lsattr程序版本 |
a | 打印目錄下所有文件及目錄的權限 |
d | 打印目錄的權限,不包括目錄下的文件 |
2.chattr命令
修改文件或目錄的隱藏權限,格式:chattr [ -RV ] [ mode ] files…
常用選項說明:
選項 | 含義 |
---|---|
R | 遞歸更改目錄下所有文件及子目錄的權限 |
V | 打印出chattr程序版本及執行的結果信息 |
mode | 表達式,用於具體權限的更改,格式:=+-[iaAScdjsu] |
mode表達式說明:
“=” 設置爲指定參數的權限
“+” 新增指定參數的權限
“-” 移除指定參數的權限
i 文件不能被刪除、改名、設定鏈接關係,同時不能寫入或新增內容(即使是root用戶),只有root才能設定這個屬性
a 文件不能被刪除、改名、原有內容修改,只能追加內容
A 文件的atime(access time)不可被修改,這樣可以減少磁盤I/O數量,對於筆記本電腦有利於提高續航能力
S 硬盤I/O同步選項,功能類似sync
c 文件會自動的經壓縮後再存儲,讀取時會自動的解壓
d 設定文件不能成爲dump程序的備份目標
j 設定此參數使得當通過mount參數”data=ordered”或”data=writeback”掛載的文件系統,文件在寫入時會先被記錄(在journal中)。如果filesystem被設定參數爲data=journal,則該參數自動失效
s 保密選項。設置了s屬性的文件在被刪除時,其所有數據塊會被寫入0
u 反刪除選項。與s相反,文件在被刪除時,其所有的數據塊都保留着,用戶今後可以恢復該文件
參考:https://blog.csdn.net/sailor201211/article/details/53215060