Zugriff auf Verzeichnis außerhalb von /web

Dani Düsentrieb

Benutzer
Mitglied seit
03. Jan 2008
Beiträge
216
Punkte für Reaktionen
3
Punkte
18
Hallo Zusammen,

ich hab seit 14 Tage eine neue DS 720+ und bin gerade am Einrichten der Webstation. Auf der alten Station konnte ich immer auf ein Verzeichnis außerhalb von /web zugreifen. Das Verzeichnis hatte ich bis PHP 7.3 immer in der open_basedir Einstellung mit angegeben und damit lief der Zugriff. Auf der neuen Station habe ich das genau so eingestellt, aber PHP kann auf den Verzeichnis nicht zugreifen. Das Verzeichnis wird auch in der Ausgabe von phpinfo() unter open_basedir mit angezeigt. Ich habe schon diverse Einstellungen mit Zugriffsrechten versucht leider ohne Erfolg. Installiert habe ich den Apache 2.4 und PHP 7.0 (PhotoStation) und 7.4. Was muss ich tun, damit ich wieder Zugriff auf ein Verzeichnis außerhalb von /web erhalte?

Was ich noch vergessen habe ist folgende Fehlermeldung die beim Ausführen des Scripts angezeigt wird: Warning: is_dir(): open_basedir restriction in effect. File(/volume1/freigabe/test) is not within the allowed path(s): (/tmp:/var/services/tmp:/var/services/web:/var/services/homes:/volume1/freigabe/test)

Gruß Daniel
 
Zuletzt bearbeitet:

Uwe Wagner

Benutzer
Mitglied seit
09. Jun 2022
Beiträge
7
Punkte für Reaktionen
1
Punkte
3
Hallo Dani, ich habe dasselbe Problem mit DS215j, DSM 7.0.1, Apache 2.4, PHP7.4.
Ich kann mir aus der index.html im /web/ Verzeichnis aus die Dateien im Verzeichnis /video/ anzeigen lassen, aber ein Video wie /video/beispiel.mp4 kann ich nicht mit dem Video-Tag in /web/index.html abspielen.
Es kommt die Fehlermeldung: "Kein Video mit unterstütztem Format und Mime-Typ gefunden".
Bei den Zugriffsberechtigen hat die http-Gruppe Lese-/Schreibzugriff auf /video/
open-basedir: "/tmp:/var/services/tmp:/var/services/web:/var/services/homes:/var/services/video"
mit /volume1/video" hab ich es auch schon probiert, ohne Erfolg :(
Liegt das Video im /web/ Verzeichnis, dann läuft es einwandfrei mit der index.html und dem Video-Tag.
Vielleicht hast Du ja inzwischen eine Lösung gefunden, für einen Tipp wäre ich dankbar.
 

Dani Düsentrieb

Benutzer
Mitglied seit
03. Jan 2008
Beiträge
216
Punkte für Reaktionen
3
Punkte
18
Es liegt an den Zugriffrechten des jeweiligen Verzeichnisses auf das du zugreifen willst. Da der Zugriff per http erfolgt muss der Nutzer http zumindest Lesezugriff haben, dann sollte es funktionierten.
 

Uwe Wagner

Benutzer
Mitglied seit
09. Jun 2022
Beiträge
7
Punkte für Reaktionen
1
Punkte
3
Danke für deine schnelle Antwort, aber wie bereits geschrieben, habe ich der http-Gruppe Lese-/Schreibzugriff auf /video/ eingerichtet, einen einzelnen Benutzer http gibt es nicht, bei mir nur admin, guest und Uwe ... ich habe jetzt Zugriff auf das /video/-Verzeichnis für alle lokalen Benutzer und alle Gruppen eingerichtet, aber leider geht es immer noch nicht :(

Screenshot.jpg
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Du könntest auch einmal die File Station öffnen und dir die Berechtigungen von /web über das Kontextmenü anzeigen lassen. Darüber lassen sich die zusätzlichen Berechtigungen (ACLs) einsehen. Evtl. stimmt da etwas nicht?
 

Dani Düsentrieb

Benutzer
Mitglied seit
03. Jan 2008
Beiträge
216
Punkte für Reaktionen
3
Punkte
18
Also ich hab das nur auf ein Verzeichnis in nem Gemeinsamen Ordner gemacht. Da hab ich die Berechtigung über die Filestation gesetzt und dort den Haken Für alle untergeordneten Dateien und Verzeichnisse gesetzt.
 

Uwe Wagner

Benutzer
Mitglied seit
09. Jun 2022
Beiträge
7
Punkte für Reaktionen
1
Punkte
3
Hallo luddi, danke für den Tipp. Habe ich da nicht die Anzeige derBerechtigungen für /web, welcher Benutzer dort agieren/zugreifen kann? Wenn ich das mp4-Video im /web liegen habe, funktioniert das ja einwandfrei im Browser mit HTML. /web ist doch kein Benutzer, der auf andere Verzeichnisse zugreift, oder habe ich da einen Denkfehler?
Kann es auch daran liegen, daß ich eine 1TB durch 2x 4TB HDDs mit RAID 1 ersetzt und neu installiert habe?
 

Dani Düsentrieb

Benutzer
Mitglied seit
03. Jan 2008
Beiträge
216
Punkte für Reaktionen
3
Punkte
18
Weißt du was ich gerade sehe, du hast ja DSM 7 drauf und uch noch die letzte 6er Version. Kann durchaus sein das es da auch Unterschiede gibt. Ich hab aber auch ne DSM 7 Umgebung am laufen da würde ich das mal testen mit den Einstellungen und dem PHP Script. Mal sehen was passiert. Ich melde mich wieder.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Du könntest auch einmal die File Station öffnen und dir die Berechtigungen von /web über das Kontextmenü anzeigen lassen.

/web ist doch kein Benutzer, der auf andere Verzeichnisse zugreift, oder habe ich da einen Denkfehler?

Ich hatte damit auch nicht gemeint dass /web ein Benutzer ist. Sondern das Verzeichnis web. Ich vermute es liegt an meinem nicht präzisen Satz.
Es handelt sich nicht um die Berechtigungen von web, sondern welcher User bzw. Gruppe hat für web Berechtigungen.

Zusätzlicher Hinweis:
Es gibt dennoch einen System User "http" nicht nur die namengleiche Gruppe. Dieser wird aber in der DSM Oberfläche nicht gezeigt, sondern nur die Gruppe.

Über die Konsole kannst du also auch den owner "http" für Verzeichnisse und Dateien setzen.
 

Uwe Wagner

Benutzer
Mitglied seit
09. Jun 2022
Beiträge
7
Punkte für Reaktionen
1
Punkte
3
So, ich hab ne Lösung gefunden, ich hab über die Konsole (Putty) einfach symbolische Links gesetzt:
mit dem Befehl "ln -s /volume1/video/ video" im Verzeichnis /volume1/web
mit volume1/photo und volume1/music entsprechend,
es funktioniert!!
Danke nochmal für Eure Tipps und Hilfe (y) :)
 
  • Like
Reaktionen: Dani Düsentrieb

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.839
Punkte für Reaktionen
3.774
Punkte
468
Sorry, wenn es klugscheißerisch klingt, aber ich habe mir schon die ganze Zeit überlegt, ob ein Web-Server aus seinem DocumentRoot ("/volume1/web"="/") überhaupt herauskommt, wenn man nicht mit Tricks wie Symlinks arbeitet.
 

Uwe Wagner

Benutzer
Mitglied seit
09. Jun 2022
Beiträge
7
Punkte für Reaktionen
1
Punkte
3
@Benares
Man sollte generell mit dem open_basedir aus dem DocumentRoot rauskommen, wenn das Zielverzeichnis als zusätzliches Verzeichnis im open_basedir in der php.ini angegeben ist, das hat bei mir auch mit den opendir- und readdir-Funktionen geklappt, nur ein Video wie /video/beispiel.mp4 kann ich so nicht mit dem Video-Tag in /web/index.html abspielen.

--
index.php in /volume1/web/:
-----------------------------
<?php
$handle=opendir ('/volume1/video');
echo "Verzeichnis-Handle: $handle<br>";
echo "Dateien:<br>";
while (false !== ($file = readdir ($handle))) {
echo "$file<br>";
}
closedir($handle);
?>
------------------------------

Ausgabe:
---------
Verzeichnis-Handle: Resource id #3
Dateien:
#recycle
..
.
beispiel.mp4
---------
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat