ubuntuusers.de

Frage zu Adduserscript

Status: Gelöst | Ubuntu-Version: Xubuntu
Antworten |

heinz01

Anmeldungsdatum:
12. Dezember 2005

Beiträge: 27

Moin Moin,

folgende Sache. Ich habe mir nach der Anleitung im Wiki ein Samba als PDC aufgesetzt. Jetzt sollen natürlich die User angelegt werden. Da das eine ganze Menge sind möchte ich das gerne per Script erledigen. Ein erster Test sieht folgendermaßen aus:

#!/bin/sh
useradd -s /bin/false -p 1234 testuser4
smbpasswd -as testuser4
(echo 1234; echo 1234 ) | smbpasswd -s -a testuser4 
mkdir /home/samba/profile/testuser4
chmod 700 /home/samba/profile/testuser4
chown testuser4 /home/samba/profile/testuser4
echo Benutzer testuser4 angelegt!

Nun ist das Probelem so das ich für jeden angelegten User noch 2mal Enter drücken muss.
Meine Frage dazu: An welcher stelle bleibt das Script stehen und erwartet eine Eingabe, und kann man das auch automatisieren??

Bearbeitet von xabbuh:

Bitte benutze für Auszüge aus Konfigurations- und Logdateien die code-Tags des Forum. Danke! ☺

heinz01

(Themenstarter)

Anmeldungsdatum:
12. Dezember 2005

Beiträge: 27

Ich habs doch noch hinbekommen. Manchmal sieht man den Wald vor Bäumen nicht 😉

#!/bin/sh
useradd -s /bin/false -p 1234 testuser4
(echo 1234; echo 1234 ) | smbpasswd -s -a testuser4
mkdir /home/samba/profile/testuser4
chmod 700 /home/samba/profile/testuser4
chown testuser4 /home/samba/profile/testuser4
echo Benutzer testuser4 angelegt!


Allerdings habe ich es dann für viele User nicht in den Griff bekommen. Nach einigen Lesen habe ich mich dann entschlossen das mit Perl zu erledigen. Weil ich bei meiner Suche im Internet auf viele Beiträge gestoßen bin, in dem dasselbe Problem beschrieben wird, hier nun das Perlscript für alle die es vielleicht mal brauchen.

#!/usr/bin/perl
#
# User hinzufügen. Script von Schrödi
$file = "/etc/samba/user.csv";
$dir = "/home";

# Datei öffnen
open (USER, "$file") or print "Datei nicht gefunden!\n";
my @userarray = <USER>;                   
$arraylen = push(@userarray);

for ($i = 0; $i < $arraylen; $i++)
{
        # Username und Passwort trennen
        ($username, $passw) = split(/,/, $userarray[$i]);

        # User dem System bekannt machen
        system("useradd -m -d $dir/$username -s /bin/false $username");

        # Passwort vergeben
         chomp($passw);
         $passwc=crypt("$passw","FR");
        system("usermod -p $passwc $username");

        
        # Samba bekannt machen
        system("(echo $passw; echo $passw ) | smbpasswd -s -a $username");
	
	#verzeichnisse und berechtigungen
	system("mkdir /home/samba/profile/$username");
	system("chmod 700 /home/samba/profile/$username");
	system("chown $username /home/samba/profile/$username");

        print "$username wurde erfolgreich angelegt!\n Das Passwort für den User $username lautet $passw\n";

}
print "Ich habe fertich!! ;-)\n";


Bei mir läuft's super.
Vielen Dank an alle die mir bei der lösung geholfen haben!!

Antworten |