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

为什么 /etc/shadow 会缩短我使用 useradd -p 命令设置的密码?
[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到它们各自的变量值,并且由于未设置变量,因此每个变量都会产生空字符串。连接到加密密码字符串的其余部分。

相关内容