#!/usr/local/bin/perl use CGI; $query = new CGI; umask 007; $http_home = "/home/mha/public_html/server"; $user_home = "$http_home/fax"; $home = "$http_home/fax/admin"; $passwdfile = "$http_home/conf/users"; $id = $query->param('id'); $name = $query->param('name'); $room = $query->param('room'); $ophone = $query->param('ophone'); $pphone = $query->param('pphone'); $passwd1 = $query->param('passwd1'); $passwd2 = $query->param('passwd2'); $system1 = $query->param('system1'); $fax1 = $query->param('fax1'); $system2 = $query->param('system2'); $fax2 = $query->param('fax2'); $lock = $query->param('lock'); $change_id = $query->param('change_id'); $change_pw1 = $query->param('change_pw1'); $change_pw2 = $query->param('change_pw2'); @users = $query->param('users'); print $query->header; print < User Administration
         Nutzer: FaxAdmin | NutzerAdmin | Persönl. Einstellungen | FaxHome | Inbox

Nutzerverwaltung (Neu | Paßwort | Löschen)


Was noch fehlt:
  • Aufnahme/Löschen in die userdb für mail-aliasing (Ansprechbarkeit unter Vorname.Name\@...)
  • Aufnahme/Löschen in die Mailingliste all\@chemnitz....

EOF ; if ($query->param('action') eq " Hinzufügen ") { print "
    \n"; if (`cat /etc/passwd|egrep "\^"$id:` ne "") { $exist=1; } else { $exist=0; } if (! ($id =~ /^[a-zA-Z0-9]*$/)) { print "
  • Fehler: Ungültige ID (nur Buchstaben und Zahlen verwenden!)\n"; } elsif (($id eq "") || ($name eq "") || ($passwd1 eq "") || ($passwd2 eq "")) { print "
  • Fehler: Alle drei Angaben (ID,Name,Paßwort(2mal)) sind zum Hinzufügen erforderlich!\n"; } elsif ($passwd1 ne $passwd2) { print "
  • Fehler: Die Paßwörter stimmen nicht überein!\n"; } else { if ($system1 eq "on") { if ($exist==1) { print "
  • Fehler: User-ID $id existiert bereits!\n"; } else { print "
  • ",`$http_home/bin/adduser '$id' '$passwd1' '$name' '$room' '$ophone' '$pphone'`; $exist=1; print "Nutzer $name ($id) wurde auf chws01 eingerichtet."; } } if ($fax1 eq "on") { if ($exist==0) { print "
  • Fehler: User-ID $id existiert nicht auf chws01, das ist aber Vorausetzung für Eintragung als Fax-Nutzer!\n"; } else { if ( -e "$user_home/$id") { print "
  • Die ID $id existiert bereits als Fax-User.

    \n"; } else { system "mkdir -m 770 $user_home/$id"; system "echo \"require user $id\" >$user_home/$id/.htaccess"; system "echo \"$name:$id\" >>$home/users"; system "$http_home/bin/www-passwd $passwdfile $id '$passwd' >/dev/null"; system "echo \"NAME:$name\" >$user_home/$id/setup"; system "echo \"PHONE:+49 371 4340-\" >>$user_home/$id/setup"; system "echo \"FAX:+49 371 4340-103\" >>$user_home/$id/setup"; system "echo \"EMAIL:$id\@chemnitz.debis-sfi.de\" >>$user_home/$id/setup"; system "echo \"IMG-SIZE:2.6\" >>$user_home/$id/setup"; system "echo \"PRINTER-NAME:\" >>$user_home/$id/setup"; system "echo \"PRINTER-SERVICE:\" >>$user_home/$id/setup"; system "echo \"PRINTER-PASSWORD:\" >>$user_home/$id/setup"; system "echo \"PRINTER-TYPE:LaserJet 3\" >>$user_home/$id/setup"; #create new user db for http daemon system "cat $home/users | sort >$home/users.tmp"; system "mv $home/users.tmp $home/users"; $tmp_users = `cat $http_home/conf/users | awk -F: 'BEGIN{ORS=\" \"} {print \$1}'`; system "cat $http_home/conf/groups | sed -e '/^faxuser:/d' >$http_home/conf/groups.tmp"; system "echo \"faxuser: $tmp_users\" >>$http_home/conf/groups.tmp"; system "mv $http_home/conf/groups.tmp $http_home/conf/groups"; print "

  • Nutzer $name ($id) wurde in die FaxUser-Datenbank aufgenommen.\n"; } } } } print "
\n"; print "
\n
\nChemnitz FaxServer; ",`date`,"
\n"; print "
\n"; print $query->end_html; exit(0) } elsif ($query->param('action') eq " Ändern ") { print "\n"; print "
\n
\nChemnitz FaxServer; ",`date`,"
\n"; print "\n"; print $query->end_html; exit(0) } elsif ($query->param('action') eq " Löschen ") { print "\n"; print "
\n
\nChemnitz FaxServer; ",`date`,"
\n"; print "\n"; print $query->end_html; exit(0) } @users=`cat $home/users | awk -F: '{print \$1}' | awk -F' ' 'BEGIN{OFS=\", \"}{print \$2,\$1}' | sort`; print <

Nutzer Hinzufügen:

Nutzer-ID: Name (vollst.): *Zimmer: (optional; nicht für Fax) *Büro-Tel.: (optional; nicht für Fax) *Priv.-Tel.: (optional; nicht für Fax) Paßwort: (1.mal) (2.mal zum Vergleich) Hinzufügen zu: chws01 (login,mail) FaxServer

Nutzer-Paßwort Ändern:

User-ID: Paßwort: (1.mal) (2.mal zum Vergleich)

Nutzer Löschen:

(Hier erscheinen nur Nutzer, die im FaxServer registriert sind) chws01 (login,mail)     FaxServer
Achtung: bei Löschen auf chws01 wird das Home-Verzeichnis gelöscht! Darum ist vielleicht erst einmal folgendes besser:
Lock User (ein chws01-Login ist ab sofort unmöglich, Fax ist davon nicht berührt)
       

EOF ; print "
\nChemnitz FaxServer; ",`date`,"
\n"; print "\n\n"; print $query->end_html;