沒法更改密碼的解決辦法--passwd: User not known

公司內部有臺記錄客戶信息的小系統,搭建在Linux平臺,平時一切都很正常,公司搞程序開發的須要修改內容了就經過ftp上去直接修改文件,可是今天經過ftp就是沒法登錄上去,ftp是用proftpd搭建的,開始還覺得是proftpd配置出了問題,可是經檢查一點問題都沒有,再接着修改密碼,但是改密碼的時候提示一個之前沒見過的信息: passwd: User not known to the underlying authentication module
在網上查了N久資料也沒搞清楚,以後看到有說pwck,pwconv命令能夠解決。
pwck 的做用就是檢查 /etc/passwd 這個賬號設定檔內的內容,與實際的家目錄是否存在等, 還能夠比對 /etc/passwd /etc/shadow 的內容是否一致,另外, 若是 /etc/passwd 內的資料欄位錯誤時,會提示使用者修訂。
# pwck
用戶 adm:目錄 /var/adm 不存在
用戶 news:目錄 /etc/news 不存在
用戶 uucp:目錄 /var/spool/uucp 不存在
用戶 gopher:目錄 /var/gopher 不存在
用戶 pcap:目錄 /var/arpwatch 不存在
用戶 sabayon:目錄 /home/sabayon 不存在
無效的用戶名「#tom」
pwck:無改變
上面僅是告知我,這些賬號並無家目錄,因爲那些賬號絕大部分都是系統賬號, 確實也不須要家目錄的,因此,那是‘正常的錯誤!’,相對應的羣組檢查能夠使用 grpck 這個指令。
pwck 確保系統鑑認信息的完整性,pwck 對每一項的如下域進行檢查:
-是否有惟一的用戶名
-是否有合法的用戶ID和組ID
-是否有合法的主組-是否有合法的家目錄
-是否有合法的殼(命令解釋器,如bash)
對於每一項的域數目和惟一用戶名字的檢查是相當重要的.若是某一項的域數目不正確,用戶將被提示是否刪除整行,若是用戶沒有確定的回答,pwck將再也不繼續進行檢查.若是有重複的用戶名,用戶將被提示是否刪除該項,pwck將繼續進行檢查.其餘的錯誤都只會警告用戶,而且鼓勵用戶運行usermod命令去把錯誤改正.
一些對/etc/passwd文件進行操做的命令,若是沒法對遭到破壞或者有重複項進行修改的話,pwck就要在這些狀況下進行操做,把這些項刪除.
# pwconv
這個指令主要的目的是在‘將/etc/passwd 內的賬號與密碼,移動到/etc/shadow 當中!’ 早期的 Unix 系統當中並無/etc/shadow ,因此,使用者的登入密碼早期是在/etc/passwd 的第二欄,後來爲了系統安全,纔將密碼資料移動到/etc/shadow 內的。 使用 pwconv 後,能夠:
    * 比對/etc/passwd 及/etc/shadow ,若/etc/passwd 內存在的賬號並無對應的/etc/shadow 密碼時,則pwconv 會去/etc/login.defs 取用相關的密碼資料,並創建該賬號的 /etc/shadow 資料;
    * 若/etc/passwd 內存在加密後的密碼資料時,則pwconv 會將該密碼欄移動到/etc/shadow 內,並將本來的/etc/passwd 內相對應的密碼欄變成 x !
通常來講,若是正常使用useradd 增長使用者時,使用 pwconv 並不會有任何的動做,由於/etc/passwd 與/etc/shadow 並不會有上述兩點問題啊! 不過,若是手動設定賬號,這個 pwconv 就很重要!
在執行前,密碼文件中的內容以下:

執行以後的以下:
當再次修改密碼時提示正確:
# passwd ftpadmin
Changing password for user ftpadmin.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
經過FTP已經可以連上去。
順便附上proftpd的配置,僅供參考:
相關文章
相關標籤/搜索