Code: Selecteer alles
UserDir disabled
<IfModule perl_module>
<Perl>
use strict;
use warnings;
my $min_uid = "1000";
my $max_uid = "65000";
my $min_gid = "1000";
my $max_gid = "65000";
my @userdir = ("disabled");
print "UserDir @userdir\n";
print "UserDir public_html\n";
open (PASSWD, "/etc/passwd") || die "Couldn't open passwd file";
while (<PASSWD>) {
my @passwd = split (":", $_, 7);
if ($max_uid >= $passwd[3] && $passwd[2] >= $min_uid && $max_gid >= $passwd[3] && $passwd[3] >= $min_gid) {
open (GROUP, "/etc/group") || die "Couldn't open group file";
while (<GROUP>) {
my @group = split (":", $_, 4);
if ($passwd[3] == $group[2]) {
print qq {
<Directory "/home/$passwd[0]/public_html">
AssignUserID $passwd[0] $group[0]
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
<Directory "/home/$passwd[0]/public_html/cgi-bin">
AssignUserID $passwd[0] $group[0]
AllowOverride None
Options +ExecCGI
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
AddHandler cgi-script .cgi
</Directory>
};
}
}
close GROUP
} else {
push (my @userdir, $passwd[0]);
}
}
print qq {
UserDir @userdir
};
close PASSWD
</Perl>
</IfModule>
Wat ik wens te doen is dynamische config van apache webserver, .. iemand die een stukje sample code kan voorzien van mod_perl met <directory> ?