Entpacken von passwortgeschützten ZIP-Archiven mit PHP

  • 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.

kwiede

Benutzer
Registriert
26. März 2014
Beiträge
2
Reaktionspunkte
0
Punkte
0
Hallo,

ich versuche leider vergeblich eine passwortgeschützte ZIP-Datei über den Webserver mit PHP zu entpacken. Laut diverser Anleitungen im Internet soll das nur über den externen UNZIP-Befehl gehen. Dieser soll über den folgenden PHP-Befehl aufgerufen werden:

system("unzip -P passwort 'datei.zip' -d 'tmp/'");

Um zu testen ob der Systembefehl unzip auf der Diskstation funktioniert, habe ich den Befehl über eine SSH-Konsole aufgerufen:

unzip -P passwort 'Datei.zip' -d 'tmp/'

Die enthaltenen Dateien des Archivs wurden darauf hin ordnungsgemäß entpackt.

Was mache ich also falsch? Ich habe bereits erfolglos versucht die Pfade in allen möglichen Varianten anzugeben.
Kann es vielleicht sein, das der Web-Benutzer keine Rechte auf Systembefehle hat? Falls ja, wo kann dies geändert werden?
 
Hallo und willkommen im Forum,

Hier mal ein Link. Ansonsten solltest Du dich auch mal mit safe_mode und open_basedir beschäftigen.

Gruß Frank
 
OK, ich habe mich nun mit safe_mode und open_basedir beschäftigt, komme aber dennoch nicht zum Ziel.
Der Safemode ist in der aktuellen PHP-Version laut Versionsangabe nicht mehr vorhanden ( PHP 5.5.8). In den Systemeinstellungen der Diskstation sind standardmäßige Einträge für open_basedir vorhanden, es können auch eigene Eintragungen hinzugefügt werden.

Mittlerweile habe ich anhand der Fehlermeldungen herausgefunden, das der Zugriff auf das auszuführende Kommando "unzip" verweigert wird (Fehlercode:127 nach Aufruf des PHP-Befehls).

Unklar ist mir, ob ich den Zugriff über "open_basedir" ermöglichen kann, und wenn ja, wie?

In welchem Verzeichnis liegt denn "unzip" auf der Diskstation und wie muss der Eintrag für open_basedir dann aussehen?
Oder ist eine Bearbeitung der php.ini notwendig?
 
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