Wie ändert man das Passwort mit usermod?

9

Ich bin Superadmin eines Servers und möchte das Passwort eines bestehenden Benutzers ändern. Wie kann ich das tun?

Ich habe es versucht

usermod -p 'new-password' john

aber es hat nicht funktioniert?

    
Mr Coder 13.05.2012, 20:29

7 Antworten

6

Sie können passwd :

verwenden
sudo passwd USERNAME 

Sie brauchen nicht sudo , wenn Sie selbst Superuser sind

    
RiaD 13.05.2012, 20:35
14

Das Flag usermod -p erwartet, dass die Daten das Passwort bereits in einem verschlüsselten Format enthalten.

Verwenden Sie openssl passwd , um die verschlüsselten Daten zu generieren, oder wie folgt:

usermod -p 'openssl passwd' (USERNAME)
    
Rorik 05.05.2013 00:21
6

Der Grund, warum es nicht funktionierte, ist, dass usermod 's -p Option erwartet, dass das Passwort bereits verschlüsselt ist.

Von usermod 's man page:

 -p, --password PASSWORD
       The encrypted password, as returned by crypt(3).

Das Festlegen eines Passworts auf diese Weise wird nicht empfohlen.

Stattdessen sollten Sie passwd <username> verwenden. Dies sollte (als usermod ) als root ausgeführt werden (wenn Sie das aktuell angemeldete Benutzerkennwort nicht ändern).

Um das Passwort für Benutzer foo zu ändern.

sudo passwd foo

Dies wird zur Eingabe eines neuen Passworts auffordern.

Sehen Sie sich die Man-Page für passwd an, um weitere Informationen zur Einstellung der Ablaufzeit zu erhalten.

Viel Glück!

    
Zoke 13.05.2012 20:58
1

Geben Sie einfach

ein
passwd

Auf diese Weise kann der normale Benutzer sein eigenes Passwort ohne root-Rechte ändern, wenn Sie es nicht haben.

    
Achu 13.05.2012 20:43
1

Die Zuweisung eines Passworts mit usermod (was das OP eigentlich verlangt hat) besteht darin, ein crypt() hashed 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 dann das in Ihrem Befehlszeilenargument usermod -p :

usermod -p ${HASH} john
    
Waldo Trout 11.03.2016 18:02
1

Ein nicht interaktiver einzeiliger Befehl zum Ändern des Passworts eines Benutzers:

sudo usermod -p 'perl -e "print crypt("new-password","Q4")"' john

usermod -p benötigt ein verschlüsseltes Passwort, um zu funktionieren. Bitte beachten Sie, dass new-password für Benutzer sichtbar ist, die die Prozesse auflisten können.

    
Benoy G 16.04.2016 07:52
0

Etwas, das 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. Zum Beispiel, auf Oracle Linux 7.4 Server und Ubuntu 17.10 Desktop betrachten:

sudo usermod -p perl -e "print crypt("borkling","Q4")" orabuntu

Nun, wenn man es tut:

su - orabuntu

Sie werden feststellen, dass jedes Passwort, das mit "borkling" beginnt, funktioniert, z. B.

borkling88 borklingjars

obwohl "borkline" nicht funktionieren wird, weil, wie bereits erwähnt, jedes Passwort, das "borkling" als Präfix hat, auch funktioniert, wenn das Passwort auf diese Weise gesetzt wird.

Ein Weg zu diesem, dass afaik diese unerwünschte Nebenwirkung nicht hat, ist die folgende:

(Kredit für diese geht zu "Sandeep" hier:
link )

Auf RedHaty Linuxes: (lassen Sie das "-G Rad" weg, wenn Sie nicht möchten, dass sudo privs gewährt wird)

sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORT}) -s / bin / bash -G Rad $ {USERNAME}

Auf Debiany Linuxes (lassen Sie das -G-sudo weg, wenn Sie keine sudo-Rechte haben wollen):

sudo benutzerrad -m -p $ (openssl passwd -1 $ {PASSWORT}) -s / bin / bash -G sudo $ {BENUTZERNAME}

    
gstanden 19.01.2018 21:17

Tags und Links