Почему / 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:::

Я не уверен, почему система удаляет первые четырнадцать символов из моего зашифрованного пароля. Пароль в моем /etc/shadowфайле короче того, что я указал в качестве аргументаuseradd -p

PolkaRon
источник
Конечно, само собой разумеется, что вам нужно использовать другой пароль, теперь вы раскрыли этот хэш. ;)
Подстановочный

Ответы:

67

Поскольку $это специальный символ для оболочки, вы должны поставить пароль между одинарными кавычками:

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

без них оболочка будет пытаться расшириться $6, $Ic2PVlwiи $2до соответствующих им значений переменных, а поскольку переменные не установлены, для каждой из них будут пустые строки. Объединяется с остальной частью строки зашифрованного пароля.

Энтон
источник