Wie entferne ich das Unterverzeichnis einer anderen Person aus meinem Verzeichnis?

3441
markpasc

Ich habe Dateien mit einem Kollegen auf einem Linux-Server geteilt und er hat einige neue Dateien hinzugefügt. Jetzt haben wir die Dateien an einen anderen Ort verschoben, also möchte ich die alten Dateien entfernen. Als mein Kollege seine Dateien hinzufügte, erstellte die von uns verwendete Software neue Unterverzeichnisse, die zu seinem Konto gehörten, und ich finde nicht den richtigen Befehl, um sie zu entfernen.

$ ls -a total 20 drwxrwxr-x 5 markpasc markpasc 4096 Sep 20 09:48 ./ drwxrwxr-x 3 markpasc markpasc 4096 Sep 20 09:48 ../ drwxr-xr-x 2 coworker coworker 4096 Sep 16 14:07 82/ drwxr-xr-x 2 coworker coworker 4096 Sep 16 14:07 c4/ 

Ich habe es versucht:

$ rm -rf 82 rm: cannot remove `82/b7fc78bc548537f3ea235026b7322fe3bea91f': Permission denied $ rm -f 82/b7fc78bc548537f3ea235026b7322fe3bea91f rm: cannot remove `82/b7fc78bc548537f3ea235026b7322fe3bea91f': Permission denied $ rmdir 82/ rmdir: 82/: Directory not empty $ 

Ich weiß, dass ich normalerweise eine Datei entfernen kann, die jemand anderes aus meinem Verzeichnis besitzt:

$ ls -a total 8 drwxrwxr-x 2 markpasc markpasc 4096 Sep 20 10:13 ./ drwxr-xr-x 24 markpasc markpasc 4096 Sep 20 10:13 ../ -rw-rw-r-- 1 someuser someuser 0 Sep 20 10:13 file $ rm file rm: remove write-protected regular empty file `file'? y $ ls file ls: file: No such file or directory $ 

Gibt es eine Möglichkeit, diese Verzeichnisse selbst zu entfernen, oder muss mein Mitarbeiter (oder Root) sie entfernen?

3
Sie sollten wahrscheinlich die Wurzel fragen Nathan Fellman vor 14 Jahren 1
Vielen Dank! Ich fragte meinen Kollegen und er half mir, sie zu entfernen, aber ich fragte mich, ob es einen anderen Weg gab, den ich vermisst hatte. markpasc vor 14 Jahren 0
Nein, nur root kann Kontobeschränkungen überwinden. harrymc vor 14 Jahren 0

1 Antwort auf die Frage

4
Gilles

Um ein Verzeichnis zu entfernen, benötigen Sie zwei Dinge: Schreibzugriff auf das übergeordnete Verzeichnis und das Verzeichnis muss leer sein. Ihr Mitarbeiter oder Ihre Wurzel muss also zusammenarbeiten. Dies ist eine Einschränkung des Unix-Berechtigungsmodells.

Für einen besseren Arbeitsfluss, wenn eine Verzeichnisstruktur von mehreren Benutzern beschrieben werden kann, können Sie Zugriffssteuerungslisten (sofern unterstützt) oder Setgid-Verzeichnisse verwenden.

  • Erteilen Sie mit ACLs den Schreibzugriff für das Verzeichnis, und legen Sie die Standard-ACL so fest, dass sie auch Schreibzugriff gewährt, sodass neu erstellte Dateien und Unterverzeichnisse die gewünschten Berechtigungen erben. Benutzer können diese Standardeinstellungen überschreiben. Solange sie jedoch passiv zusammenarbeiten, sind die Berechtigungen in Ordnung.

    setfacl -m user:coworker:rwx . setfacl -d -m user:coworker:rwx . 
  • Wenn Sie nicht über ACLs verfügen, können Sie einer Gruppe Schreibzugriff erteilen und das setgid-Bit für das Verzeichnis festlegen. Dies führt dazu, dass neu erstellte Dateien und Unterverzeichnisse nicht der Standardgruppe des Erstellungsprozesses, sondern der betreffenden Gruppe angehören. Es ist jedoch immer noch die Aufgabe der Benutzer, den neuen Dateien und Verzeichnissen Gruppenschreibrechte zu erteilen (dies geschieht automatisch nur, wenn dies der Fall ist umask 002).

    chgrp mygroup . chmod g+ws . 

Vielleicht interessiert es dich in diesem Thread, warum die Dinge so funktionieren .