Sean A.: Zugriffsrechte unter Mac

Hallo Leute,

ich habe folgendes Problem. Ich erstelle mit diesem Code einen Ordner mit PHP (MAC OS X & MAMP):

mkdir("data");
chmod("data","0777");

Wenn ich anschließend auf den Ordner mit dem Mac Finder zugreifen will, wird mir das verboten und auch beim Löschen wird nach dem Benutzerpasswort gefragt. Wenn ich über localhost darauf zugreifen will, kommt das Gleiche: "Forbidden".
Was mache ich falsch? Ist doch auf die maximalen Zugriffsrechte eingestellt.

Mit freundlichen Grüßken,
Sean A.

  1. ich habe folgendes Problem. Ich erstelle mit diesem Code einen Ordner mit PHP (MAC OS X & MAMP):

    mkdir("data");
    chmod("data","0777");

    tust du das oder glaubst du das?

    fileperms() nach chmod() wäre ein Ansatz - obwohl ansich das schon unsinnig ist, da mkdir() per default mit 0777 erstellt.

    btw: sowohl mkdir() alsauch chmod() erwarten Pfade als Argument - keine Ordner oder Dateinamen

  2. Hello,

    mkdir("data");
    chmod("data","0777");

    steht da wirklich "0777", also mit Stringbegrenzern drum herum?

    Lies dir nochmal den Text im Manual durch:
    http://de.php.net/manual/en/function.chmod.php

    Die Rechte müssen als INT im übergeben werden. Der Parser erwartet hier also ein entsprechendes Integer-äquivalentes Literal im Oktalformat (also ohne zusätzliche Begrenzungszeichen) und keinen String.

    Wenn Du einen String daraus machst, wird das Literal von PHP als Dezimalformat angenommen und dann erst in einen INT umgewandelt.

    Die Rechte pauschal hochzuschrauben ist außerdem keine gute Idee. Besser wäre es, eine gemeinsame Gruppe für alle User einzurichten und dann die Gruppenrechte passend festzulegen.

    Und immer daran denken: _niedrigste_ zutreffende Rechte gelten!

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. steht da wirklich "0777", also mit Stringbegrenzern drum herum?

      Mmh,... peinlich!

      Vielen Dank! :)
      Das Beispiel 777 war übrings nur um zu testen ob es daran liegt. Natürlich werden die Rechte individuell angepasst.

    2. Hello,

      mkdir("data");
      chmod("data","0777");

      und die Hälfte habe ich glatt vergessen:
      Es gelten für den Zugriff auf die Node der Datei (also Namen, Existenz, usw.) die Rechte des Users im übergeordneten Verzeichnis. Nur für den _Inhalt_ der Datei gelten die Rechte, die an ihr "festgemacht" sind.

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
    3. Hello,

      als kleine Ergänzung fürs Archiv zum selber Ausprobieren:

      <?php   ### octal_decimal.php ###

      header("Content-Type: text/plain");

      echo 0 + "0777";
      echo "\r\n";

      echo 0 + 0777;

      ?>

      Ausgegeben werden durch echo selbstverständlich wieder die String-Äquivalente, also die menschlich lesbaren "Zahlen". Hier findet also eine fleißige Hin- und Herwandelei im Hintgergrund statt.

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de