¿Por qué / etc / shadow acorta la contraseña que he establecido con el comando: 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:::

No estoy seguro de por qué el sistema elimina los primeros catorce caracteres de mi contraseña cifrada. La contraseña en mi /etc/shadowarchivo es más corta que la que he proporcionado como argumento parauseradd -p

PolkaRon
fuente
Por supuesto, debería ser obvio que necesita usar una contraseña diferente ahora que ha expuesto este hash. ;)
Comodín

Respuestas:

67

Debido a que $es un carácter especial para el shell, debe poner la contraseña entre comillas simples:

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

sin estos, el shell intentará expandirse $6, $Ic2PVlwiy $2a sus respectivos valores de variable, y como las variables no están establecidas, dará como resultado cadenas vacías para cada una de ellas. Concatenado con el resto de la cadena de contraseña cifrada.

Anthon
fuente