verzweifelt bin ich und auch die vielerwaehnte Suche hier im Forum und bei Google habe ich schon bemueht. Auch die Dokumente auf http://httpd.apache.org halfen nicht weiter.
Um folgendes geht es. Ich habe einen Apache 1.3 unter Debian 3 laufen. Auf diesem Apache laufen diverse VHosts. Nun haette ich gerne, dass VHost-User auch mit Perl-Scripten keinen Unfug anstellen koennen. PHP habe ich per safe_mode entsprechend in die Schranken weisen koennen. Fuer Perl soll sich suEXEC ja gut eignen, nur habe ich entweder kein Verstaendnis fuer die Materie oder meine Installation ist nicht fuer eine solche Loesung geeignet. Irgendwie wird immer geschrieben, dass suEXEC mit Userberechtigungen arbeitet. Auch soll es auf irgend eine Art und Weise schauen, wo in welchen Verzeichnissen das Script unterwegs ist, aber so recht schlau werde ich aus den Beschreibungen nicht.
Folgende Konstellation: Meine VHosts liegen unter
/var/www/www.domain1.tld/
/var/www/www.domain2.tld/
und so weiter. Die cgi-bin Verzeichnisse liegen unter
/var/www/www.domain1.tld/cgi-bin/
/var/www/www.domain2.tld/cgi-bin/
und so weiter. Alle Files in /var/www/, egal zu welchem VHost sie gehoeren, gehoeren www-data:www-data. Der Apache laeuft auch unter www-data:www-data. Upload der Files mit den o.g. Berechtigungen funktioniert per virtuellen Usern ueber ProFTPd-MySQL.
Nun haette ich einfach gerne eine Moeglichkeit, Scripten aus dem Verzeichnis cgi-bin eines jeden VHosts zu verbieten, ausserhalb des VHost-Rootverzeichnisses irgendetwas zu tun. Das ist momentan problemlos moeglich, folgendes Script spuckt ohne zu murren die /etc/motd aus:
Code: Select all
#!/usr/bin/perl -T
$htmlfile = "/etc/motd";
print "Content-type: text/htmlnn";
open(FILE,"$htmlfile");
while(<FILE>) {
print $_;
}
exit;Code: Select all
<Directory /var/www/http/www.domain.tld/cgi-bin/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
<VirtualHost www.domain.tld>
ServerAdmin webmaster@domain.tld
DocumentRoot /var/www/http/www.domain.tld
ScriptAlias /cgi-bin/ /var/www/http/www.domain.tld/cgi-bin/
ServerName www.domain.tld
ServerAlias domain.tld
ErrorLog /var/log/apache/www.domain.tld/error.log
CustomLog /var/log/apache/www.domain.tld/access.log combined
Alias /custom-apache-error-messages/ /var/www/error/
php_admin_flag engine on
php_admin_value open_basedir /var/www/http/www.domain.tld/
php_admin_value upload_tmp_dir /var/www/http/www.domain.tld/tmp/
php_admin_value session.save_path /var/www/http/www.domain.tld/tmp/
php_admin_value include_path /var/www/http/www.domain.tld/
php_admin_flag safe_mode on
php_admin_value sendmail_from webmaster@domain.tld
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@domain.tld"
</VirtualHost>Kann mir jemand weiterhelfen?
Vielen Dank,
Roi