Mehrere Benutzer über Shell-Skript anlegen

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Traveller42
Beiträge: 26
Registriert: 08.05.2021 22:43:21

Mehrere Benutzer über Shell-Skript anlegen

Beitrag von Traveller42 » 25.05.2021 20:47:37

Hallo zusammen, hoffentlich bin ich hier im richtigen Forenbereich.

Ich habe eine Textdatei welche Datensätze enthält, die folgendermaßen aufgebaut sind

username;passwort(Klartext);gruppe1;gruppe2

Ein Shellscript soll diese Datei lesen und für jede Zeile einen Benutzer anlegen, welcher zur Gruppe 1 und/oder Gruppe 2 gehört. Wäre ja an sich nicht die große Sache - aber leider macht mir die Sache mit dem Passwort zu schaffen. Soweit ich die Manpages überblicke, kommt "useradd" in Frage. Aber die -p Option verlangt das bereits verschlüsselte Passwort. Wie kann ich die Verschlüsselung im Skript hinbekommen? Dazu scheine ich leider keinen Draht zu finden.

Kann mir bitte jemand auf die Sprünge für den den useradd Befehl helfen, damit das Klartext-Passwort hier in eine gecryptetes umgewandelt wird?

Ja, ich weiss generell, was ich da tue ;-) Die beiden Dateien werden nur zum Benutzer-Anlegen auf den Rechner übertragen und anschliessend gelöscht. Ich will das nur reproduzierbar haben und mir vor allen Dingen Zeit sparen, da ich dass ganze jederzeit neu machen muss.

Ich danke im Voraus.

mludwig
Beiträge: 793
Registriert: 30.01.2005 19:35:04

Re: Mehrere Benutzer über Shell-Skript anlegen

Beitrag von mludwig » 25.05.2021 20:55:58

Etwas probieren, Manpage und google brachte folgenden Einzeiler, den du in dein Skript einbauen kannst:

Code: Alles auswählen

useradd -d / -g users -p $(perl -e'print crypt("foo", "aa")') -M -N foo
und dann

Code: Alles auswählen

~$ su - foo
Passwort: 
$ id
uid=1002(foo) gid=100(users) Gruppen=100(users)
$ exit

JTH
Moderator
Beiträge: 3014
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Mehrere Benutzer über Shell-Skript anlegen

Beitrag von JTH » 25.05.2021 21:01:10

Ich wollte dir gerade mkpasswd aus Debianwhois vorschlagen.

Bin dabei aber auf newusers (aus dem immer installierten Debianpasswd) gestoßen. Das macht anscheinend schon genau das, was du möchtest: mehrere Benutzer in einem Rutsch anlegen. Und nimmt unverschlüsselte Passwörter entgegen.
Manchmal bekannt als Just (another) Terminal Hacker.

mludwig
Beiträge: 793
Registriert: 30.01.2005 19:35:04

Re: Mehrere Benutzer über Shell-Skript anlegen

Beitrag von mludwig » 25.05.2021 21:04:55

Habe auch noch etwas interessantes gefunden: chpasswd

Nimmt nutzername:password als Eingabe (Klartext!) und aktualisiert vorhandene Nutzer mit dem neuen Kennwort. Man könnte also erst mal Nutzer ohne Passwort anlegen und dann mit deiner schon vorhandenen Datei (minus die Gruppen) das Passwort setzen.

Traveller42
Beiträge: 26
Registriert: 08.05.2021 22:43:21

Re: Mehrere Benutzer über Shell-Skript anlegen

Beitrag von Traveller42 » 25.05.2021 21:29:12

Mensch ... so schnell gelöst, dank euch - und dann noch drei Lösungen auf einmal.

Ich danke euch!!!

uname
Beiträge: 12046
Registriert: 03.06.2008 09:33:02

Re: Mehrere Benutzer über Shell-Skript anlegen

Beitrag von uname » 26.05.2021 11:28:37

Du kannst die Benutzer auch ganz einfach in die zugehörigen Dateien wie /etc/passwd, /etc/group und /etc/shadow eintragen.
Falls du noch eine Lösung suchst ;-)

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Mehrere Benutzer über Shell-Skript anlegen

Beitrag von MSfree » 26.05.2021 11:47:58

uname hat geschrieben: ↑ zum Beitrag ↑
26.05.2021 11:28:37
Du kannst die Benutzer auch ganz einfach in die zugehörigen Dateien wie /etc/passwd, /etc/group und /etc/shadow eintragen.
Was aber noch ein wenig Nacharbeit bedeuten würde.

adduser erzeugt das Benutzerverzeichnis und legt Dateien wie .profile, .bashrc etc. an
useradd erzugt immerhin noch das Benutzerverzeichnis.
Das Bearbeiten von passwd und group macht nichts von beiden. Das Benutzerverzeichnis muß dann also noch mit mkdir angelegt, mit chown der Besitzer festgelegt, mit chmod die Rechte vergeben und mit cp die Skelettdateien aus /etc/skel kopiert werden.

Antworten