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

User anlegen

Ich würde gerne ca. 100 User auf eine SuSE Linux Maschine mit Samba anlegen und möchte mir gerne die Tipparbeit sparen. Weiß vielleicht jemand einen Link oder einen guten Tipp.
Bin noch kein allzu großer Skriptspezialist.
Danke

Gruß
 
schaue dir dazu mal die manpage von useradd an. Ums tippen wirste wohl nicht drumherumkommen!

Gruss Burner
 
A

Anonymous

Gast
HI,
ich habe dafür 3 Skripte:

Script 1 legt einen Standard-User an und ruft dann Script 2 changepwd auf, um das Passwort zu ändern. Das Passwort dafür wird im Klartext als Parameter 3 übergeben. Danach wird Script 3 change_samba_pwd aufgerufen, welches den entsprechenden Samb-User anlegt mit dem identischen Passwort.
Hintergrund ist, dass es unserer Schule 2 Computerräume gibt (Raum 1 Linux TerminalServer LTSP, Raum 2 Win-XP , welche auf den Linux Server als Primary Domain Contoller PDC zugreifen).

Beispiel: ./script1 10a franz geheim
Es wird ein User und SambaUser franz angelegt mit dem Homeverzeichnis /home/schueler/10a/franz und dem Passwort geheim. Den Aufruf von Script1 kannst du wiederum in ein Script packen, so dass deine 100 User in einem Rutsch angelegt werden. Bei mir hat das mit 700 Usern geklappt.
Code:
if [ $# -ne 3 ] 
 then 
echo Usage: $0 Klasse Benutzer Passwort
   exit 1 
 fi 
 
useradd -m -d /home/schueler/$1/$2 $2
./changepwd $2 $3
./change_samba_pwd $2 $3
echo $1 $2 $3 gesetzt
echo ----------------
changepwd
Code:
#!/usr/bin/expect -f 
 
 set USER [lindex $argv 0] 
 set PASSWD [lindex $argv 1] 
 
 stty -echo 

 spawn -noecho passwd $USER 
 
 expect { 
     "New password: " { 
         sleep 0.5 
         send "$PASSWD\r" 
         exp_continue 
     } 
     "Re-enter new password: " { 
         sleep 0.5 
         send "$PASSWD\r" 
         exp_continue 
     } 
     "Das Passwort wurde ge�dert." { 
         exit 0 
     } 
 }

Samba - user anlegen:
change_samba_pwd
Code:
#!/usr/bin/expect -f 
set USER [lindex $argv 0] 
set PASSWD [lindex $argv 1] 
#set USER dddd 
#set PASSWD geh004  
 stty -echo 
 spawn -noecho smbpasswd -a $USER 
 
expect { 
    "New SMB password:" { 
         sleep 0.5 
         send "$PASSWD\r" 
         exp_continue 
     } 
     "Retype new SMB password:" { 
         sleep 0.5 
         send "$PASSWD\r" 
         exp_continue 
     } 
     "Das Samba-Passwort wurde ge�dert." { 
         exit 0 
     } 
 }
Wichtig bei den Scripten 2und 3 ist, dass du exakt die Leerstellen zb bei "New SMB password:" { angibst!
Das Schöne an der Sache ist, dass du jetzt alle Passwörter in einer Liste hast. Bei mir an der Schule ist es so, dass die Schüler sie laufend vergessen und es genügt ein Blick in meine Liste.

Übrigens für die Passworterstellung habe ich mir ein keines C-Programm geschrieben.

cu ernst
 
Schon mal Danke ich habs zwar versucht, aber in welcher Shell muss ich das Skritpt ausführen.
 
OK besser gesagt beim ausführen bringt er immer die Meldung das die letzte Zeile unzulässig ist?

Ich würde auch noch gern wissen wie ich eine Liste in dem Skript hinterlegen kann, falls es jemand weiß?
Das quasi eine Liste mit allen Benutzernamen und Passwörtern hinterlegt werden kann bzw. wie kann ich auf eine Liste verweisen?
 
A

Anonymous

Gast
Hi,
zur Shell einfach sh ./script.sh
Du musst dazu aber unbedingt als root angemeldet sein!

Du schreibst, die letzte Zeile ist unzulässig. Werden die Benutzer denn angelegt? Wenn ja, dann ignoriere einfach die Meldung. Das kannst du überprüfen, indem du einmal versuchst dich unter den neuen Benutzernamen anzumelden.

Eine Verständnisfrage dazu:
Du willst normale Linuxuser anlegen und gleichzeitig Samba-User?
Willst du nur normale Linuxuser anlegen, so kannst du die Zeile ./change_samba_pwd $2 $3 löschen.

Zum Aufruf noch einmal:

Ein Startskript erstellen mit z.B folgenden Inhalt:
./script1 10a franz geheim
./script1 10a hans bravo
./script1 10a kurt charly
./script1 10a sepp delta
./script1 10a maria angeln

Aufruf mit: sh ./startscript
Dieses Startskript wird von der Shell zeilenweise abgearbeitet und ruft dann Script1 auf, welches seinerseits die Skripte changepwd und change_samba_pwd aufruft.
Es werden jetzt 5 User sowie Samba-User angelegt:
Name: franz Passwort: geheim Homeverzeichnis: /home/schueler/10a/franz
Name: hans Passwort: sepp Homeverzeichnis: /home/schueler/10a/sepp
usw.

Diese Liste ist im Prinzip das Startskript. Das kannst du mit einer Textverarbeitung noch etwas schöner formatieren und druckst sie dann aus. Diese Liste liegt bei mir in einer Mappe zusammengeheftet, für Schüler unzugänglich, im Serverraum. Da die Schüler ihre Benutzernamen und Passwörter ständig vergessen, nehme ich diese Mappe und schlage dann einmal kurz nach.

Ich hoffe, du kommst jetzt klar?

cu ernst
 
Danke ernst hast mir echt geholfen. Auf der Linux Maschine klappt es, doch bei Samba meint er irgendwie, dass "no such file or directory". Muss ich noch etwas beachten? Eine Sache vielleicht noch aktivieren?

Besteht die smbpasswd auch bevor ich Samba User angelegt habe, denn ein Kumpel behauptet, dass die smbpasswd erst nach dem Anlegen der User erstellt wird und vorher nicht existiert?

Danke nochmal
Gruß
 
ernst schrieb:
Übrigens für die Passworterstellung habe ich mir ein keines C-Programm geschrieben.

ist nicht nötig, das kann man auch wunderbar mit einem umweg über Temporäre Dateien und mktemp machen aber das hatte ich ja damals schon in meinem Script gezeigt --> siehe http://linux-club.de/viewtopic.php?t=26163&highlight=mktemp
 
Oben