"Operation not permitted" beim Verzeichnis löschen

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

  • "Operation not permitted" beim Verzeichnis löschen

    Ich habe Shared Webspace auf FreeBSD mit Apache.

    Nun lasse ich per PHP Script Ordner erstellen für die Fotogalerien.

    PHP-Code:
    mkdir("../galerie/fotos/$dir",0777); 
    Nun wenn man diese Ordner wieder auf den FTP löschen möchte, erhalte ich die Fehlermeldung "Operation not permitted". Ich kann dann also weder die Ordnerrechte verändern noch löschen.

    Den Versuch die Ordner per Script zu löschen funktioniert leider auch nicht

    PHP-Code:
    unlink("../galerie/fotos/$verz"); 
    Da erhalte ich folgende Fehlermeldung:

    Warning: unlink(../galerie/fotos/testfotos): Operation not permitted

    Kann mir da jemand weiterhelfen, oder hatte jemand schon das selbe Problem?

  • #2
    Ich denke, das hängt mit der sid zusammen, die Du irgendwo unterwegs verlierst, oder du bist sogar geplant zwischendurch ab. bzw wieder angemeldet.
    Wenn Du als anderer User versuchst die Ordnerrechte zu ändern oder die Ordner zu löschen, dann ist Dir das nicht erlaubt.(not permitted)
    Das Recht lesen,schreiben und ausführen zu dürfen(777)hat nichts mit den
    Ordnerrechten zu tun. Die Rechte an den Ordnerrechten hat nur der Besitzer des Ordners.
    Ich bin mir nicht ganz sicher, aber entweder hast du es als anderer User versucht oder es hat eben mit der sid zu tun.
    Es gibt da die switch user anweisung (su) damit ist dir vielleicht geholfen.
    ansonsten must du dir die Id mit eben id ausgeben lassen und irgendwo zwischenspeichern um sie später wieder nutzen zu können.
    Ich denke auf jeden Fall das ist der Ansatz.
    Wenn Du die ordner auch von anderen Besitzern löschen lassen willst must du dir irgendwie n'script schreiben, dass dir die id speichert und es anderen ermöglicht mit der id zu arbeiten. Also nicht ganz so einfach die Sache. Hoffe, ich konnte dir fürs erste weiterhelfen
    Das Leben ist kein Ponyhof.

    Kommentar


    • #3
      Original geschrieben von Wendel
      Ich denke, das hängt mit der sid zusammen, die Du irgendwo unterwegs verlierst, oder du bist sogar geplant zwischendurch ab. bzw wieder angemeldet.
      SID = session-ID, im PHP-kontext? was hat die bitte mit dem rechtesystem von unix/linux zu tun?
      (wenn du mit sid etwas anderes meintest, bitte erklären ...)

      Wenn Du als anderer User versuchst die Ordnerrechte zu ändern oder die Ordner zu löschen, dann ist Dir das nicht erlaubt.(not permitted)
      Das Recht lesen,schreiben und ausführen zu dürfen(777)hat nichts mit den
      Ordnerrechten zu tun. Die Rechte an den Ordnerrechten hat nur der Besitzer des Ordners.
      jetzt denk mal scharf nach, warum es sich bei diesen rechten um eine aus drei ziffern zusammengesetzte zahl handelt ... ganz bestimmt nicht, weil sie nur rechte repräsentiert, die der anlegende user innehat.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Ich kenne die Sid auch im Kontext eines Prozesses. Sorry ich weis nicht wofür das steht. Aber ich kenne die PID,SID und den Thread.
        Frag mich jetzt bitte nicht wie der blöde Prozessor den Prozess samt sid und threads wie und wo im Speicher ob nun heap oder stack verarbeitet.Vielleicht lieg ich aber auch völlig falsch. I'm so sorry.
        Nochmal zu den Rechten. Is schon klar wofür die drei Zahlen stehen ich wollte nur darauf hin weisen, das auch wenn wie in unserem Fall Jeder alles darf, dann bezieht sich das auf die Rehte schreiben,lesen und ausführen!Die andere schreibweise dafür wäre wwwrrrxxx.
        Das hat aber nichts ! mit dem Recht zu tun den ordner zu löschen!
        Jeder darf darin schreiben, lesen und ihn ausführen aber ihn eben nicht löschen!
        Und auch keine rechte ändern! Es sei den er ist superuser bzw. admin.
        Frage ist nur, ob man jedem der den Ordner löschen dürfen soll Admin recht verleiht?
        Ich glaube das es mit der ID des Anlegenden zu tun hat!
        Sorry, wenn ich da falsch liege.Ich wollte nur versuchen zu helfen und ich bin mir zu 99% sicher das die Rechte, einen Ordner zu löschen anders organisiert sind. Müsste aber noch mal nachschauen, was ich heute hier nicht mehr schaffe.
        Wenns pressiert schlag ich nochmal nach. Wird aber nicht vor morgen klappen.
        Gruss und sorry
        Das Leben ist kein Ponyhof.

        Kommentar


        • #5
          also ich habe folgendes festgestellt:

          Der Owner dieser Verzeichnisse ist "80" und nicht mein Benutzername.

          Warum dass so ist, ich habe keine Ahnung.

          Kommentar


          • #6
            Original geschrieben von Wendel
            Is schon klar wofür die drei Zahlen stehen ich wollte nur darauf hin weisen, das auch wenn wie in unserem Fall Jeder alles darf, dann bezieht sich das auf die Rehte schreiben,lesen und ausführen!Die andere schreibweise dafür wäre wwwrrrxxx.
            Das hat aber nichts ! mit dem Recht zu tun den ordner zu löschen!
            Jeder darf darin schreiben, lesen und ihn ausführen aber ihn eben nicht löschen!
            doch.
            wer schreiben darf, darf auch löschen.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              unter diesem benutzer wird wohl der apache laufen. also brauchste die entsprechende berechtigung, um dort auch löschen zu können.

              ich weiss nicht wie es mittlerweile mit php4.3.7 is, es war auf jeden fall mal so, dass nicht jede zugriffsberechtigung direkt vom mkdir befehl aus gesetzt werden konnte, d.h. es musste noch ein chmod folgen. vllt checkste das mal

              Kommentar


              • #8
                Ich schildere mal am besten genauer meine Situation:

                - Ich habe einen Ordner genannt /fotos der besitzt die Rechte 777.

                - In diesen Ordner kommen die erstellen Verzeichnisse

                - Die Galerie wird ueber eine Tabelle in MySQL verwaltet!

                - Wenn ich ein Verzeichnis hinzufüge und dabei einen Datensatz erstelle, bekommt das Verzeichnis beim Wert Owner mein Benutzername

                - Lösche ich nun einen Datensatz, aber das Verzeichnis bleibt noch bestehen, ändert sich der Ownername von meinem Benutzername zu 80

                Also ich weiss nicht was dies für einen Zusammenhang hat, aber das kommt mir alles sehr spanisch vor.
                Zuletzt geändert von usany; 09.06.2004, 15:57.

                Kommentar


                • #9
                  Original geschrieben von Pleitegeier


                  ich weiss nicht wie es mittlerweile mit php4.3.7 is, es war auf jeden fall mal so, dass nicht jede zugriffsberechtigung direkt vom mkdir befehl aus gesetzt werden konnte, d.h. es musste noch ein chmod folgen. vllt checkste das mal
                  Das habe ich doch so gemacht:

                  PHP-Code:
                  mkdir("../galerie/fotos/$dir",0777); 

                  Kommentar


                  • #10
                    Original geschrieben von usany
                    - Ich habe einen Ordner genannt /fotos der besitzt die Rechte 777.
                    sicher? prüf das mal bitte...

                    Kommentar


                    • #11
                      Dan check mal mit id, ob das deine UID ist. Die 80 meine ich.
                      UID = User ID findest du in der etc/passwd.
                      Da steht in der Regel:
                      Username::UID::GID::homeverzeichnis::shell GID =Group ID
                      z.b.
                      User1::80::100::home/user1::ksh

                      Dann wäre die 80 Die UID von Dir und genau die wird bei Aktionen wie chmod mit übergeben an die Ordner.

                      log Dich einfach mal ein auf der Shell , ob nunksh odersh oder bash, und gib
                      id ein.
                      Das ist dasselbe, als ob du Whoami eingibst, was dir deinen namen ausgibt.
                      id gibt Dir deine UID aus.

                      Und Tschüß
                      Das Leben ist kein Ponyhof.

                      Kommentar


                      • #12
                        Original geschrieben von usany
                        Das habe ich doch so gemacht:

                        PHP-Code:
                        mkdir("../galerie/fotos/$dir",0777); 
                        ja, wie gesagt, das hat nicht immer so hunderprozentig hingehauen, anscheindend nen bug, zumindest bei bestimmten werten...

                        oder probier einfach
                        PHP-Code:
                        chmod("../galerie/fotos/$dir"0777); 
                        hinterher, das sollte auf jeden fall funzen

                        Kommentar


                        • #13
                          Ich habe anfangs geschrieben, dass es sich um einen Shared Webserver handelt. Also Shell funktioniert da leider nicht.

                          Kommentar


                          • #14
                            du sollst den ja nicht als shell befehl ausführen, php kann das auch

                            Kommentar


                            • #15
                              diese 80 ist nicht die UID sondern der owner

                              Kommentar

                              Lädt...
                              X