[root@P-dude dude]# useradd -p $6$Ic2PVlwi$2nf.IRWTMy0FHrPzaCjkahfu9IIxnzxPZL7yg8SsvOdbjEpoI0G8uy7AqduYKQOn2R/rnnaalRmfPMy.a0 bwong20
[root@P-dude dude]# cat /etc/shadow | grep pswayze
pswayze:nf.IRWTMy0FHrPeaCjkahfufIIxnzxPZL7yg8SsvOdbjEpoI0G8uy7AqduYKQOn2R/rnnaalRmfPMy.a0:16924:0:99999:7:::
我不知道为什么系统会从我的加密密码中删除前十四个字符。我文件中的密码/etc/shadow
比我作为参数提供的密码短useradd -p
答案1
因为$
是 shell 的特殊字符,所以您应该将密码放在单引号之间:
useradd -p '$6$Ic2PVlwi$2nf.IRWTMy0FHrPza6mh5wjomwbYtIIxnzxPZL7yg8SsvOdbjEpoI0G8uy7AqduYKQOn2R/rnnaalRmfPMy.a0' bwong20
如果没有这些,shell 将尝试扩展$6
,$Ic2PVlwi
和$2
到它们各自的变量值,并且由于未设置变量,因此每个变量都会产生空字符串。连接到加密密码字符串的其余部分。