oingman: verzeichnisse

hi

ich erstelle mit mkdir("dir", 0777); ein verzeichniss. darin werden auf dem selben weg 3 unterverzeichnisse erstellt.

das erste verzeichniss bekommt den mode 777, die 3 anderen nur 755.

mein hoster meint, die vere´zeichnisse werden als "nobody" erstellt, ich müsse aber angeben das ich nicht nobody sondern "kunde" bin. ich frage mich wie das gehen soll, ich habe leider keinen befehl oder der gleichen gesehen.

vieleicht kann mir jemand sagen worum es hier geht, ich hab mit verzeichnissen und dateien keine plan.

ps: zum einen stimmt der mode nicht und ich kann in den unterverzeichnissen auch keine datei erstellen. vermutölich wegen dem mode. jedoch ein bild in eine datei zu kopieren ging, jedoch nciht mit copy sondern http_???_post =)

  1. Hi,

    mein hoster meint, die vere´zeichnisse werden als "nobody" erstellt, ich müsse aber angeben das ich nicht nobody sondern "kunde" bin.

    das liegt übrigens daran, dass die Prozesse des Servers als "nobody.nogroup" laufen. Sag Deinem Provider, er soll Dir eine eigene Serverinstanz geben, die auf Deine Userkennung konfiguriert ist, dann hat er das Problem nicht mehr ;-)

    ich frage mich wie das gehen soll, ich habe leider keinen befehl oder der gleichen gesehen.

    Dieser Befehl lautet unter Unix chown, und auch PHP kennt einen solchen: http://de.php.net/manual/de/function.chown.php. Ich glaube allerdings nicht, dass ein nouser-Prozess das Verzeichnis zu "deinekennung" umberechtigen kann. Probiere es aus, und wenn es nicht klappt, muss der Provider dafür sorgen, dass sein(!) Server die entsprechenden Rechte bekommt - oder einfach damit leben, dass das Universum nicht seinen Wünschen entspricht.

    ps: zum einen stimmt der mode nicht

    Welcher Mode? Meinst Du die Rechte, also 777 bzw. 755?

    und ich kann in den unterverzeichnissen auch keine datei erstellen.

    Dann scheinen Schreibrechte zu fehlen. Versuche auch mal, chmod nach der Verzeichnis-Erstellung zu verwenden (Doku direkt neben obigem Link).

    vermutölich wegen dem mode. jedoch ein bild in eine datei zu kopieren ging, jedoch nciht mit copy sondern http_???_post =)

    Der Server, der den HTTP-POST annimmt und die Datei schreibt, läuft immer noch als "nouser", kann also in sein Verzeichnis (das er durch Dein Script erstellt hat) schreiben; _Du_ bist per FTP bzw. Telnet jedoch jemand anders. Das wird der Grund sein.

    Cheatah

    1. Dieser Befehl lautet unter Unix chown, und auch PHP kennt einen solchen: http://de.php.net/manual/de/function.chown.php. Ich glaube allerdings nicht, dass ein nouser-Prozess das Verzeichnis zu "deinekennung" umberechtigen kann. Probiere es aus, und wenn es nicht klappt, muss der Provider dafür sorgen, dass sein(!) Server die entsprechenden Rechte bekommt - oder einfach damit leben, dass das Universum nicht seinen Wünschen entspricht.

      wie kann ich chown auf ein verzeichniss anwenden? die datei lässt sich doch gar nicht anlegen um sie zu ändern?

      1. Hi,

        wie kann ich chown auf ein verzeichniss anwenden?

        Verzeichnisse sind auch nur Menschen, äh, Dateien[1]. Wenn Du Dich z.B. in dem Verzeichnis befindest, hat es den Namen ".". Natürlich gehört es auch einem User und hat Zugriffsrechte, die sich genau wie bei Dateien ändern lassen.

        die datei lässt sich doch gar nicht anlegen um sie zu ändern?

        Nachdem Du die Verzeichnisrechte korrigiert hast, sollte es gehen.

        Cheatah

        [1] Bitte nicht zu wörtlich nehmen :-) Die interne Handhabe im Dateisystem ist bei Verzeichnissen die Rechte betreffend nicht anders als bei Dateien.

  2. ps: zum einen stimmt der mode nicht und ich kann in den unterverzeichnissen auch keine datei erstellen.

    Vielleicht hilft Dir http://forum.de.selfhtml.org/?m=529&t=78 weiter.

    MfG, Thomas

    1. nicht ganz, weil ich so wie unten probiert hab, es aber nicht funzt. meine codezeile sieht jetzte so aus:

      mkdir("user/membs/$user_nick/", 0777);
      $verzeichnis="user/membs/$user_nick/";
      $umaskvorher=umask(0777);

      so wurde es auch beschrieben, hat aber nicht geklapt =(

      1. mkdir("user/membs/$user_nick/", 0777);
        $verzeichnis="user/membs/$user_nick/";
        $umaskvorher=umask(0777);

        so wurde es auch beschrieben, hat aber nicht geklapt =(

        Hast Du es denn auch so probiert, wie in dem Beitrag genannt?

        $umaskvorher=umask(0);
        $verzeichnis="user/membs/$user_nick";
        mkdir($verzeichnis,0777);
        umask($umaskvorher);

        MfG, Thomas