Das Programm dient dazu, die Dateien /etc/apache/passwd und /etc/apache/group zu generieren. Diese Dateien dienen zur Authentifizierung auf dem Webserver und werden u.a. dazu gebraucht, sein eigenes Passwort zu ändern.
Dateiname: /usr/local/sbin/generate_apache_auth.
#!/usr/bin/perl -w # # /usr/local/sbin/generate_apache_auth # # WARNING: will run as root!!! # Copyright (C) 1999 Thomas Bleher <thomas@gm.rt.schule-bw.de> # under the GNU GPL # umask(0027); %valid_users = map {$_ => 1} split / /, (getgrnam('users'))[3]; open(DATEI, '/etc/shadow'); @passwords = <DATEI>; close DATEI; open DATEI, '>/etc/apache/passwd'; foreach (@passwords) { @user = split(/:/, $_); if (defined($valid_users{$user[0]})) { ## nur normale user (Sicherheit) print DATEI "$user[0]:$user[1]\n"; } } close DATEI; open DATEI, '/etc/group'; @groups = <DATEI>; close DATEI; open DATEI, '>/etc/apache/group'; foreach (@groups) { @user = split(/:/, $_); $user[3] =~ s/,/ /g; $user[3] =~ s/root//g; print DATEI "$user[0]: $user[3]"; } close DATEI; $uid = 0; # root $gid = 33; # www-data chown $uid, $gid, '/etc/apache/passwd', '/etc/apache/group';