Archiv verlassen und diese Seite im Standarddesign anzeigen : Gibt es ein Script das mir die arbeit abnimmt ca. 150 User anzulegen ??
Hallo Freunde,
ich habe mein System so ganz gut im Griff bekommen, dank eurer Hilfe, danke dafür !!
Jetzt habe ich ein anderes Problem, gibt es ein Script das mir die Arbeit abnimmt ca. 150 User in 5 Gruppen von Hand anzulegen ??
Gibt es ein Script Editor ?
Gibt es eine Seite für solch ein Problem ?
Wenn ich logisch rangehe, kann ich useradd NAME so eingeben, dann kann ich es doch auch bestimmt abfragen , bloß ganz soweit gehen meine Kentnisse noch nicht !!
Vieleicht in 2-3 Jahren !! :-))
THX
schau dir mal perl an, das ist eine leichte sehr mächtige Programmiersprache, mir der kann man sowas leicht erledigen.
Wenn du uns sagen würdest, ob du schon eine Liste von Usern und deren Gruppe(n) hast könnten wir dir beim Script ein wenig helfen.
Ein Programm, das soetwas macht kenn ich nicht.
Ja, perl. Oder auch awk. Eine Liste wäre ganz nett - z.B. mit einer Tabellenkalkulation erstellt und dann als "csv" (comma separated values) exportiert und dann useradd/groupadd über ein Script (welches die entpsrechenden Werte mit den Optionen verknüpft) füttern. Nix unlösbares....
ciao
Michael
@ Thyral
Guck' dir mal den Batch-Modus von userman (http://freshmeat.net/projects/userman/?topic_id=253) an (und usrmgr (http://freshmeat.net/projects/usrmgr/?topic_id=253)).
Hallo Leute, danke für die Antworten !!
ich habe keine direkte Vorgabe, ich brauch es für eine Schule !!
6 Gruppen, Klasse 8,9,10a,10b,10c, Lehrer
in jeder Klasse sind ca. 25 Schüler, wobei es reicht wenn sich der Name aus der klasse und einer Nummer zusammen setzt.
Dann kommen die Lehrer, es reicht wenn die Trainer 1-20 durchnummeriert werden.
Jetzt kommt das echte Problem, die Passwörter, mir ist nicht bekannt das man das Passwort bei LINUX SO WIE BEI Windoff bei der ersten Anmeldung selbst vergeben kann, also würde ich jeden Benutzer ein Passwort zuweisen, das so heisst wie der name, was aber nach 1 Tag gewechselt werden muss.
Hammeraufgabe, ich kann die nicht lösen. Ich würde jetzt bei gehen und anfangen jeden Benutzer per Hand anzulegen.
Wo findet man PERL ?
Danke für die MÜHE
Schau mal da nach:
http://www.ibiblio.org/pub/Linux/system/admin/accounts/!INDEX.html
Eventuell ist ja da was bei was du brauchst (... und auch funktioniert...)
ciao
Michael
perl kannst du auf deinem linux system installieren (ist wharscheinlich schon installiert existiert die datei /usr/bin/perl?)
such im Internet nach einem kleinen Tutorial, die gibt es zu Hauf. Bei Fragen: --> www.mrunix.de <--
Markus
Original geschrieben von Thyral
Jetzt habe ich ein anderes Problem, gibt es ein Script das mir die Arbeit abnimmt ca. 150 User in 5 Gruppen von Hand anzulegen ??
das problem wurde hier vor einiger zeit behandelt. probier mal die suchfunktion aus.
Gibt es ein Script Editor ?
vim.
-j
Wie liegen die Daten vor? Eine Tabelle?
Es ist nicht unbedingt nötig ein kompliziertes Script zu schreiben. Wenn die Daten als Tabelle vorliegen, ist es ev. einfacher dort die Usernamen/Gruppen/Anfangspasswort zu generieren. Die Tabelle muss sowieso ausgedruckt werden. Die Tabelle exportiert du dann in eine cvs-Datei:
user;fullname;group;password
Als Username könntest du z.B. folgendes Muster nehmen: Hans Muster -> mustehan
Falls es mehrere Hans Muster gibt, wird einfach eine Nummer hinzugefügt: musteha1
Das folgende Script legt zuerst die in der Variablen CLASSES angegebenen Gruppen an. Die einzelnen User werden nicht einfach nur in /home/user erzeugt, sondern noch in ein Unterverzeichnis mit dem Klassennamen: /home/klasse/user
Danach werden die User angelegt, wobei die Datei in der Variablen USERLIST eingelesen wird.
#!/bin/sh
# diese Konstanten können angepasst werden
USERLIST="userlist.cvs"
HOMES="/home"
CLASSES="k8,k9,k10a,k10b,k10c,lehrer"
for a in $(IFS=",${IFS}"; echo ${CLASSES}); do
groupadd "${a}"
mkdir -p "${HOMES}/${a}"
chown "root.${a}" "${HOMES}/${a}"
chmod 755 "${HOMES}/${a}"
done
CURLINE=$((1))
LINES=$(($(cat ${USERLIST} | wc -l)))
while [ ${CURLINE} -le ${LINES} ]; do
LINE=$(cat ${USERLIST} | awk "{ if (NR == ${CURLINE}) print }")
UNAME=$(echo ${LINE} | cut -d ";" -f 1)
FNAME=$(echo ${LINE} | cut -d ";" -f 2)
GNAME=$(echo ${LINE} | cut -d ";" -f 3)
IPWD=$(echo ${LINE} | cut -d ";" -f 4)
adduser -c "${FNAME}" -d "${HOMES}/${GNAME}/${UNAME}" \
-g "${GNAME}" -p "${IPWD}" "${UNAME}"
CURLINE=$((${CURLINE}+1))
done
ev. musst du noch das Skeleton für die Homeverzeichnisse /etc/skeleton vorher anpassen. Falls über SMB auf den Rechner zugegriffen werden muss, darfst du nicht vergessen den Benutzer in der Samba-Benutzerdatenbank ebenfalls anzulegen und das Passwort dort zu setzen.
Das Passwort läuft noch nicht ab.
Das Script ist ein kurzer Hack und kann sicher nöch schöner programmiert werden.
Gruss, Andy
hi!
wenn ich mich nicht irre kann man sowas auch mit expect machen
Danke, Danke.
ich habe mir den SourceCode rauskopiert in in eine neuen Datei kopiert, die Datei heisst "user.sh", dann habe ich
"chmod +777 user.sh" gemacht, habe ich irgendwo gelesen. Und nun versuche ich das Script zu starten, da passiert aber nichts, wie kann ich das script starten ??
ich dachte es reicht wenn ich "user.sh" auf der Bash eingebe.
Habe ich ein Denkfehler ??
Danke nochmal für eure Mühe !
./script.sh
aus Sicherheitsgründen werden Programme im aktuellen Verzeichnich (working directory) nicht ausgeführt.
Deshalb musst du ein ./ davor tun.
@RapidMax
Hallo, das hat ja fast gut geklappt, das Problem ist, nachdem ich es geschaft habe es zu starten, sind die Ordner für die Klassen angelegt worden, ich bekomme immer eine Fehlermeldung mit der ich nichts anfangen kann
"cat: userlist.cvs: No such file or directory" muss ich diese Liste erst anlegen ??
oder wird die irgendwo generiert? ich habe von programmieren fast keine Ahnung, gebe ich ja zu. Aber ich habe lust zu probieren und zu lernen.
Ähm, meinen Beitrag hättest du schon durchlesen müssen. Das Script ist entstanden, weil ich einfach wieder einmal Lust hatte zu coden ;) Getestet habe ich es insofern, indem ich vor die eigentlichen Befehle ein "echo" gesetzt habe. Ob es funktioniert konnte ich nur anhand der Ausgabe sehen.
Das Script ist ein kurzer Hack und kann sicher nöch schöner programmiert werden.
Das du es ausführst ohne es vorher zu verstehen ist ein wenig fahrlässig.
Also: die Datei userlist.cvs musst natürlich du selber anlegen.
Ich schlage dir jetzt vor, das ganze nochmals genau zu lesen, die cvs-Datei anzulegen und auch hineinzusehen ob sie korrekt ist!
Im Script kannst du den ersten Teil entfernen: Die Gruppen und Unterverzeichnisse sind jetzt bereits angelegt.
Um sicher zu gehen, dass das Script richig läuft, kannst du vor adduser ein "echo" hinzufügen: "echo adduser"
Jetzt passiert nichts und anhand der Ausgabe siehst du was passiert (ist einfacher als nachher 160 User zu löschen).
Gruss, Andy
Servus!
Webmin kann auch irgendwas in diese Richtung.
Grüße, Stefan
hi to all
@RapidMax
danke für das script, ich lerne immer gerne was dazu. und scripten gehört zu den offenen posten. :cool:
@all
ich habe lieber ein kleines script das ich schnell verstehe und ändern kann. besser als irgendein proggi, wo ich fünf bis sechs wochen bräuchte um den c++ code zu analysieren, um etwas ändern zu können. :D
greetz rabenkind :))
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.