Der Benutzermanager ist ein CGI-Programm für den Webserver. Es ist in Perl geschrieben und wird vom Browser aus angewendet. Die Bedienung ist selbsterklärend. Der Quellcode ist im Anhang abgedruckt. Hier werden nur die Befehle genannt, die im Benutzermanager jeweils ausgeführt werden.
Jeder Benutzer existiert als Benutzer unter Linux und als Samba-Benutzer. Zunächst wird der Benutzer aus der Samba-Benutzerdatenbank gelöscht:
$ smbpasswd -x $login
Als nächstes wird das public_html-Verzeichnis des Benutzer gesichert werden. Es wird einfach in das Verzeichnis "oldhomes" auf dem Webserver verschoben. Außerdem müssen die richtigen Rechte gesetzt werden:
$ mv /home/public_html/$login /usr/local/httpd/htdocs/oldhomes/ $ chown -h -f -R root.www-data /usr/local/httpd/htdocs/oldhomes/$login $ chmod -R 755 /usr/local/httpd/htdocs/oldhomes/$login
Danach kann der Benutzer, sein Homeverzeichnis und seine Gruppe gelöscht werden:
$ userdel -r $login $ groupdel $login
Zum Schluss muss noch eine neue Passwort-Datei für apache erstellt werden, damit der Benutzer auch hier nicht mehr existiert.
$ /usr/local/sbin/generate_apache_auth
Das Passwort eines Benutzers muss an drei Stellen geändert werden: In der Linux-Benutzerdatenbank, bei Samba und dann in der apache-Passwort-Datei. Drei Befehle müssen dazu ausgeführt werden. Bei den ersten beiden muss das neue Passwort zweimal eingegeben werden.
$ passwd $login $ smbpasswd $login $ /usr/local/sbin/generate_apache_auth
Zu den Rechten zählen zum einen die verschiedenen Gruppen, in denen der Benutzer Mitglied ist und zum andern die Quota-Einstellung, die angibt, wieviel Festplattenplatz der jeweilige Benutzer verbrauchen darf. Neben den Rechten kann auch noch die Login-Shell eingestellt werden: Ist die Shell /bin/bash, dann darf sich der Benutzer direkt (bzw. über das Netzwerk) am Server einloggen. Soll das verhindert werden, dann muss /bin/false eingestellt werden. Sinnvollerweise sollten sich nur Administratoren direkt einloggen dürfen. Die Gruppen können eine Kombination der folgenden Liste sein: schueler, lehrer, internet, admin, homepage.
Gruppenzugehörigkeit und Shell ändern:
$ usermod -s $shell -G users,$gruppen,$login $login
Quota ändern - $limit muss in KB angegeben werden:
$ setquota $login /dev/md0 $limit $limit 0 0
Zum Schluss muss wieder die apache-Passwort-Datei neu erstellt werden:
$ /usr/local/sbin/generate_apache_auth
Ein Benutzer kann gesperrt werden und wieder freigegeben werden. Wenn ein Benutzer gesperrt ist, kann er sich nicht mehr einloggen. Sein Zugang ist deaktiviert. Um einen Benutzer zu sperren, müssen drei Befehle ausgeführt werden:
$ passwd -l $login $ smbpasswd -d $login $ /usr/local/sbin/generate_apache_auth
Um einen Benutzer, der gesperrt ist, wieder freizugeben, müssen auch drei Befehle ausgeführt werden:
$ passwd -u $login $ smbpasswd -e $login $ /usr/local/sbin/generate_apache_auth
Als erster Schritt muss eine neue Gruppe erstellt werden, die den gleichen Namen trägt wie der Benutzer, den man einrichten will:
$ groupadd $login
Danach kann der Benutzer erstellt werden. Ist der Benutzer ein Schüler, so ist sein Homeverzeichnis /home/schueler/$login; bei Lehrern heißt das Homeverzeichnis /home/lehrer/$login. "$name" ist der vollständige Name, "$login" ist der Login-Name. "$groups" ist eine Kombination aus schueler, lehrer, internet, admin, homepage. Dieser Befehl legt auch gleich das Homeverzeichnis an und kopiert alles aus /etc/skel/ hinein. In /etc/skel/ liegt ein halbkonfiguriertes Mozilla-Profil im Ordner mozilla.
$ useradd -c "$name" -d $home -g $login -G users,$groups,$login \ -s $shell -m $login
Außerdem wird mit dem zweiten Befehl gleich das Passwort gesetzt.
$ passwd $login
Danach wird das "public_home"-Verzeichnis eingerichtet:
$ mkdir -m 0755 /home/public_html/$login $ chown $login.$login /home/public_html/$login $ ln -s /home/public_html/$login $home/public_html
Anschließend wird der Benutzer für Samba erstellt. Dabei muss das Passwort gleich gesetzt werden.
$ smbpasswd -a $login
Jetzt muss noch der Quota-Wert gesetzt werden. Ein gewöhnlicher Benutzer darf maximal 50 MB benutzen:
$ setquota $login /dev/md0 51200 51200 0 0
Damit der Benutzer über den Webserver sein Passwort ändern kann, muss die apache-Passwortdatei neu generiert werden:
$ /usr/local/sbin/generate_apache_auth
Zum Schluss muss die Mozilla-Konfiguration angepasst werden. Hier werden der Name des Benutzer und seine EMail-Adresse eingerichtet. Und zwar ersetzt das Script in der Datei prefs.js die Zeichenfolge %user% mit dem vollständigen Namen des Benutzers und %login% mit dem Login-Namen. Bei der Erstellung einer Mozilla-Profil-Vorlage für /etc/skel/ muss also immer %user% und %login% verwendet werden.
$ /usr/local/sbin/make_mozilla_config.pl $home/Mozilla "$login" "$name"
Mit passwd -S $login erfährt man, ob ein Benutzer gesperrt ist oder nicht und wann der das letzte Mal sein Passwort geändert hat:
$ passwd -S andreas andreas P 03/02/2003 0 99999 7 -1
Hier ist der Benutzer nicht gesperrt. Bei einem gesperrten Benutzerkonto würde statt dem "P" ein "L" stehen (locked). Mit quota -v $login erfährt man den benutzen Festplattenplatz des Benutzers. Mit groups $login sieht man, in welchen Gruppen der Benutzer Mitglied ist.
Wer sich lieber die Informationen ohne Hilfe bestimmter Programme besorgen möchte, kann auch die Benutzerdatenbank von Linux direkt anschauen. Sie besteht aus drei Textdateien: In /etc/passwd stehen die verschiedenen Benutzer mit UID, vollständiger Name, Homeverzeichnis, Login-Shell. Das Passwort steht in der Datei /etc/shadow. Die Gruppenmitgliedschaft ist in der Datei /etc/group festgehalten.