[Eisfair] php (wwwrun) Verzeichniszugriff

Rolf Bensch azubi at bensch-net.de
Di Nov 3 15:16:42 CET 2020


Hallo Marcus,

Am 03.11.20 um 14:28 schrieb Marcus Röckrath:
> Hallo Rolf,
> 
> Rolf Bensch wrote:
> 
>> ich versuche mit Apache->PHP ein Verzeichnis auszulesen und enthaltene
>> Dateien zu öffnen. Das Verzeichnis und enthaltene Dateien gehören
>> "markus:users" mit Rechten 770. Ich möchte Gästen keinen Zugriff darauf
>> geben, so habe ich "wwwrun" der Gruppe "users" zugewiesen:
>>
>>      # groups wwwrun
>>      wwwrun : nogroup users redis
>>
>> In der Shell als "wwwrun" angemeldet sehe ich auch die Dateien im
>> Verzeichnis:
>>
>>      wwwrun at ibs-server (Scanner) > ls -dl ./03*
>>      drwxrwx--- 2 markus users 4096 Nov  2 08:32 ./03-MK
>>
>>      wwwrun at ibs-server (Scanner) > cd 03-MK/
>>
>>      wwwrun at ibs-server (03-MK) > ls -l
>>      total 116
>>      -rwxrwx--- 1 markus users 26596 Oct 27 12:38 scan1978.pdf
>>      -rwxrwx--- 1 markus users 58802 Oct 27 13:03 scan1979.pdf
>>
>> In PHP ein einfaches "scandir()" oder "glob()" findet keine Dateien.
>> Wohl aber, wenn das Verzeichnis "wwwrun" gehört".
>>
>> Ändere ich den Besitzer des Verzeichnis auf wwwrun:users werden Dateien
>> gefunden aber sind nicht zu öffnen. Hier hilft einzig ein "chown -R
>> wwwrun:users 03-MK". Damit gehen dann auch die Dateien auf.
>>
>> Weshalb ist das so? M.E. sollten alle Mitglieder der Gruppe users die
>> Dateien finden und öffnen können.
> 
> Das Skript läuft doch innerhalb der Zugriffserlaubnisse für den Apachen,
> wodurch sich hier andere Einschränkungen ergeben als auch Dateisystemebene.

Das verstehe ich nicht. Wenn das Script ein shell_exec("whoami") 
ausführt, wird "wwwrun" zurück geliefert. "wwwrun" ist Mitglied der 
Gruppe "users". Wieso liefert dann ein shell_exec("ls [Pfad]) keinen 
Inhalt? Wo greifen hier die Apache-Einschränkungen?

> Ihr würde den Zugriff hier eher durch .htaccess-Dateien in diesem
> Verzeichnis regeln, denn die berechtigten User müssen sich ja zum Aufruf
> der Seite gegenüber dem Apachen sowieso authorisieren.

Eigentlich nicht. Der Apache ist nur lokal erreichbar,  User, Scanner 
etc. laden pdfs im mehreren Verzeichnissen ab und die Website soll 
einfach nur die PDFs zu einem Dokument verbinden. Das funktioniert 
soweit - bis auf die Verzeichnisrechte :-((

Grüß Rolf


Mehr Informationen über die Mailingliste Eisfair