为什么/ etc / shadow缩短了我使用命令useradd -p设置的密码?


21
[root@P-dude dude]# useradd -p $6$Ic2PVlwi$2nf.IRWTMy0FHrPzaCjkahfu9IIxnzxPZL7yg8SsvOdbjEpoI0G8uy7AqduYKQOn2R/rnnaalRmfPMy.a0 bwong20

[root@P-dude dude]# cat /etc/shadow | grep pswayze
pswayze:nf.IRWTMy0FHrPzaCjkahfu9IIxnzxPZL7yg8SsvOdbjEpoI0G8uy7AqduYKQOn2R/rnnaalRmfPMy.a0:16924:0:99999:7:::

我不确定为什么系统会从我的加密密码中删除前14个字符。/etc/shadow文件中的密码比我作为参数提供的密码短useradd -p


当然,在公开了此哈希之后,无需多说,您需要使用其他密码。;)
通配符

Answers:


67

因为$是shell的特殊字符,所以您应该将密码放在单引号之间:

useradd -p '$6$Ic2PVlwi$2nf.IRWTMy0FHrPza6mh5wjomwbYtIIxnzxPZL7yg8SsvOdbjEpoI0G8uy7AqduYKQOn2R/rnnaalRmfPMy.a0' bwong20

没有这些,shell将尝试将扩展为$6$Ic2PVlwi并将$2其扩展为各自的变量值,并且由于未设置变量,因此每个变量都会产生空字符串。与其余的加密密码字符串连接。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.