Pourquoi / etc / shadow raccourcit le mot de passe que j'ai défini avec la commande: 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:::

Je ne sais pas pourquoi le système supprime les quatorze premiers caractères de mon mot de passe crypté. Le mot de passe de mon /etc/shadowfichier est plus court que celui que j'ai fourni comme argument pouruseradd -p

PolkaRon
la source
Bien sûr, il va sans dire que vous devez utiliser un mot de passe différent maintenant que vous avez exposé ce hachage. ;)
Wildcard

Réponses:

67

Parce qu'il $s'agit d'un caractère spécial pour le shell, vous devez mettre le mot de passe entre guillemets simples:

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

sans ceux-ci, le shell tentera de se développer $6, $Ic2PVlwiet $2à leurs valeurs de variable respectives, et comme les variables ne sont pas définies, il en résulte des chaînes vides pour chacune d'entre elles. Concaténé au reste de la chaîne de mot de passe chiffrée.

Anthon
la source