PHP Script zum Checken der Verzeichnisrechte

Thema wurde von markus_wick, 4. Juli 2019 erstellt.

  1. markus_wick
    markus_wick Erfahrener Benutzer
    Registriert seit:
    10. Oktober 2018
    Beiträge:
    982
    Danke erhalten:
    222
    Danke vergeben:
    156
    Ich wollte nur mal auf einen anderen Thread verweisen:
    https://www.gambio.de/forum/threads...tshop-erstellen-usw.14424/page-35#post-336265

    Im Rahmen des Threads habe ich ein kleines PHP Script erstellt, das die Verzeichnisrechte nach einer Neuinstallation/Testshopinstallation/Wiederherstellung etc. checkt und anzeigt. Sonst nix. Nicht elegant und schön, aber nützlich, finde ich. Feel free to use. Wenn daran was nicht passt: Schreiben. Nutzung auf eigene Gefahr.

    ----------------------------------------------

    Ich habe jetzt mal ein Verzeichnis "test" auf der Shopebene erstellt, dieses Verzeichnis hat die 777 Rechte bekommen. Da rein folgendes script:
    realrecyclers.com/ablage/permissionanzeige.php.zip
    (entpackt natürlich).
    Aufruf unter http://www.domain.de/test/permissionanzeige.php

    Ich habe mich streng an die Auflistung im Installationshandbuch gehalten. Deswegen auch das images Verzeichnis mal normal mal rekursiv, so wie es halt im HB steht.

    Fertig.
    Falls jemand einen Fehler drin findet, bitte mitteilen, wer das Script nutzen will: Bitteschön.

    Wenn man das Script startet, gibt es idealerweise folgendes aus:
    Code:
    Zugriffsrechte sollten auf 0444 stehen fuer:
    
    ../admin/includes/configure.php = 0444
    ../admin/includes/configure.org.php = 0444
    ../includes/configure.php = 0444
    ../includes/configure.org.php = 0444
    
    
    Zugriffsrechte sollten auf 0777 stehen fuer:
    
    ../StyleEdit3/templates/Honeygrid = 0777
    ../templates/Honeygrid/styles/custom = 0777
    ../magnaCallback.php = 0777
    ../admin/magnalister.php = 0777
    ../admin/backups = 0777
    ../admin/backups/temp = 0777
    ../admin/html/assets/images/legacy/hermes_labels = 0777
    ../admin/html/assets/images/legacy/icons = 0777
    ../cache = 0777
    ../export = 0777
    ../export/invoice = 0777
    ../export/packingslip = 0777
    ../export/sepa = 0777
    ../gm/customers_uploads/gprint = 0777
    ../images = 0777
    ../images/banner = 0777
    ../images/categories = 0777
    ../images/categories/icons = 0777
    ../images/gm/gprint = 0777
    ../images/logos = 0777
    ../images/manufacturers = 0777
    ../images/product_images/attribute_images = 0777
    ../images/product_images/gallery_images = 0777
    ../images/product_images/gm_gmotion_images = 0777
    ../images/product_images/info_images = 0777
    ../images/product_images/original_images = 0777
    ../images/product_images/popup_images = 0777
    ../images/product_images/properties_combis_images = 0777
    ../images/product_images/thumbnail_images = 0777
    ../images/slider_images = 0777
    ../images/slider_images/thumbnails = 0777
    ../import = 0777
    ../logfiles = 0777
    ../templates/Honeygrid = 0777
    ../templates/Honeygrid/assets/javascript = 0777
    ../templates_c = 0777
    
    
    Rekursive Zugriffsrechte (in der Ausgabe der rechte hier im Script wird nur das oberste Verzeichnis angezeigt, bitte also noch mal selbst pruefen!) sollten auf 0777 stehen fuer:
    
    ../admin/includes/magnalister = 0777
    ../gm/customers_uploads/gprint = 0777
    ../images/categories = 0777
    ../images/gm/gprint = 0777
    ../images/logos = 0777
    ../images/product_images = 0777
    ../media = 0777
    ../shopgate = 0777
    ../StyleEdit3/templates/Honeygrid = 0777
    ../uploads = 0777
    Ja, kann man sicher eleganter programmieren. Geht aber auch so.

    Ich denke, man sollte das script nur mal benutzten um die Rechte zu checken (und falls nötig zu korrigieren), dann wieder vom Server löschen.[/QUOTE]
     
  2. markus_wick
    markus_wick Erfahrener Benutzer
    Registriert seit:
    10. Oktober 2018
    Beiträge:
    982
    Danke erhalten:
    222
    Danke vergeben:
    156
  3. markus_wick
    markus_wick Erfahrener Benutzer
    Registriert seit:
    10. Oktober 2018
    Beiträge:
    982
    Danke erhalten:
    222
    Danke vergeben:
    156
    #3 markus_wick, 1. August 2019
    Zuletzt bearbeitet: 1. August 2019
    UPDATE!
    Nachdem mir das herumspielen mit php grade mehr Spass macht als das Weiterarbeiten am Shop habe ich das Script noch mal erweitert. Es setzt nun auch die Rechte, liest diese dann noch mal aus und zeigt sie an. Auch die rekursiven Rechte der dafür gedachten Verzeichnisse werden nun gesetzt (hoffe ich).

    Download:
    realrecyclers.com/ablage/permissionanzeige_3_13_2_0.php.zip

    Auf oberster Shop-Ebene ein Verzeichnis "test" erstellen. Das entpackte php rein.
    Aufruf unter http://www.domain.de/test/permissionanzeige_3_13_2_0.php

    Als Code dafür habe ich nun zwei Funktionen. Die erste:

    Code:
    function single_chmod($foldername, $dir_mode) {
            chmod($foldername, $dir_mode);
            echo "$foldername = ";
            echo substr(sprintf("%o", fileperms($foldername)), -4);
            echo ("<br />\n");
      }
    Setzt die Rechte und liest diese aus.

    Aufruf mit:
    Code:
    $path="../admin";
    single_chmod($path, 0777);
    Die zweite Funktion sollte das rekursive Setzen der Rechte ermöglichen:
    Code:
    function recursive_chmod($foldername, $dir_mode, $file_mode) {
         $dh = opendir($foldername);
         while($entry = readdir($dh)) {
           if ('' != $entry && '.' != $entry && '..' != $entry) {
             $_entry = $foldername . '/' . $entry;
             if (!is_dir($_entry)) {
               chmod($_entry, $file_mode);
             }
             if (is_dir($_entry)) {
               recursive_chmod($_entry, $dir_mode, $file_mode);
             }
           }
         }
         closedir($dh);
         chmod($foldername, $dir_mode);
      }
    Aufruf mit:
    Code:
    $path="../admin/html";
    recursive_chmod($path, 0777, 0777);
    echo "$path = ";
    echo substr(sprintf("%o", fileperms($path)), -4);
    echo ("<br />\n");
    Hat hier soweit ganz gut funktioniert. Nutzung auf eigene Gefahr!
    Quelle der Funktionen: http://www.devedge.de/php/zugriffsrechte-per-php-aendern