Centos
useradd 不在 /etc/shadow 中加密密碼
在嘗試為 vsftpd 創建新的 FTP 使用者時,我偶然發現了這個問題。使用以下命令創建新使用者並嘗試使用 FileZilla 登錄時,我會收到“密碼錯誤”錯誤。
useradd f -p pass -d /home/f -s /bin/false
這樣做之後,/etc/shadow包含
f:pass:1111:0:99:2:::
一旦我執行以下命令並提供相同的通行證
passwd f
/etc/shadow包含
f:$1$U1c5vVwg$x5TVDDDmhi0a7RWFer6Jn1:1111:0:99:2:::
似乎在我執行passwd時會發生加密,但不會在useradd時發生
重要的是,在這樣做之後,我可以使用完全相同的憑據登錄 FTP。
我使用 CentOS 5.11,vsftpd 用於 FTP,FileZilla 用於 FTP 訪問
/var/log/secure包含:
Dec 17 useradd[644]: new group: name=f, GID=511 Dec 17 useradd[644]: new user: name=f, UID=511, GID=511, home=/home/f, shell=/bin/false
**
-p pass
為什麼當我傳遞給 useradd時它不起作用?**我需要做什麼才能使其工作?
這是按預期工作的。如果要使用該
useradd
命令設置密碼,則應該將密碼的雜湊版本提供給useradd
.該字元串
pass
確實滿足 中散列密碼欄位的格式標準/etc/shadow
,但該字元串沒有實際的密碼散列。結果是,出於所有意圖和目的,該帳戶將表現為具有密碼,但您嘗試用於訪問它的任何密碼都將被拒絕,因為它不是正確的密碼。請參閱
man useradd
或useradd 文件:
-p
,--password
密碼crypt(3)返回的加密密碼。預設是禁用密碼。
注意:不推薦使用此選項,因為密碼(或加密密碼)將對列出程序的使用者可見。
您應該確保密碼遵守系統的密碼策略。