Diskussion:Entwicklungsumgebung/Userverwaltung

Aus Delixs
Zur Navigation springen Zur Suche springen

User- und Rechnerverwaltung (E-Mail von Hans-Dietrich Kirmse):

Die Klassen werden wie bei Arktur im GECOS eintragen. m.E. ist ein Umstellungsscript später kein großes Problem. Außerdem generiere ich hier nur Logins nach dem Muster 'vnachname'. Passwörter generiere ich nur mit der Routine "schöne Passwörter".

Ich brauche:

 1. das Anlegen eines Users
 2. das Versetzen eines Users
 3. das Ändern des Passworts eines Users
 4. das Aktualisieren der Daten (GECOS) eines Users
 5. das Löschen eines Users
 6. das Anlegen einer Klasse
 7. das Versetzen einer Klasse
 8. das Löschen einer Klasse
 9. das Anzeigen aller User
10. das Anzeigen aller Klassen
11. das Anzeigen der User einer Klasse
12. das Anlegen eines Maschinenaccounts
13. das Löschen eines Maschinenaccounts
14. das Anzeigen der Maschinenaccounts


zu 1. das Anlegen eines einzelnen Users


sollte direkt mit den smbldaptools erledigt werden. Falls noch nicht geschehen werden sie installiert mit

aptitude install smbldap-tools 

Für das Anlegen des Schülers mmustermann würde der Aufruf so aussehen:

 smbldap-useradd -a -A 1 -g 1002 -n -c 'Manfred Mustermann,5a' -d /home/pupil/mmustermann -m  mmustermann

dabei bedeuten die Parameter:

#  -a	is a Windows User (otherwise, Posix stuff only)
#  -A	can change password ? 0 if no, 1 if yes
#  -g	gid
#  -n	do not create a group
#  -c	gecos
#  -d	home
#  -m	creates home directory and copies /etc/skel

Dafür ein Webinterface zu bauen sehe ich als unproblematisch. eingegeben werden muss der Name, die Klasse bzw. Lehrer und das Login. Im Erfolgsfall wird nichts zurückgegeben.

Wenn das Login schon existert, dann wird zurückgegeben: /usr/sbin/smbldap-useradd: user mmustermann exists


zu 2. das Versetzen eines Users


Workaround: wir geben das GECOS-Feld komplett neu an (darin ist ja die Klasse)

  smbldap-usermod -c 'Manfred Mustermann,6a' mmustermann


zu 3. das Ändern des Passworts eines Users

dazu verwenden wir die smbldap-tools. als root bzw. mit root-Rechten:

  smbldap-passwd mmustermann

dann muss das neue Passwort 2x eingegeben werden


zu 4. das Aktualisieren der Namen eines Users


workaround wie bei 2. Die Klasse muss natürlich wieder angegeben werden.


zu 5. das Löschen eins Users

  smbldap-userdel -r mmustermann
  1. -r bedeutet, dass das Homeverzeichnis auch gelöscht wird


zu 6. eine Klasse anlegen


wir erstellen ein Script 'my-smbldap-passwd' indem wir eine Kopie von 'smbldap-passwd' erstellen und folgende Zeilen modifzieren:

#-------------------------------------------
# dieser Hack ist nur dafuer gedacht, dass der Aufruf
# des Scripts als root erfolgt, wobei ein Username und
# das Passwort als weiterer Parameter uebergeben wird.
# es wird nicht abgefangen, ob diese Voraussetzung erfuellt ist
$pass = $ARGV[1];
$pass2 = $ARGV[1];
#print "New password: ";
#system "/bin/stty -echo" if (-t STDIN);
#chomp($pass=<STDIN>);
#system "/bin/stty echo" if (-t STDIN);
#print "\n";
#print "Retype new password: ";
#system "/bin/stty -echo" if (-t STDIN);
#chomp($pass2=<STDIN>);
#system "/bin/stty echo" if (-t STDIN);
#print "\n";
#-------------------------------------------


um die Accounts klassenweise anzulegen, habe ich ein Script 'delixs-user' bereitgestellt, welches aber mehr als 300 Zeilen lang ist und deshalb habe ich das hier abgelegt:

  http://www.arktur.th.schule.de/delixs-user

nach delixs-user umbenennen und z.B. so aufrufen:

  delixs-user 8b userdatei.txt

dabei ist die Datei userdatei.txt eine Datei, wie sie auch bei Arktur4 erwartet wird. (sorry - ich habe die unter Linux angelegt, werde ich noch ändern)


zu 7. und 8. noch nicht realisiert  :(


zu 9. das Anzeigen aller User zu 10. das Anzeigen aller Klassen zu 11. das Anzeigen der User einer Klasse


dazu habe ich ein Script erstellt, was Folgendes leistet: (gleich aus dem Quelltext kopiert)

###########################################################
# Funktion: holt das Login und den Namen (und die Klasse)
# das Script wird so aufgerufen:
# ./userlist;
# ./userlist SCHUELER
# ./userlist LEHRER
# ./userlist KLASSEN
# ./userlist ALL
# ./userlist 8c
# wenn kein Parameter, dann werden die Schueler aufgelistet.
# Das ist dasselbe wie der Parameter SCHUELER. Mit dem Parameter
# LEHRER werden die Lehrer aufgelistet. Mit dem Paramter ALL
# werden Schueler und Lehrer aufgelistet, mit dem Parameter KLASSEN
# werden alle vorhandenen Klassen aufgelistet und wenn eine Klasse
# uebergeben wird, dann werden die Schueler dieser Klasse aufgelistet

dieses Script habe ich hier abgelegt:

  http://www.arktur.th.schule.de/userlist


zu 12. das Anlegen eines Maschinenaccounts


dazu verwenden wir die smbldap-tools. als root bzw. mit root-Rechten:

  smbldap-useradd -w pc01
  smbldap-useradd -w -u 1050 pc02


zu 13. das Löschen eines Maschinenaccounts


dazu verwenden wir auch die smbldap-tools. als root bzw. mit root-Rechten:

  smbldap-userdel  pc01
  smbldap-userdel  pc02


zu 14. das Anzeigen der Maschinenaccounts


für das Anzeigen der Accounts gibt es den Befehl

  smbldap-userlist

der liefert folgende Anzeige:

 uid  |username

    0 |root
65534 |nobody
1001 |mmustermann
1002 |eolsen
1003 |spass
1010 |mplank
1011 |aapel
1012 |pc01$
1050 |pc02$


Nur die letzten beiden Zeilen werden angezeigt:


smbldap-userlist -m
uid  |username
7777 |xp1$
65537 |XP2$
65544 |delixs-1$
2011 |pc$

Bitte beachten, dass dollarzeichen ist nicht das letzte Zeichen in der Zeile, sondern es kommen danach noch ein paar Leerzeichen.

Weitere Optionen:

smbldap-userlist -?


Aus DD-Mails von Hans-Dietrich Kirmse 29./30.01.09

--Dorn 12:24, 15. Feb. 2009 (UTC)