Ich bin Superadmin eines Servers und möchte das Passwort eines vorhandenen Benutzers ändern. Wie kann ich das machen ?
Ich habe es versucht
usermod -p 'new-password' john
aber es hat nicht funktioniert?
Ich bin Superadmin eines Servers und möchte das Passwort eines vorhandenen Benutzers ändern. Wie kann ich das machen ?
Ich habe es versucht
usermod -p 'new-password' john
aber es hat nicht funktioniert?
Antworten:
Das usermod -p
Flag erwartet, dass die Daten das Kennwort sind, das bereits in einem verschlüsselten Format vorliegt.
Verwenden openssl passwd
Sie diese Option , um die verschlüsselten Daten zu generieren, oder gehen Sie folgendermaßen vor:
usermod -p `openssl passwd` (USERNAME)
openssl passwd
erwartet ein Passwort von 0 bis 10 Zeichen.
Der Grund, warum es nicht funktioniert hat, ist usermod
, dass die Option -p erwartet, dass das Passwort bereits verschlüsselt ist.
Aus usermod
der Manpage:
-p, --password PASSWORD
The encrypted password, as returned by crypt(3).
Es wird nicht empfohlen, ein Passwort auf diese Weise festzulegen.
Stattdessen sollten Sie verwenden passwd <username>
. Dies sollte (as usermod
) als root erfolgen (wenn Sie das aktuell angemeldete Benutzerkennwort nicht ändern).
So ändern Sie das Passwort für Benutzer foo.
sudo passwd foo
Dadurch werden Sie zur Eingabe eines neuen Kennworts aufgefordert.
passwd
Weitere Informationen zum Einstellen von beispielsweise Ablaufzeit finden Sie auf der Manpage .
Viel Glück!
Die Möglichkeit, mit usermod ein Passwort zuzuweisen (was das OP tatsächlich verlangt hat), besteht darin, ein crypt()
Hash-Passwort für das -p
Argument zu verwenden.
SALT="Q9"
PLAINTEXT="secret_password"
HASH=$(perl -e "print crypt(${PLAINTEXT},${SALT})")
echo "Password Hash = \"${HASH}\""
Verwenden Sie das dann in Ihrem usermod -p
Befehlszeilenargument:
usermod -p ${HASH} john
Ein nicht interaktiver einzeiliger Befehl zum Ändern des Kennworts eines Benutzers:
sudo usermod -p `perl -e "print crypt("new-password","Q4")"` john
usermod -p
erfordert ein verschlüsseltes Passwort, um zu funktionieren. Bitte beachten Sie, new-password
dass dies für Benutzer sichtbar ist, die die Prozesse auflisten können.
Was hier hinzugefügt werden sollte, ist das Folgende. Diese Methode:
sudo usermod -p perl -e "print crypt("new-password","Q4")"
john
bedeutet, dass mehrere sehr ähnliche Passwörter ALLE funktionieren. Beachten Sie beispielsweise auf einem Oracle Linux 7.4-Server und einem Ubuntu 17.10-Desktop Folgendes:
sudo usermod -p perl -e "print crypt("borkling","Q4")"
orabuntu
Nun, wenn man tut:
su - orabuntu
Sie werden feststellen, dass JEDES Passwort, das mit "borkling" beginnt, funktioniert, z
borkling88 borklingjars
Obwohl "borkline" nicht funktioniert, funktioniert dies, weil, wie bereits erwähnt, jedes Passwort mit dem Präfix "borkling" auch funktioniert, wenn das Passwort auf diese Weise festgelegt wird.
Ein Weg dahin, dass afaik diese unerwünschte Nebenwirkung nicht hat, ist der folgende:
(Gutschrift für diese geht an "Sandeep" hier:
/programming/2150882/how-to-automatically-add-user-account-and-password-with-a-bash-script )
Unter RedHaty Linux: (lassen Sie das "-G Wheel" weg, wenn Sie nicht möchten, dass Sudo-Privilegien gewährt werden.)
sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G Rad $ {USERNAME}
Unter Debiany Linuxes (lassen Sie das -G sudo weg, wenn Sie keine sudo privs möchten):
sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G sudo $ {USERNAME}