Php-dateizugriff

Hallo,
ich habe da eine kleine php-linux frage. Ich hatte auf einem alten Server folgende Konfiguration: dateien, die per PHP-Script zum Download angeboten wurden, standen auf 700 also nur rootzugriff, so dass man nicht direkt auf sie zugreifen konnte, sondern nur durch das php-script…
Jetzt habe ich einen neuen server, doch wenn ich mit php auf 700-dateien zugreifen will, geht das natürlich nicht.
Woran liegt das?
Wenn jemand das problem kennt, bitte möglichst genau erklären, weil so tief reichen meine Linux-kenntnisse nicht…
vielen dank
paul

Scheint so als ob deinem Webserver die Berechtigung fehlt und somit auch PHP, prüfe mal mit welchem User der Webserver gestartet wird, glaube kaum der er durch root gestartet wird, bei Debian werden Dienste beispielsweise durch „daemon“ gestartet und sprich die Dateinen müssten dann in der Gruppe „daemon“ sein! Kommt immer etwas auf die Linux Distribution und deren Konfiguration an!

Lg
Richie

ich habe centos.
es geht darum, dass php auf 700 dateien zugriff bekommen soll und sonst keine anderen dateien. Ich kann ja die php-dateien schlecht als einen Benutzer deklarieren…

Hallo Paul,

Ich hatte auf einem
alten Server folgende Konfiguration: dateien, die per
PHP-Script zum Download angeboten wurden, standen auf 700 also
nur rootzugriff,

Das ist hoffentlich ein Mißverständnis. 700 heisst ja nicht „nur rootzugriff“, sondern daß die betreffende Datei nur vom jeweiligen Besitzer gelesen, geschrieben und ausgeführt werden kann. Wenn der Besitzer z.B. foo ist, dann kann nur foo diese Sachen machen und User bar gar nichts. Und daß Du da Dateien anbietest, die root gehören, will ich ja nicht hoffen.

so dass man nicht direkt auf sie zugreifen
konnte, sondern nur durch das php-script…

Also sollte das php-Script unter der gleichen User-ID (oder einfacher gesagt, unter dem gleichen User) laufen, zumal ich annehme, daß bei deinem Server der safe_mode aktiviert ist.

Viele Grüße
Marvin

nein safe-mode ist aus.
der script gehört dem selben benutzer wie die dateien und er kann trotzdem nicht drauf zugreifen… 700 = besitzer, war auch so gemeint eigentlich ^^

Hallo,
ich habe da eine kleine php-linux frage. Ich hatte auf einem
alten Server folgende Konfiguration: dateien, die per
PHP-Script zum Download angeboten wurden, standen auf 700 also
nur rootzugriff, so dass man nicht direkt auf sie zugreifen
konnte, sondern nur durch das php-script…

seien das script foo.php und die dateien bar.jpg

waere interessant zu wissen, wie der webserver - welcher? - konfigueriert war:
warum sollte der webserver mit dem script andere rechte haben, als wenn er direkt auf bar.jpg zugreift? beim apache gibt es m.w. die direktive user und die direktive group und foo.php laeuft mit genau diesem user, und bar.jpg wird auch genau mit diesem user aufgerufen - ergo kein unterschied, ob das script aufgerufen oder die datei aufgerufen wird?

Jetzt habe ich einen neuen server, doch wenn ich mit php auf
700-dateien zugreifen will, geht das natürlich nicht.
Woran liegt das?
Wenn jemand das problem kennt, bitte möglichst genau erklären,
weil so tief reichen meine Linux-kenntnisse nicht…
vielen dank
paul

Hallo Paul,

der script gehört dem selben benutzer wie die dateien und er
kann trotzdem nicht drauf zugreifen…

Tja, da müsste man schon etwas genauer hinsehen und mehr Details wissen, weil ja auch der Apache (welche Version benutzt Du?) ganz verschieden konfiguriert werden kann. Auch das PHP-Script wäre natürlich interessant.
Aber fangen wir einfach beim naheliegendsten an, welche Fehlermeldungen produziert denn dein Server? Keine Ahnung, was Du eingestellt hast, wo die Fehlermeldungen hinkommen sollen, ob nach /var/log/apache2/error.log oder woanders hin, steht ja in deiner Konfigurationsdatei hinter der Direktive ErrorLog.
Poste einfach mal die letzten einschlägigen Meldungen.

Viele Grüße
Marvin

ja ich habs schon anders gelöst, indem ich die dateien ausserhalb von Webordner geschoben habe. Vielen Dank trotzdem.
Zum alten Server: ich glaube dort war samba schuld, dass es ging.

ja ich habs schon anders gelöst, indem ich die dateien ausserhalb von Webordner geschoben habe. Vielen Dank trotzdem.
Zum alten Server: ich glaube dort war samba schuld, dass es ging.