• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] cgi-Script Zugriff auf anderes Verzeichnis

Moin,

ich setze das mal hier rein, weil ich nicht weiß, wo es besser passen würde. Vielleicht kennt sich hier ja jemand mit cgi-Scripts aus.

Ein cgi-Script soll Zugriff erhalten auf ein bestimmtes Verzeichnis (und dessen Unterverzeichnisse). Dieses Verzeichnis und alle Dateien darin haben eine bestimmte Gruppenzugehörigkeit. Nur User mit diesen Gruppen können in das Verzeichnis und die Dateien lesen/schreiben.

Sagen wir einfach mal, es sind die Gruppen "foo" und "bla". User mit der Gruppe "foo" können nur diese Dateien lesen, die "bla"-Gruppe ist nochmal was spezielleres.

Natürlich ist dieses Verzeichnis nicht unterhalb von cgi-bin. Ich hab mal einen Symlink angelegt, aber das hat auch nichts gebracht. Man bekommt immer Access denied, weil der Apache das Script natürlich nicht mit diesen Gruppenzugehörigkeiten startet.

Das Script müsste jetzt also die Gruppenzugehörigkeiten foo und bla kriegen. Soweit ich mich da eingelesen habe, kann man sowas über die .htaccess regeln, indem man z. B. einen berechtigten Benutzer einrichtet und ein Passwort abfragen lässt, aber mir ist nicht klar, wie das Script dann diese Gruppenzugehörigkeiten kriegen soll. Kann es sein, dass das Script dann im $home eines Benutzers mit diesen Gruppen stehen muss und von dort aus gestartet wird?

Oder ist es viel einfacher?

Danke für alle Hinweise!

Rolf
 

nbkr

Guru
Rolf-Werner schrieb:
Das Script müsste jetzt also die Gruppenzugehörigkeiten foo und bla kriegen. Soweit ich mich da eingelesen habe, kann man sowas über die .htaccess regeln, indem man z. B. einen berechtigten Benutzer einrichtet und ein Passwort abfragen lässt,

Nö, das klappt so nicht. Die Authentifzierung via .htaccess hat nichts mit den Benutzern des Betriebssystems zu tun. Der

aber mir ist nicht klar, wie das Script dann diese Gruppenzugehörigkeiten kriegen soll. Kann es sein, dass das Script dann im $home eines Benutzers mit diesen Gruppen stehen muss und von dort aus gestartet wird?

Der Apache startet im Prinzip das Script. Entsprechend wird es mit dem User und der Gruppe des Apache gestartet. Daran lässt sich erstmal nichts ändern. Du kannst den Apacheuser ändern - dann kann der Apache aber nicht mehr auf die alten Sachen zugreifen, oder Du lässt das Script per SETUID laufen. Ist natürlich mit einem Sicherheitsproblem verbunden wenn das Script einen Bug hat der sich ausnutzen lassen, dann ständen dem Angreifer alle Daten offen auf die foo zugreifen kann.
 
OP
R

Rolf-Werner

Hacker
Arrgh - jetzt ist meine Antwort futsch, Timeout, Neuanmeldung...

Ok, in Kürze nochmal: Ich brauche das erstmal nur lokal hier, daher ist das nicht so schlimm. Erstmal testen, ob meine Ideen so gehen...

SETUID hab ich nicht dran gedacht. Ich hab mal ein bisschen geforscht und hab diesen wirklich irren Hack gefunden http://www.xav.com/scripts/help/setuid.html. Da gibt's noch einen Fehler im Programm, execl braucht noch einen Null-Pointer, also so http://home.fhtw-berlin.de/~junghans/cref/EXAMPLES/exec_one.c.

Und siehe da, es geht!

Danke für den Denkanstoß

Rolf
 
Oben