Dlaczego / etc / shadow skraca hasło ustawione za pomocą polecenia: 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:::

Nie jestem pewien, dlaczego system usuwa pierwsze czternaście znaków z mojego zaszyfrowanego hasła. Hasło w moim /etc/shadowpliku jest krótsze niż to, co podałem jako argumentuseradd -p

PolkaRon
źródło
Oczywiście powinno być oczywiste, że musisz użyć innego hasła teraz, gdy odkryłeś ten skrót. ;)
Wildcard

Odpowiedzi:

67

Ponieważ $jest to znak specjalny powłoki, należy umieścić hasło między pojedynczymi cudzysłowami:

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

bez nich powłoka spróbuje się rozwinąć $6, $Ic2PVlwia $2do ich odpowiednich wartości zmiennych, a ponieważ zmienne nie są ustawione, skutkiem będą puste ciągi znaków dla każdej z nich. Połączone z resztą zaszyfrowanego ciągu hasła.

Anthon
źródło