Frage Führen Sie adduser nicht interaktiv aus


Ich würde gerne das verwenden adduser Befehl zum Hinzufügen eines Benutzers (mit deaktiviertem Passwort) über ein Shell-Skript.

Standardmäßig, adduser fordert Sie zu verschiedenen Werten auf (z. B. Vollständiger Name). Gibt es eine Möglichkeit, diese Werte über die Befehlszeile zu übermitteln? Oder werde ich müssen useradd stattdessen?


158
2018-01-09 13:54


Ursprung


Sehen Sie sich die Manpage für adduser an. Es wird dir helfen. - Zoke
@ Zoke Ich konnte die Informationen, die ich suchte, nicht auf der Manpage finden. - Lorin Hochstein


Antworten:


Benutze die --gecos Option zum Überspringen der chfn interaktiver Teil.

adduser --disabled-password --gecos "" username

Es ist alles in der Manpage. Nicht die offensichtlichste Formulierung tho.

--gecos GECOS
          Set  the  gecos field for the new entry generated.  adduser will
          not ask for finger information if this option is given.

Das GECOS-Feld ist eine kommagetrennte Liste als solche: Full name,Room number,Work phone,Home phone, trotz dieser Man Seite erwähnt finger information  Details - Wikipedia

Hoffe das hilft dir.


213
2018-01-09 14:18



Ja, ich kann sehen, wie ich das vermisst habe. "Gecos" ist keine naheliegende Beschreibung - Lorin Hochstein
+1 --gecos ist sehr verwirrend. - Trevor Sullivan


useradd kann auch Benutzer hinzufügen und scheint keine Form von Aufforderung eingebaut zu haben.

useradd -m -p <encryptedPassword> -s /bin/bash <user>
  • -m, --create-home: Erstellen Sie ein Benutzer-Home-Verzeichnis
  • -p, --password: Benutzerpasswort angeben; überspringen, um es deaktiviert zu haben
  • -s, --shell: Standard-Shell für den Anmeldebenutzer

    Leer verwendet die Standardanmeldungsshell, die von SHELL Variable in /etc/default/useradd

  • Ersatz <user> mit dem Anmeldenamen
  • Ersatz <encryptedPassword> mit dem verschlüsselt Passwort

Ein Hash-Passwort erzeugen:

Es gibt viel von Crypt3-Implementierungen, die ein Hash-Passwort generieren können. Das Ganze ist dein Hash-Passwort.

Sha-512 basiert

Das resultierende Ausgabeformat: der Hash-Mechanismus ($6 für sha-512), das zufällige Salz (die acht Bytes nach dem zweiten Dollarzeichen $ASDF1234), Rest ist die Nutzlast.

  • mkpasswd mkpasswd -m sha-512

    (mkpasswd wird von der zur Verfügung gestellt whois Paket)

DES basiert:

Das resultierende Ausgabeformat: die ersten 2 Bytes ist Ihr Salz, Rest ist die Nutzlast. Das Ganze ist dein Hash-Passwort.

  • mkpasswd: mkpasswd (zur Verfügung gestellt von whois Paket)
  • openssl: openssl passwd -crypt
  • Perl: perl -e "print crypt('password', 'sa');"

    /!\ Wählen Sie stattdessen Ihr eigenes zufälliges Zwei-Byte-Salz 'sa'

  • Python: python -c 'import crypt; print crypt.crypt("password", "Fx")'

    /!\ Wählen Sie stattdessen Ihr eigenes zufälliges Zwei-Byte-Salz "Fx"


28
2017-08-31 18:48



Die von Ihnen erwähnten Optionen existieren nicht für adduser auf meiner (aktuellen) Version von Ubuntu. - ᴠɪɴᴄᴇɴᴛ
@ ᴠɪɴᴄᴇɴᴛ adduser unterscheidet sich von useraddverwirrend ich weiß. - ThorSummoner
Ups, in der Tat verpasst, dass Sie seine fast Namensgeber verwenden ... gibt es nicht einen BDFL Schutz der Befehlszeile Namespace? ; p - ᴠɪɴᴄᴇɴᴛ
@ mum007 Dies ist nur ein allgemeiner Hinweis, versuchen Sie es hinzuzufügen -v oder -vv oder -vvv zu Ihren ssh-Befehlen, um zu sehen, was falsch ist und suchen Sie Ihre Fehlermeldungen hier auf SO oder Google. - ThorSummoner
@ KovacsAkos versuchen dies: sudo sed -i"" -e "s/PasswordAuthentication no/PasswordAuthentication yes/" /etc/ssh/sshd_config und sudo service ssh restart - JSBach