Mail.log im Verzeichnis /var/log mit PHP lesen.

  • Mail.log im Verzeichnis /var/log mit PHP lesen.


    Ich habe die Datei Mail.log mit chmod 777 freigegeben, kann diese aber doch nicht mit PHP Lesen.

    PHP
    <html><head><title>Datei lesen server</title> </head><body> <h1>Datei lesen server 06</h1> <?php $d = '/var/log/mail.log'; echo 'Datei: '.$d.'<br>'; $fp = fopen($d, 'r'); if (!$fp) { echo 'Konnte Datei '.$d.' nicht öffnen'; } while (false !== ($char = fgetc($fp))) { echo "$char\n"; } ?> <br></body></html>



    Was habe ich da übersehen.

    Mit freundlichem Gruß
    Chess45

    Einmal editiert, zuletzt von chess45 ()

  • open_basedir, etc ist alles gesetzt?


    Interessant ist Fehlermeldungen von php selbst, sprich was im log-file drin steht.

    "Security is like an onion - the more you dig in the more you want to cry"

  • Das hält aber nur solange, bis der entsprechende Dienst neustartet, das Logfile rotiert wird oder im Zweifelsfall nur eine neue Zeile reinschreibt. Wenn dann musst du eine entsprechende umask im Dienst setzen bzw. den Webserver und das entsprechende Log-File in eine spezielle Gruppe packen.

    "Security is like an onion - the more you dig in the more you want to cry"

  • open_basedir abschalten sollte reichen
    oder richtig konfigurieren
    dann klappt es


    ein :

    Code
    php ./log.php


    klappt jedenfalls
    also ist die php-Datei so in Ordnung


    gruss


    michi

    It's me, only me, pure michi 🦆

    RS 1000 SAS G8 | Cyber Quack

    VPS: 50 G7 |B Ostern 2017|200 | Karneval | piko

    WH: SmallEi | Adv17 Family |4000 SE|1000 SE

  • Anstatt den Besitzer des Logos zu ändern, würde ich lieber einen cron einrichten der die logs in einem Ordner zusammen sucht.


    Den Besitzer des logs zu ändern halte ich für keine gute Idee, genau so wenig den Zugriff vom Webserver auf das log Verzeichnis zu erlauben...


    Sprich: kopiere alle x Minuten das log y nach z. Z muss dabei ein Ordner sein der nicht im Dokument Root ist, aber für den Webserver erreichbar ist.

  • Vielen Dank für die Hinweise,


    da muss ich aber erst noch mal nachlesen, damit ich Eure Beiträge verstehe.


    perryflynn


    Deinen Beitrag entnehme ich, dass es keine gute Idee ist, die „Mail.log“ mit einem PHP-Script aus zu werten.

  • Das Auswerten ist kein Problem, allerdings würde ich dem Webserver nicht den Zugang zu /var/log gestatten, da könnte durch einen Fehler beim setzen der Rechte es schnell dazu kommen, dass auch auth.log und andere sensible Logs sichtbar sind.


    Deswegen würde ich mit einem Cron das Log irgendwo hin kopieren wo es unproblematisch ist, und diese von da aus mit dem Webserver auslesen. Zum Beispiel in einen Ordner den Du mit htaccess geschützt hast, sodass man diesen nicht direkt mit dem Browser öffnen kann. Ein "deny from all" in der .htaccess reicht da ja schon.


    Den Cron müsstest Du dann halt mit root ausführen, da ja nur dieser in der Standard Version auf die mail.log zugreifen kann.

  • Oh man!


    Sorry Leute, aber ganz einfach die Logs des Mail-Dämons zusätzlich in ein HTML-Verzeichnis schreiben lassen und von dort auslesen lassen.
    Theoretisch könnte man die mail.log auch nach bestimmten Inhalten filtern und dann per Cron-Job in eine Datei schreiben lassen.
    Man kann auch den Mail-Dämon anweisen nur bestimmte Meldungen in einer weiteren Datei zu loggen.
    Es ginge sogar den gefilterten Inhalt in eine andere Datei umleiten ähnlich cat /var/log/mail.log |grep SUCHMUSTER (Hinweis: reguläre Ausdrücke verwenden) >> /html/logs/mail.log und das per Cron-Job.


    Gibt so viele Lösungsansätze, aber niemals und wirklich niemals einem FTP-Server außerhalb seiner Verzeichnisse zugreifen lassen.
    Das ist der größte Schwachsinn überhaupt.


    Sorry das ich das so krass sagen muss, aber auf so etwas kommen nur Hobby-Admins.

    Schöne Grüße aus der Lüneburger Heide!
    Thomas

  • oder man könnte einfach logcheck installieren. ;)
    Hier ist vieles schon vorkunfiguriert und da sich eigene
    Filter ertsellen lassen, ist es individuell für jeden einstellbar.
    Man bekommt jede Stunde ne mail also eigentlich ne runde Sache.


    Aber das war ja nicht die Frage des TE......... :)


    gruss


    michi

    It's me, only me, pure michi 🦆

    RS 1000 SAS G8 | Cyber Quack

    VPS: 50 G7 |B Ostern 2017|200 | Karneval | piko

    WH: SmallEi | Adv17 Family |4000 SE|1000 SE

  • TPIT-Service
    Cool bleiben, der TE macht es doch schon wie ich vorgeschlagen habe.
    Also alles halb so wild. ;)


    //edit
    Ups verlesen.


    Ich schrieb auch zusätzlich, dass dieses Verzeichnis vor dem Zugriff aus dem Web geschützt werden muss, oder außerhalb des Document Roots liegen muss. Der Vorschlag mit dem spezielle Einträge rausfiltern ist auch eine gute Idee. Allerdings stehen in der mail.info keine Systemkritischen Informationen, weswegen ich das für nebensächlich halte.


    Viel wichtiger ist, dass der Webserver nicht in /var/log rumpfuschen kann, was durch den Kopiervorgang auch nicht der Fall ist.