Zugriff auf Verzeichnis außerhalb von /web

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Dani Düsentrieb

Benutzer
Registriert
03. Jan. 2008
Beiträge
216
Reaktionspunkte
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:
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.
 
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.
 
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
 
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?
 
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.
 
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?
 
ich geh erstmal einkaufen, danke schonmal für Eure Unterstützung
 
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.
 
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.
 
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
Viele Wege führen nach Rom, aber ich probiere das Trotzdem auch nochmal mit den Rechten und vermelde meine Erkenntnisse.
 
  • Like
Reaktionen: Uwe Wagner
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.
 
@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
---------
 
Status
Für weitere Antworten geschlossen.
 

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