Wie ändere ich das Passwort mit usermod?

10

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?

Herr Coder
quelle
Die beste Antwort ist hier: askubuntu.com/a/80447/55435 , Hinweis zum Auschecken der Kommentare
Ryenus

Antworten:

16

Das usermod -pFlag erwartet, dass die Daten das Kennwort sind, das bereits in einem verschlüsselten Format vorliegt.

Verwenden openssl passwdSie diese Option , um die verschlüsselten Daten zu generieren, oder gehen Sie folgendermaßen vor:

usermod -p `openssl passwd` (USERNAME)
Rorik
quelle
openssl passwderwartet ein Passwort von 0 bis 10 Zeichen.
Onnonymous
6

Der Grund, warum es nicht funktioniert hat, ist usermod, dass die Option -p erwartet, dass das Passwort bereits verschlüsselt ist.

Aus usermodder 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.

passwdWeitere Informationen zum Einstellen von beispielsweise Ablaufzeit finden Sie auf der Manpage .

Viel Glück!

Zoke
quelle
6

Sie können verwenden passwd:

sudo passwd USERNAME 

Sie brauchen nicht, sudowenn Sie selbst Superuser sind

RiaD
quelle
sudoRoot-Passwort erforderlich :)
Achu
@ Achu: Es ist das aktuelle Benutzerkennwort erforderlich. Aber er ist Superuser.
RiaD
Was bedeutet superuser?
Achu
3

Die Möglichkeit, mit usermod ein Passwort zuzuweisen (was das OP tatsächlich verlangt hat), besteht darin, ein crypt()Hash-Passwort für das -pArgument 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 -pBefehlszeilenargument:

usermod -p ${HASH} john
Waldo Forelle
quelle
2

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

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

usermod -perfordert ein verschlüsseltes Passwort, um zu funktionieren. Bitte beachten Sie, new-passworddass dies für Benutzer sichtbar ist, die die Prozesse auflisten können.

Benoy G.
quelle
2

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}

gstanden
quelle
1

Tipp einfach

passwd

Auf diese Weise kann ein normaler Benutzer sein eigenes Passwort ohne Root-Berechtigung ändern, wenn Sie keine haben.

Achu
quelle