Zumindest die Gruppe und der User des Webservers. Bei apache in httpd.conf einstellbar, bei mir z.B. www-data.
Das ist leider nicht der Fall ist, da ich das "slinger" nutze. Bei dem gibt's nicht so viel einzustellen. Alles funktioniert über Umgebungsvariablensetzen.
Kenne ich zwar nicht, aber trotzdem könntest du mit ps aux schauen, mit welchen Rechten der Webserver läuft.
Würde mich wundern, wenn du deinem Webserverprozess so viele Rechte geben willst...
Das muss nur kurzfristig (bis max. 2 Sec) sein.
*löl*. Das hat damit wenig zu tun. Rechte abgeben ist einfach, sie wieder zurückzubekommen geht nicht.
Ich würde was in diese Richtung machen:
1.) Ein kleines (Perl/Bash) Script als Daemon starten, dass über Socket, TCP/IP@localhost, FIFO, Datei, ... über ein Ereignis in Kenntnis gesetzt wird und dann das bestimmte Verzeichnis auf 777 setzt oder umgekehrt.
Das Script muss halt privilegiert sein (z.B. root oder Eigentümer des Verzeichnisses) und soll so wenig wie möglich Daten vom User entgegennehmen (keine Variablen vom Web, ....)
2.) Ein Script wie oben schreiben und mit sudo starten, das wirklich nur ausgewählte Zeilen starten kann. /etc/sudoers lässt den Prozess des Webservers als root den Befehl fürs chmodden ausführen (und NUR diesen).
Alles andere erscheint mir persönlich zu unsicher. So wie (2) habe ich es gemacht, um über Webinterface den MLdonkey starten/stoppen zu können, MP3 Platte (un)mounten oder sogar komplett die Internetverbindung kapern zu können. Darunter sind Scripts die auf z.B. iptables aufbauen und nur *eine* Aktion ausführen und nur dieses eine Kommando darf mit sudo ausgeführt werden.
Das script ruft dann z.B. nur mehr auf:
system("sudo /home/root/scripts/internet_disable.sh");
oder
system("sudo /home/root/scripts/internet_enable.sh");
wobei natürlich zuerst trotzdem Passwortabfragen/IP Kontrolle etc stehen sollte.