Erstellen eines Benutzers ohne Passwort


66

Ich versuche, einen Benutzer ohne Passwort wie folgt zu erstellen:

sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos ‘User for managing of git version control’ \
   --group \
   --disabled-password \
   --home /home/git \
   git

Es ist gut erstellt. Aber wenn ich versuche, mich unter dem Git-Benutzer anzumelden, erhalte ich das folgende Passwort:

su git
Password:...

Wenn ich es leer lasse, erhalte ich eine Fehlermeldung:

su: Authentication failed

Was ist los mit dir?


1
Nichts ist falsch, die Authentifizierung ist wie erwartet fehlgeschlagen. Sie erhalten nicht die Fehlermeldung "Es gibt kein Passwort, Sie können sich nicht anmelden".
Scai

Aber ich muss einen .ssh-Ordner unter dem Git-Benutzer erstellen. Wie soll ich das machen?
Erik

1
Erstellen Sie es entweder als root, und legen Sie die richtigen Berechtigungen fest, oder führen Sie es su gitals root aus, wenn Sie kein Kennwort angeben müssen.
Scai

4
Mit chmodund chown.
Scai

1
Kein Thema, aber es ist "ein Benutzer", nicht "ein Benutzer". writersdigest.com/online-editor/…
David Baucum

Antworten:


31

Sie haben einen Benutzer mit einem deaktivierten Kennwort erstellt, dh, es gibt kein Kennwort, mit dem Sie sich als dieser Benutzer anmelden können. Dies unterscheidet sich von der Erstellung eines Benutzers, mit dem sich jeder anmelden kann, ohne ein Kennwort anzugeben. Dies wird durch die Angabe eines leeren Kennworts erreicht und ist sehr selten nützlich.

Um Befehle als solche "System" -Benutzer auszuführen, die sich nicht normal anmelden, müssen Sie über das Root-Konto springen:

su -c 'su git -c "git init"'

oder

sudo -u git git init

Wenn Sie möchten, dass bestimmte Benutzer Befehle als gitBenutzer ausführen können, ohne dass sie Befehle als root ausführen dürfen, richten Sie sudo ein (führen Sie sudo visudoals root aus und fügen Sie eine Zeile wie hinzu %gitters ALL = (git) ALL).


@ Julien Ricard Er, ja, und? Es gibt mehrere Möglichkeiten, wie "Benutzer ohne Passwort" verstanden werden kann, und ich beantworte den in der Frage angegebenen Anwendungsfall. Eine andere Frage wäre beispielsweise das Erstellen eines Gastbenutzers.
Gilles

41

Mit dieser --disabled-passwordOption wird kein Kennwort festgelegt, dh, es ist kein Kennwort zulässig, eine Anmeldung ist jedoch weiterhin möglich (z. B. mit SSH-RSA-Schlüsseln).

Um einen Benutzer ohne Kennwort zu erstellen, verwenden Sie passwd -d $usernamenach dem Erstellen des Benutzers, um das Kennwort leer zu machen. Beachten Sie, dass nicht alle Systeme die Anmeldung von Benutzern mit leerem Kennwort zulassen.


3
Dies scheint nicht zu funktionieren in Version 16 Ubuntu
Daniel Tate


9

Wenn Sie unter dem Benutzer git auf das System zugreifen möchten, sollten Sie sudo verwenden:

sudo -s -u git

oder

sudo su - git

4

Erstellen Sie einen Benutzer mit leerem Kennwort

sudo useradd test-user-0
echo test-user-0:U6aMy0wojraho | sudo chpasswd -e
su test-user-0

Die Passwortabfrage zeigt leider immer noch.

Wenn Sie jedoch einfach die Eingabetaste drücken, ohne etwas einzugeben, wird der Benutzer angemeldet test-user-0.

Das -eFlag gibt an, chpasswddass das Kennwort bereits verschlüsselt ist und U6aMy0wojrahoder Hash der leeren Zeichenfolge ist.

Getestet unter Ubuntu 18.04.

Terminal Autologin mit getty -a

Zumindest auf dem Terminal müssen Sie keinen Benutzer ohne Kennwort erstellen, damit nicht jedes Mal jemand sein Kennwort eingeben kann.

Ich konnte dies auf BusyBox tun, indem ich Folgendes änderte inittab: Wie kann ich mich automatisch anmelden, ohne den Root-Benutzernamen oder das Passwort in Buildroot BusyBox init einzugeben?

Ich glaube, dass es nicht sehr schwierig sein sollte, diese Technik anzupassen, indem man die systemd init-Systemskripte von Ubuntu 18.04 ändert, um ein getty -a <user>Terminal wie in dieser Antwort erwähnt einzurichten , obwohl ich es nicht selbst versucht habe.


2

Ich denke das ist was du willst:

adduser --disabled-password --shell /bin/bash --gecos "User" $username

Du wirst in der Lage sein

su $username

Befehle als dieser Benutzer ausführen, in / bin / bash oder in der von Ihnen angegebenen Shell. --gecos "Benutzer" fügt einfach "Benutzer" in das Kommentarfeld ein, damit Sie nicht zur Eingabe dieser Informationen aufgefordert werden. Sie können in dieses Feld alles eingeben, was Sie wollen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.