在做老師佈置的練習的時候,嘗試修改用戶的密碼,結果出現瞭如下錯誤:passwd:User not known to the underlying authentication。通過上網查找資料後得知pwck,pwconv可以幫我解決這個問題。所以爲了記住這種方法,將其記錄下來與大家分享。
首先說明一下,我曾多次手動添加過賬戶,在/etc/passwd、/etc/shadow裏面的信息比較亂,有些信息想要手動刪除卻怎麼也刪不掉,於是才引發了我後來修改密碼時出錯的原因。下面主要介紹一下如何解決這種問題。
其次,我們先熟悉兩個linux下的命令,一個是pwck命令,一個是pwconv命令:
pwck是驗證系統認證信息的完整性,檢查 /etc/passwd、/etc/ shadow中所有條目的格式是否正確、每個字段的信息是否有效。系統會提示用戶刪除格式不正確的條目和其他不可糾正的錯誤;pwconv會根據根據/etc/passwd創建/etc/shadow,這樣可以有效的管理用戶的賬號信息。然後依次執行一下命令即可。
[root@taumy ~]# sudo /usr/sbin/pwck
用戶 adm:目錄 /var/adm 不存在
用戶 news:目錄 /etc/news 不存在
用戶 uucp:目錄 /var/spool/uucp 不存在
用戶 gopher:目錄 /var/gopher 不存在
用戶 ftp:目錄 /var/ftp 不存在
用戶 pcap:目錄 /var/arpwatch 不存在
用戶 avahi-autoipd:目錄 /var/lib/avahi-autoipd 不存在
用戶 sabayon:目錄 /home/sabayon 不存在
無效的密碼文件項
delete line ''? yes
用戶 mysql:目錄 /home/mysql 不存在
no matching password file entry in /etc/passwd
delete line 'u1:!!:15970:0:99999:7:::'? yes
pwck:文件已被更新
[root@taumy ~]# passwd nomas
Changing password for user nomas.
New UNIX password:
BAD PASSWORD: it is too simplistic/systematic
Retype new UNIX password:
passwd: all authentication tokens updated successfully
用另一種方法修改密碼同樣得到你想要的結果:
[root@taumy ~]# echo "abc123" | passwd --stdin nomas
Changing password for user nomas.
passwd: all authentication tokens updated successfully.