Jörg Reinholz: Perl-Script zum anlegen Virtueller Hosts

Beitrag lesen

Die apache-error log sagt mir beim anlegen eines Hosts folgendes:

Die ersten beiden Warnungen musst Du schon selbst abfangen:

Use of uninitialized value $vh_name_actdeactdest

Tja. Diese hier "Insecure dependency in PROGRAMMNAME while running setuid" sagen mir, dass wie ich mir schon dachte, etwas mit den Rechten nicht stimmt.

Lösung:

Nimm nicht den root als Eigentümer, sondern lege einen weiteren Benutzer mit eingeschränkten Rechten an.
Gib diesem mit einer ACL Rechte (rwx) an /etc/apache2/sites-enabled und /etc/apache2/sites-available.

Gib diesem in /etc/sudoers GENAU das Recht /etc/init.d/apache2 reload als root auszuführen, besser /usr/bin/service apache2 reload. Im Zweifelsfall schreibe beides in eines Schell-Skript, teste darin, was da ist und lass es nur von root ausführen (und schreiben!) - mit einem Eintrag für den  angelegten Benutzer  in /etc/sudoers.

Im Skript dann qx('/usr/bin/sudo /etc/init.d/apache2 reload');
Übrigens wirst Du bald qx('/usr/bin/sudo /usr/bin/service apache2 reload') angeben müssen.

Ansonsten gilt: Was Du da treibst ist SEHR gefährlich. Du nimmst ein Perl-Skript, darin übernimmst Du - ohne Taint-Modus - Werte aus der Umgebung (hier auch noch Eingaben aus einem Webformular)  und willst - als root - damit im System herumpfuschen?

Da hat man inzwischen wohl schon einiges davon verhindert.

Jörg Reinholz