• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Samba-Benutzer aus Datei generieren?

Holger24

Newbie
Hallo,

ich habe eine Frage zum Erstellen von Samba-Benutzern.

Ich habe eine Text-Datei in der Form "Benutzername:passwort". Jetzt möchte ich mit Hilfe dieser Datei Samba-Nutzer mit ihrem Passwort anlegen. Ist das überhaupt möglich?

Die Datei sieht z.B. so aus;
holgi:123456
klaus:mfgzdf
..:..

(Die Benutzer holgi, klaus,.. exisitieren mit einem Home-VErzeichnis im Linux-System)
Diese Nutzer sollen jetzt als Samba-Nutzer angelegt werden, gleich mit Passwort,ohne das ich für jeden User "smbpasswd..." aufrufen muss.


Vielen Dank für Tipps

Holger
 

spoensche

Moderator
Teammitglied
Es muss für jeden User smbpasswd aufgerufen werden. Du kannst dafür aber ein Bash- Script verwenden und in diesem Script dann in einer for Schleife den Benutze und Passwort extrahieren und anschließend an den smbpasswd Befehl übergeben.

Zwischen den Benutzern muss für folgendes Script entweder ein Leerzeichen (user1:pwd1 user2:pwd2) sein oder jeder Benutzer mit Passwort in einer eigenen Zeile.

Code:
#!/bin/sh
users=$(cat /pfad/zu/deiner/datei/mit/den/benutzern)

for user in $users; do
    # benutzer:passwort in temporärer Datei speichern, damit der Befehl cut verwendet werden kann.
    echo $user > usertmp
    username=$(cut -d: -f1 usertmp)
    password=$(cut -d: -f2 usertmp)

   # Hier dann noch die Variablen username und password an das Programm smbpasswd übergeben
done

rm usertmp

Den Aufruf von smbpasswd habe ich bewusst weggelassen. Du sollst ja auch ein wenig was machen. ;)
 
OP
H

Holger24

Newbie
Erstmal vielen Dank für die Antwort.

Leider war genau der Teil der fehlt mein Problem ;-)

Ich habe zum Anlegen der Benutzer folgendes Skript:

Code:
for user in `cut -d: -f1 Benutzerliste.txt` ; do useradd -g samba -s /bin/false $user ; done

Mit useradd funktioniert das auch, leider bekomme ich das mit smbpasswd nicht hin, ich habe keine Ahnung, wie ich das Passwort übergeben kann.

Ich habe etwas in der Form "smbpasswd -s -a $nutzer<$passwort" versucht, funktioniert leider nicht.

Wie kann ich smbpasswd so aufrufen, dass ich das Passwort gleich mit übergeben kann?

Vielen Dank für eure Hilfe

Holger
 

spoensche

Moderator
Teammitglied
Laut
Code:
man 8 smbpasswd
kannst du das Passwort bei der Verwendung von LDAP und Samba als PDC mit übergeben. Ob das auch ohne LDAP und nur als PDC geht müsstest du selber ausprobieren.
 
OP
H

Holger24

Newbie
So, nach gefühlten 100 Arbeitsstunden, umfangreicher Recherche im Internet und ca. 1000L Kaffee habe ich folgende Lösung gefunden, ich poste sie mal, evtl, kann ja der ein oder andere was damit anfangen :D :
Code:
#!/bin/sh

if [ -e $1 ]; then

	while read ZEILE
	do
		USER=$(echo $ZEILE | cut -d: -f1)
		PW=$( echo $ZEILE | cut -d: -f2)
	
		echo "User: $USER -> PW: $PW"
	
		useradd -g samba -m -s /bin/false $USER
		
		printf "$PW\n$PW\n"|smbpasswd -a -s $USER

	done < $1

else
	echo "Datei $1 nicht gefunden"
	echo "richtiger Aufruf: ./benutzer.sh dateiname"
	echo "Dateiformat:    Nutzer:PW"
fi

Nochmal danke an alle Tipp-Geber,

Grüße
Holger
 
Oben