Shell Script zum Benutzer anlegen

A

aeson

Foren As
Hallo,

ich suche mir schon nun einige Zeit die Finger im Internet wund und habe auch schon einiges gefunden aber nichts hat mich bisher weiter gebracht. Da ich in diesem Forum gute Erfahrung gemacht habe wende ich mich nun an euch.

Ich möchte mir ein Simples Shell-Script Programmieren. Diesem Script will ich 3 Parameter übergeben.

1. Benutzername
2. Passwort
3. Die Gruppe

Das sieht dann in etwa so aus:

addftpusr.sh Benutzername Passwort Gruppe

Bisher habe ich es leider nur geschafft den Benutzer anzulegen und das Problem an dem ich hänge ist, das Linux nach anlegen des Benutzers ein Passwort via Eingabeaufforderung haben möchte. Leider habe ich bisher keine Möglichkeit gesehen das Passwort als Parameter mitzuschicken. Ich habe nur oft gelesen das es ein Sicherheitsrisiko darstellen würde das Passwort als Parameter mitzuschicken und es deshalb nicht geht.

Es muss doch irgendwie möglich sein einen Benutzer mit einem Shell Script anzulegen ohne jedes mal das Passwort manuell eingeben zu müssen.

Ich würde mich über Ratschläge und Lösungsansätze sehr freuen. Auch wenn jemand einen guten Link hat kann er ihn gerne Posten.

gruß aeson
 
Hallo aeson,

lies dir doch mal die manpage zu useradd durch, die sollte Aufschluss darüber geben was möglich ist.

MfG,
Graf_Ithaka
 
Selbst das habe ich schon gemacht :) Aber im Endeffekt konnte ich auch hier nur Informationen über die Parameter von adduser finden. Da es den Parameter den ich suche aber nicht zu geben scheint wurde ich leider auch hier enttäuscht.
 
Du solltest auch die man-Page von useradd lesen und nicht von adduser ... ;)

man useradd schrieb:
[...]
-p, --password PASSWORD
The encrypted password, as returned by crypt(3). The default is to
disable the account.
 
Ok perfekt jetzt habe ich schonmal das was ich gesucht habe. Großes Danke schonmal dafür. Jetzt habe ich noch eine kleine Frage und dann komme ich erstmal wieder alleine zu recht. Die man useradd sagt folgendes:

The encrypted password, as returned by crypt(3). The default is to disable the account.

Das heißt dieser Parameter erwartet ein bereits verschlüsseltes Passwort. Hierzu habe ich zwei Fragen.

1. crypt(3) hat nichts mit md5 zu tun oder?
2. Gibt es eine fertige Funktion die ich in meinem SHELL Script nutzen kann, die mir einen String zu crypt(3) generiert?

gruß aeson
 
Ist zwar schon ein wenig angestaubt, aber:
1. crypt(3) hat nichts mit md5 zu tun oder?
2. Gibt es eine fertige Funktion die ich in meinem SHELL Script nutzen kann, die mir einen String zu crypt(3) generiert?
ad 1:
crypt(3) ist eine c-Funktion, welche unter anderem in der GNU-c-Library implementiert ist.
Wie dort steht wird wohl heute auch teilweise MD5 statt nur DES mitverwendet. (Näheres siehe Artikel.)

ad 2:
mit perl zum Beispiel:
Code:
SALT="23";PASSWORD="secret"; perl -e 'print crypt("'$PASSWORD'", "'$SALT'")'
(Beachte das gruselige quoting, sprich wie ich $PASSWORD und $SALT aus dem single quote "ausgesperrt" habe, damit die shell sie expandiert..)
Das "verschlüsselte" Passwort ist übrigens nur 11 Zeichen lang, die ersten 2 Zeichen sind der "Salt", welchen du ja auch im Funktionsaufruf angeben musst.
Siehe auch:
PasswdMD5
Oder hier ist eine python-Implementierung.
 

Ähnliche Themen

Windows clients können nicht mehr auf lange laufendes System zugreifen

Falsche Rechte gesetzt beim Anlegen von Ordnern via Samba-Client

Per shell script chmod-h

Eigener Multiboot USB Stick - scheitert schon an GRUB 2

Linux Kernsystem absichern durch Chroots und gute Rechtevergabe

Zurück
Oben