
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.sh
Skript 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
adduser
ruft das passwd
Dienstprogramm zum Festlegen eines Passworts auf. Wie viele Programme, die nach einem Passwort fragen, passwd
besteht 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 passwd
akzeptiert keines von beiden.
Sie können adduser
die Option überspringen (zumindest in der Debian-Version), --disabled-password
wenn 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). adduser
bietet keine Option zum Übergeben des Kennwort-Hashes (nicht des Kennworts selbst), useradd
die Linux-Dienstprogrammsuite Shadow Password bietet diese Option jedoch an.
Wenn Sie bei der Kontoerstellung ein Passwort eingeben möchten, stellen Sie sicher, dass es passwd
vom Terminal gelesen wird. Wenn Sie das Passwort aus einer anderen Quelle erhalten (z. B. einem Webformular), rufen Sie passwd
von 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.