Erstellen eines Benutzers per Skript

Erstellen eines Benutzers per Skript

Ich möchte einen neuen Benutzer in einer bestimmten Gruppe erstellen, wenn ich den folgenden Befehl ausgebe.

sudo ./create_user.sh "test" "firstname lastname"

Das create_user.shSkript sieht wie unten aus.

#!bin/bash
#sudo adduser --gecos "$2" --ingroup testgroup $1

Das Problem ist jedoch, dass ich bei einem Here-Dokument die Passworteingabe vermeiden muss (es sollte einfach Test sein), aber keine Ahnung von der Syntax habe.

Ich habe einige Lösungen ausprobiert, aber keine davon schien zu funktionieren.

So sieht mein Versuch aus, das Dokument in das Skript einzufügen

#<< EOF
#test
#test
#EOF

meine Ausgabe sieht so aus

#adding user 'test' ...
#adding new user 'test' <1003> with group 'testgroup' ...
#Enter new UNIX password:

Antwort1

adduserruft das passwdDienstprogramm zum Festlegen eines Passworts auf. Wie viele Programme, die nach einem Passwort fragen, passwdbesteht es darauf, dass seine Ausgabe von einem Terminal kommt. Sie können ihm also keine Eingabe über ein Here-Dokument übergeben – das erstellt eine temporäre Datei oder eine Pipe und passwdakzeptiert keines von beiden.

Sie können adduserdie Option überspringen (zumindest in der Debian-Version), --disabled-passwordwenn Sie sich nicht mit einem Kennwort anmelden möchten (Sie können sich weiterhin mit anderen Methoden wie SSH-Schlüsseln anmelden, wenn Sie diese eingerichtet haben). adduserbietet keine Option zum Übergeben des Kennwort-Hashes (nicht des Kennworts selbst), useradddie Linux-Dienstprogrammsuite Shadow Password bietet diese Option jedoch an.

Wenn Sie bei der Kontoerstellung ein Passwort eingeben möchten, stellen Sie sicher, dass es passwdvom Terminal gelesen wird. Wenn Sie das Passwort aus einer anderen Quelle erhalten (z. B. einem Webformular), rufen Sie passwdvon einemerwartenSkript - Beispiel.

Wenn dies eine Übung zur Verwendung eines Here-Dokuments ist, ist das Passwort nicht dort, wo Sie es verwenden sollten. Ich sehe in dem, was Sie gepostet haben, kein Problem, das ein Here-Dokument lösen würde.

verwandte Informationen