Ergebnis 1 bis 22 von 22

Thema: putenv('TMPDIR')-Hack

  1. #1
    Contao-Hauptentwickler
    AG Core-Entwicklung
    Avatar von leo
    Registriert seit
    05.06.2009.
    Ort
    Wuppertal
    Beiträge
    816

    Beitrag putenv('TMPDIR')-Hack

    Zitat Zitat von acenes Beitrag anzeigen
    Die Berechtigungen für das /tmp Verzeichnis sind nicht vorhanden. Einige PHP ftp Funktionen benötigen dort Zugriff, viele Hoster wissen das aber nicht. Das Problem sollte sich in deinem Falle mit einem zusätzlichen Hack (analog zu HostEurope) eigentlich umgehen lassen
    Mich würde mal interessieren, welche Funktionen das sein sollen, die den Zugriff auf das /tmp-Verzeichnis benötigen. Ich habe mir eben die FTP-Klasse und auch die anderen Files-Bibliotheken des Core angesehen, und keine davon nutzt das /tmp-Verzeichnis des Servers. Es wird immer in system/tmp geschrieben. Wofür ist der putenv('TMPDIR')-Hack denn überhaupt notwendig?

  2. #2
    Contao-Fan Avatar von acenes
    Registriert seit
    13.06.2009.
    Beiträge
    407

    Standard

    Es handelt sich nicht um die TYPOlight Klassen, sondern um einzelne Funktionen der FTP Library von PHP selber (z.B. ftp_nlist). Ob auch andere PHP Libraries das System-TMP Verzeichnis verwenden weiss ich nicht, würde es aber nicht ausschliessen.

  3. #3
    Contao-Hauptentwickler
    AG Core-Entwicklung
    Avatar von leo
    Registriert seit
    05.06.2009.
    Ort
    Wuppertal
    Beiträge
    816

    Standard

    Danke für die Erläuterung. Ich werde es testen sobald ich meinen HE-Account habe und dann hier berichten.

  4. #4
    Contao-Hauptentwickler
    AG Core-Entwicklung
    Avatar von leo
    Registriert seit
    05.06.2009.
    Ort
    Wuppertal
    Beiträge
    816

    Standard

    Hm, vielleicht ein klassischer Vorführeffekt, jedenfalls habe ich TYPOlight gerade bei HE installiert und alles läuft problemlos auch ohne den putenv()-Hack. Was genau muss ich tun, um den Fehler auszulösen? Ich habe schon sämtliche Dateioperationen (Upload, Rename, Move, Delete etc.) erfolgreich getestet.

  5. #5
    Contao-Nutzer Avatar von matze
    Registriert seit
    19.06.2009.
    Ort
    Amberg
    Beiträge
    236

    Standard

    Normalerweise werden doch auch Dateien, die via HTTP auf den Server geladen werden erstmal im Tmp Verzeichnis gesichert. Das kann man aber auch umstellen.

    PHP Doku:
    Standardmäßig werden Dateien in dem vorgegebenen temporären Verzeichnis des Servers gespeichert, außer es wurde mittels upload_tmp_dir in der php.ini ein anderer Ort konfiguriert. Das Standardverzeichnis des Servers kann durch das Setzen der Umgebungsvariablen TMPDIR in der Umgebung, in der PHP ausgeführt wird, geändert werden. Das Setzen mittels der Funktion putenv() innerhalb eines Skriptes ist nicht möglich. Mittels dieser Umgebungsvariable kann auch sichergestellt werden, dass auch andere Operationen an hochgeladenen Dateien arbeiten können.

  6. #6
    Contao-Hauptentwickler
    AG Core-Entwicklung
    Avatar von leo
    Registriert seit
    05.06.2009.
    Ort
    Wuppertal
    Beiträge
    816

    Standard

    Kann es sein, dass HE dazu gelernt hat und das tmp-Verzeichnis jetzt richtig setzt? Der Screenshot stammt von der Übersichtsseite im KIS.
    Angehängte Grafiken Angehängte Grafiken

  7. #7
    Administratorin Avatar von lucina
    Registriert seit
    19.06.2009.
    Ort
    Kiel (DE)
    Beiträge
    7.335
    Partner-ID
    152
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von leo Beitrag anzeigen
    Kann es sein, dass HE dazu gelernt hat und das tmp-Verzeichnis jetzt richtig setzt?
    Lt. Changelogs hat es in diesem Punkt seit 2007 keine Änderungen durch HE gegeben. So gesehen habe ich den 'TMPDIR'-Hack da auch noch nie benötigt. Hatte das mal im vergangenen Jahr getestet und konnte keinen Effekt feststellen.

    Carolina.
    Geändert von lucina (12.07.2009 um 11:13 Uhr)

  8. #8
    Contao-Hauptentwickler
    AG Core-Entwicklung
    Avatar von leo
    Registriert seit
    05.06.2009.
    Ort
    Wuppertal
    Beiträge
    816

    Standard

    Ob dieser neuen Erkenntnisse schlage ich folgende Änderungen vor:

    1. Einführung einer system/initconfig.php

    Die Datei kann dann dazu verwendet werden, beliebigen Code am Anfang des Initialisierungsprozesses update-sicher einzufügen. Das kann beispielsweise der putenv()-Hack sein oder auch ein PHPIDS-Skript usw. Die Einführung ist aber erst mit dem nächsten Minor-Release möglich.

    2. Kleines "Convenience-Feature" in der libraries/FTP.php

    PHP-Code:
    protected function __construct($resConnection)
    {
        if (!
    is_resource($resConnection))
        {
            throw new 
    Exception('Class FTP requires a valid FTP connection resource');
        }

        
    $this->resConnection $resConnection;

        
    // Make folders writable
        
    if (!is_writable(TL_ROOT '/system/tmp'))
        {
            
    $this->chmod('system/tmp'0777);
        }
        if (!
    is_writable(TL_ROOT '/system/html'))
        {
            
    $this->chmod('system/html'0777);
        }
        if (!
    is_writable(TL_ROOT '/system/logs'))
        {
            
    $this->chmod('system/logs'0777);
        }

    Auf diese Weise werden die drei Ordner automatisch auf CHMOD 777 gesetzt. Diese Änderung könnten wir theoretisch in das nächste Maintenance-Release aufnehmen. Ein paar unabhängige Tests wären trotzdem nicht verkehrt.

  9. #9
    Contao-Nutzer Avatar von hjansen
    Registriert seit
    05.07.2009.
    Ort
    Krefeld
    Beiträge
    20

    Standard

    Kurze anmerkung zu der /tmp Geschichte und dem Kommentar das einige Hoster es nicht begreifen das man dort Zugriff braucht.
    Ich denke viel mehr das die Hoster mit Absicht kein Zugriff auf das globale /tmp Verzeichniss erlauben. Wenn alle Kunden auf einem Server dort ihre temporären Daten speichern würden, könnte es z.B. bei Sessiondaten zu Sicherheitsproblemen führen. Andere Kunden könnten die Sessiondaten auslesen und sich somit Zugriff auf eine Seite verschaffen.
    Von daher finde ich es absolut berechtigt wenn den Kunden der Zugriff auf das /tmp Verzeichniss verwehrt bleibt.

    Gruß Holger

  10. #10
    Contao-Hauptentwickler
    AG Core-Entwicklung
    Avatar von leo
    Registriert seit
    05.06.2009.
    Ort
    Wuppertal
    Beiträge
    816

    Standard

    Dagegen sagt ja niemand was, nur muss man diesen Schritt als Provider auch zu Ende denken und eine Alternative zum globalen /tmp-Verzeichnis anbieten, denn PHP benötigt definitiv Zugriff auf ein temporäres Verzeichnis. Scheinbar hat HE das jetzt ja auch gemacht, also ist das putenv()-Problem endlich gelöst.

  11. #11
    Contao-Fan Avatar von acenes
    Registriert seit
    13.06.2009.
    Beiträge
    407

    Standard

    Zitat Zitat von leo Beitrag anzeigen
    Scheinbar hat HE das jetzt ja auch gemacht, also ist das putenv()-Problem endlich gelöst.
    Halleluja.

  12. #12
    Contao-Nutzer
    Registriert seit
    13.07.2009.
    Beiträge
    6

    Standard s

    Ich scheine hier bei hosting-agency.de ein ähnliches Problem zu haben.
    (Providerwahl sollte laut Liste problemlos sein, soll/kann auch nicht diskutiert werden. :-( )

    Phänomen ist, dass das install-Tool zwar behauptet, localconfig.php sei schreibbar, aber schon die Eingabe eines neuen Passwortes nicht gelingt.
    Das Tool bleibt in dem Zustand und fragt immer wieder neu, aber nicht aufgrund eines Fehlers beim Passwort, wie z.B. zu wenige Buchstaben, oder Password missmatch.
    Diese Poblem habe ich schon woanders im Forum gesehen, aber (bisher) ungelöst.

    Das Tool smhcheck.php steigt auch mit unterschiedlichsten Fehlern aus.
    Ich habe hier auch verschiedensten Variationen für
    upload_tmp_dir
    und putenv('TMPDIR')
    etc.
    ausprobiert. Einige Fehler deuten tatsächlich darauf hin, dass die Routinen in/ auf unterschiedlichen tmp-Verzeichnissen arbeiten.

    So gibt nach Erstellung des tmpfiles eine Auflistung des ftp-Verzeichnisses
    $list = ftp_nlist($conn, $GLOBALS['TL_CONFIG']['ftpPath'] . 'system/tmp/');
    nicht den Inhalt von system/tmp aus!
    Faktisch wächst /tmp mit jedem Aufruf von smhcheck, während system/tmp immer wieder geleert wird.

    Andererseits scheint auch das smhcheck-Tool nicht frei von Fehlern/Problemen, so liefert ftp_rmdir(smhckeck.dir) anscheinend immer false, was evtl. einfach mit der Warning zu tun hat, die die Funktion immer ausgibt.

    phpinfo gibt aus, dass upload_tmp_dir nicht gesetzt ist
    aber /tmp ist auch open_basedir und zumindest smhcheck.php setzt dann als default /tmp an!?

    Das smhcheck-Tool liefert auch
    System temporary dir: /tmp
    unabhängig davon, wie TMP, TEMP, TMPDIR per putenv gesetzt werden.

    Der Pfad zum FTP-Root ist
    /home/<accountname>
    und darunter liegt das Web-root in
    /home/<accountname>/public_html
    Die Typolight-Installation liegt direkt in public_html.

    Das Problem hatte auch zumindest ein anderer User, aber dort wurde keine Antwort gefunden.
    Ich selber weiß jetzt auch nicht weiter und bin für jede Hilfe dankbar.

  13. #13
    Contao-Nutzer
    Registriert seit
    13.07.2009.
    Beiträge
    6

    Standard SMH-/install.php-Problem

    das sollte der Titel der vorigen Anfrage sein aber da habe ich wohl zu schnell auf Enter gedrückt?

  14. #14
    Contao-Nutzer
    Registriert seit
    13.07.2009.
    Beiträge
    6

    Trauriges Gesicht install.php save password geht nicht

    Als Ergänzung des vorigen Beitrages noch, dass das install-Tool in system/tmp wohl drei temporäre Dateien anlegt, mit Einträgen
    $GLOBALS['TL_CONFIG']['websitePath'] = '';
    und auch
    $GLOBALS['TL_CONFIG']['installPassword'] = '2b512af91007bcdf8d2b4addd7fecc8b7a10bdd4:9fb2bea3 886babb75af1cb6';
    aber dann geht es irgendwie nicht weiter?

  15. #15
    Contao-Fan Avatar von acenes
    Registriert seit
    13.06.2009.
    Beiträge
    407

    Standard

    Wieso denkst du dass du mit TMPDIR hantieren musst?

    Was gibt denn smhcheck genau aus wenn du das mal weglässt?

    Und wo können wir den Output des TL system check tools sehen?
    Geändert von acenes (13.07.2009 um 16:13 Uhr)

  16. #16
    Contao-Urgestein Avatar von jan.theofel
    Registriert seit
    23.06.2009.
    Ort
    Berlin
    Beiträge
    1.846

    Standard

    Hi,

    darf ich in diesem Zusammenhang auch noch auf das Ticket #754 verweisen. Auch dort geht es um das TMP-Verzeichnis im Zusammenhang mit Soap. Die oben geschilderte Rechteproblematik dürfte sich dann auch an dieser Stelle auswirken, was ein hinreichender Grund wäre, dieses TMP-Verzeichnis doch auch mal verlegen zu wollen. Vielleicht kann man da in diesem Zug auch gleich noch mit berücksichtigen bzw. prüfen.

    Jan
    Jan Theofel
    Barcamp-Moderator für Corporate-Barcamps und öffentliche Barcamps

  17. #17
    Contao-Nutzer
    Registriert seit
    13.07.2009.
    Beiträge
    6

    Standard SMH-Problem?

    Zitat Zitat von acenes Beitrag anzeigen
    Wieso denkst du dass du mit TMPDIR hantieren musst?

    Was gibt denn smhcheck genau aus wenn du das mal weglässt?

    Und wo können wir den Output des TL system check tools sehen?
    Wenn ich mehr zu dem Verfahren wüsste, wie der SMH funktioniert, könnte ich velileicht gezielter vorgehen.
    Beobachtung ist, dass das install-Tool in system/tmp oder /tmp anscheinend einen neuen localconfig.php-File vorbereitet, der aber "irgendwie" nicht an den richtigen Ort gelangt?

    Hier zunächst Links zu den Ausgaben:
    http://www.montessorischule-reumonts...ight-check.php
    http://www.montessorischule-reumonts...check-orig.php
    http://www.montessorischule-reumonts...de/phpinfo.php

    Ich bin mir recht sicher, dass die Ausgabe von smhcheck-orig.php abbricht. weil er in der if-Abfrage nach
    !in_array($GLOBALS['TL_CONFIG']['ftpPath'] . $tmpName, $list))
    mit $tmpName = 'system/tmp/' . md5(uniqid('', true));
    sucht, $list aber den Verzeichnisinhalt ohne den Pfad ausgibt system/tmp ausgibt!

    Das ist in
    http://www.montessorischule-reumonts...e/smhcheck.php
    mal geändert, sowie ein weiteres Problem mit ftp_rmdir. Dieses Komando löscht nachweislich das angelegte smhcheck.dir (sehe ich ja per ftp) liefert aber dennoch "FALSE".

    Die temporären Files werden im übrigen am Ende des Skriptes nicht gelöscht, was aber keine Fehlermeldung generiert. Nun weiß ich nicht, was genau der verwendete unlink-Befehl tut.

    Da upload_tmp_dir nicht gesetzt ist, wie der Ausgabe von phpinfo zu entnehmen ist, habe ich in initialize.php aktuell keinen putenv-Hack angewendet.

  18. #18
    Contao-Fan Avatar von acenes
    Registriert seit
    13.06.2009.
    Beiträge
    407

    Standard

    smhcheck gibt klar und deutlich aus dass der FTP TL-path (momentan public_html/) falsch eingestellt ist.

    Bring das in Ordnung und alles funktioniert wie es soll.

  19. #19
    Contao-Nutzer
    Registriert seit
    13.07.2009.
    Beiträge
    6

    Standard

    Zitat Zitat von acenes Beitrag anzeigen
    smhcheck gibt klar und deutlich aus dass der FTP TL-path (momentan public_html/) falsch eingestellt ist.

    Bring das in Ordnung und alles funktioniert wie es soll.
    Hier habe ich schon jede denkbare Einstellung probiert, sonst hätte ich mir nicht die ganze Arbeit gemacht.
    Die Anleitung besagt, dass ftpPath der Pfad zum Root-Verzeischnis von tl ist ausgehend vom ftp-Home.
    Im ftp-Home finden sich bei hosting-agency.de die Verzeichnisse
    cronjobs
    databases
    mail
    public_html

    In public_html befinden sich die tl-files, demnach gibt es aus meiner Sicht nur die Möglichkeiten
    public_html/
    /public_html/
    /public_html
    wobei letztere ausdrücklich als falsch angemerkt wird.
    Weiterhin sagt das Install-Tool, dass es localconfig.php findet und schreiben könne?

  20. #20
    Contao-Fan Avatar von acenes
    Registriert seit
    13.06.2009.
    Beiträge
    407

    Standard

    /home/u0094349827/public_html/

    Auch schon versucht?

  21. #21
    Contao-Nutzer
    Registriert seit
    13.07.2009.
    Beiträge
    6

    Standard

    Zitat Zitat von acenes Beitrag anzeigen
    /home/u0094349827/public_html/

    Auch schon versucht?
    Dann kommt der Abbruch noch früher, nämlich schon bei
    Check for correct directory ..
    weil sich dieser Pfad nicht im ftp-root findet.
    Kann man irgendwo nachlesen (ohne durch den Code zu gehen), wie typolight im SMH Dateien kopiert/editiert?

    Alle ftp-Befehle in smhcheck.php scheinen zu funktionieren und ich sehe die erzeugten Dateien und Verzeichnisse ja auch, wenn ich das Löschen unterbinde.
    Was also hält das install-Tool davon ab, seine Datei nach system/conf zu schreiben?
    Rätsel über Rätsel.

    Was ich "herausgefunden" habe ist, dass bei der Verwendung von ftp_put in /tmp Dateien erzeugt werden, die root gehören, was zu dem Output von typolight-check.php unter
    "File permissions" passen könnte? Andererseits ist das ja wohl genau der Part, der prüft, ob es ohne SMH geht?

  22. #22
    Contao-Fan Avatar von Stephan
    Registriert seit
    19.06.2009.
    Ort
    Berlin
    Beiträge
    349

    Standard

    Zitat Zitat von leo Beitrag anzeigen
    Scheinbar hat HE das jetzt ja auch gemacht, also ist das putenv()-Problem endlich gelöst.
    Juchu, ich kann’s bestätigen!
    Meine TYPOlight Installationen bei HE funktionieren nun ohne den putenv('TMPDIR')-Hack.

    Grüße
    Stephan

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Safe Mode Hack, Rechtevergabe
    Von karo im Forum Installation / Update
    Antworten: 5
    Letzter Beitrag: 10.03.2016, 15:01
  2. Safe Mode Hack FTP Error
    Von hipster im Forum Installation / Update
    Antworten: 12
    Letzter Beitrag: 26.11.2010, 09:08
  3. IE Hack für Navigation
    Von iku im Forum Layout / Templates / Holy Grail
    Antworten: 4
    Letzter Beitrag: 22.11.2010, 11:56
  4. Contao 2.9 RC1 - Safe Mode Hack (SMH)
    Von Nina im Forum Archiv
    Antworten: 10
    Letzter Beitrag: 25.06.2010, 12:27
  5. Safe Mode Hack anlegen
    Von Nina im Forum Installation / Update
    Antworten: 1
    Letzter Beitrag: 20.06.2009, 10:45

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •