Odpowiedzi:
Powodem, dla którego nie działało, jest to, że usermod
opcja -p oczekuje, że hasło zostanie już zaszyfrowane.
Ze usermod
strony podręcznika użytkownika:
-p, --password PASSWORD
The encrypted password, as returned by crypt(3).
Ustawienie hasła w ten sposób nie jest zalecane.
Zamiast tego powinieneś użyć passwd <username>
. Powinno to (as usermod
) być wykonane jako root (jeśli nie zmieniasz hasła aktualnie zalogowanego użytkownika).
Aby zmienić hasło użytkownika foo.
sudo passwd foo
Spowoduje to monit o nowe hasło.
Zajrzyj na stronę podręcznika, aby passwd
uzyskać więcej informacji na temat ustawiania np. Upływu czasu.
Powodzenia!
Sposobem przypisania hasła za pomocą usermod (o co tak naprawdę poprosił OP) jest użycie crypt()
zaszyfrowanego hasła dla -p
argumentu.
SALT="Q9"
PLAINTEXT="secret_password"
HASH=$(perl -e "print crypt(${PLAINTEXT},${SALT})")
echo "Password Hash = \"${HASH}\""
Następnie użyj tego w usermod -p
argumencie wiersza poleceń:
usermod -p ${HASH} john
Coś, co należy tutaj dodać, to: Ta metoda:
sudo usermod -p perl -e "print crypt("new-password","Q4")"
John
oznacza, że zadziała wiele bardzo podobnych haseł. Na przykład na serwerze Oracle Linux 7.4 i komputerze Ubuntu 17.10 rozważ:
sudo usermod -p perl -e "print crypt("borkling","Q4")"
orabuntu
Teraz, jeśli:
su - orabuntu
przekonasz się, że DOWOLNE hasło zaczynające się od „borkling” będzie działać, np
borkling88 borklingjars
chociaż „borkline” nie będzie działać, ponieważ jak wspomniano wcześniej, każde hasło, które ma „borkling” jako prefiks, będzie również działać, gdy hasło zostanie ustawione w ten sposób.
Sposób na to, aby afaik nie miał tego niepożądanego efektu ubocznego, jest następujący:
(podziękowania dla „Sandeep” tutaj:
/programming/2150882/how-to-automatically-add-user-account-and-password-with-a-bash-script )
W systemach Linux RedHaty: (pomiń koło „-G”, jeśli nie chcesz, aby przyznano uprawnienia sudo)
sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G wheel $ {NAZWA UŻYTKOWNIKA}
W systemach Linux Debiany (pomiń opcję -G sudo, jeśli nie chcesz uprawnień sudo):
sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G sudo $ {NAZWA UŻYTKOWNIKA}