chmod für Unterverzeichnisse

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • chmod für Unterverzeichnisse

    Hallo Profis!

    Ich bin ein totaler Newbee bei PHP und benötige ein Script welches mir ein Verzeichnis ausliest, und die Verzeichnisrechte auf 0777 setzt. Schön wäre es auch, wenn es ausgibt ob es funktioniert hat oder nicht. Zumindest die Verzeichnisse welche nicht geändert werden konnten sollten angezeigt werden.

    Ich schaffe es zwar mit

    <?php
    @chmod("Verzeichnis", 0777);
    ?>

    ein Verzeichnis zu ändern, habe aber keine Ahnung wie das bei Unterverzeichnissen funktionieren könnte.

    Ich bin Euch für Eure Hilfe dankbar. Solltet Ihr so nett sein und mir Code posten, so erklärt mir bitte auch was geschieht, ev. kann ich´s dann begreifen. -Danke!

    Lg
    TE

  • #2
    schon mal doku angeschaut?
    PHP: chmod - Manual
    Slava
    bituniverse.com

    Kommentar


    • #3
      Ja, ich habe mir die Doku angesehen, so bin ich ja überhaupt auf chmod gekommen. Leider fange ich mit dem Vokabel RecursiveIteratorIterator
      nichts an. Ich denke es sollte doch möglich sein die Verzeichnisse auszulesen und abzuarbeiten, oder irre ich mich da?

      Danke für Eure Hilfe!

      Lg
      TE

      Kommentar


      • #4
        Zitat von TweetyExtreme Beitrag anzeigen
        Ja, ich habe mir die Doku angesehen, so bin ich ja überhaupt auf chmod gekommen. Leider fange ich mit dem Vokabel RecursiveIteratorIterator
        nichts an. Ich denke es sollte doch möglich sein die Verzeichnisse auszulesen und abzuarbeiten, oder irre ich mich da?

        Danke für Eure Hilfe!

        Lg
        TE
        Vielleicht schaust du dir den Link den Slava gepostet hat mal ganz genau an....machst dann mal C&P, testest ob es geht und wenn setzt dich dann mal mit dem RecursiveIteratorIterator auseinander...

        Kommentar


        • #5
          Hallo mkb_webprint!

          Das habe ich natürlich versucht wie ich auf chmod gestoßen bin. Ich habe mehrere Codes von der Seite getestet. Bei dem Link auf den mich Slava hingewiesen hat bekomme ich leider nur eine Fehlermeldung.

          Diese hier: Fatal error: Trying to clone an uncloneable object of class RecursiveIteratorIterator in /var/www/pfad zum Script/chmod.php on line 2

          Darum habe ich auch versucht das Vokabel zu verstehen oder auch es von einem "Wissenden" erklärt zu bekommen.

          Ich bin nicht nur daran interessiert das irgendwie zum Laufen zu bekommen. Ich möchte es auch verstehen.

          Ich hoffe das mir jemand weiterhilft.

          Lg
          TE

          Kommentar


          • #6
            Dann solltest du in deiner Antwort auch sagen, das die Beispiele die über den Link von Slava erreichbar sind nicht funktionieren und dann die Fehlermeldung mit dazu posten bzw. dich über Google schlau machen.

            Aus deiner Antwort ging hervor, das du die Beispielcodes einfach nur nicht verstehst und nicht, das sie nicht funktionieren.

            Gruß

            Björn

            Kommentar


            • #7
              So sollte es mit deinem Iterator gehen:
              PHP-Code:
              foreach($iterator as $item)
              {
                switch(
              true)
                {
                  case 
              $item->isdir() : chmod($item->getPathname(),0755); break;
                  case 
              $item->isfile(): chmod($item->getPathname(),0644); break;
                }

              Das Beispiel im Handbuch ist gefährlich. Es setzt u.U. stinknormale Dateien auf "ausführen".
              Zuletzt geändert von combie; 29.07.2009, 15:58.
              Wir werden alle sterben

              Kommentar


              • #8
                Hallo combie,

                danke für Deine Antwort. Ich habe nun den Code entsprechend geändert auf

                <?php
                $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathname), RecursiveIteratorIterator::SELF_FIRST);

                foreach($iterator as $item)
                {
                switch(true)
                {
                case $item->isdir() : chmod($item->getPathname(),0755); break;
                case $item->isfile(): chmod($item->getPathname(),0644); break;
                }
                }
                ?>

                Dies produziert jedoch leider auch die folgende Fehlermeldung: Fatal error: Trying to clone an uncloneable object of class RecursiveIteratorIterator in /var/www/Pfad zum Skript/chmod2.php on line 2

                Ich werde das vorerst zurückstellen. Ich habe mir nun ein Skript gebaut wo ich alle Verzeichnisse händisch geändert habe.

                Sollte ich wieder mehr Zeit haben werde ich mich wieder mit PHP beschäftigen.

                Danke an alle die mir helfen wollten.

                Lg
                TE

                Kommentar


                • #9
                  [Glaskugel]Du solltest bei dir mal die Zendengine 2 aktivieren.[/Glaskugel]
                  Wir werden alle sterben

                  Kommentar


                  • #10
                    Hallo,

                    zum reinem auslesen der Verzeichnisse mußt du den chmod nicht auf 0777 stellen, 0644 ist völlig ausreichend, desweiteren sollte das php script auch der Besitzer des Verzeichnisses sein.

                    VG
                    gourmet

                    Kommentar


                    • #11
                      0644 ist völlig ausreichend
                      Nein!
                      Ohne x Recht kann ein Verzeichnis nicht betreten werden. Es kann also NICHT ausgelesen werden.
                      Wir werden alle sterben

                      Kommentar


                      • #12
                        Zitat von combie Beitrag anzeigen
                        Nein!
                        Ohne x Recht kann ein Verzeichnis nicht betreten werden. Es kann also NICHT ausgelesen werden.
                        sorry stimmt 0755 für Verzeichnisse, 0644 für Dateien.
                        so besser

                        Kommentar

                        Lädt...
                        X