it-swarm.com.de

Erlauben Sie allen Benutzern, Dateien in einem Verzeichnis zu erstellen, aber nur der Eigentümer kann sie löschen

Wie kann ich einen einzelnen chmod -Befehl verwenden, mit dem jeder Benutzer eine Datei in einem Verzeichnis erstellen kann, aber nur der Eigentümer seiner Datei (der Benutzer, der sie erstellt hat) kann seine eigene Datei löschen, aber niemand sonst ist in diesem Verzeichnis.

Ich dachte zu verwenden:

chmod 755 directory

Da der Benutzer eine Datei erstellen und löschen kann, kann der Benutzer dann aber nicht die Dateien anderer Personen löschen?

Ich möchte nur, dass die Person, die die Datei erstellt hat, ihre eigene Datei löschen kann. Jeder kann also eine Datei erstellen, aber nur die Person, die eine Datei erstellt hat, kann diese Datei (im Verzeichnis) löschen.

19
Mandingo

Das klebrige Stück kann mehr oder weniger tun, was Sie wollen. Von man 1 chmod:

Das eingeschränkte Löschflag oder Sticky-Bit ist ein einzelnes Bit, dessen Interpretation vom Dateityp abhängt. Bei Verzeichnissen wird verhindert, dass nicht privilegierte Benutzer eine Datei im Verzeichnis entfernen oder umbenennen, es sei denn, sie besitzen die Datei oder das Verzeichnis. Dies wird als eingeschränktes Löschflag für das Verzeichnis bezeichnet und ist häufig in weltweit beschreibbaren Verzeichnissen wie/tmp zu finden.

Das heißt, das Vorhandensein des Sticky Bits in einem Verzeichnis ermöglicht nur das Umbenennen oder Löschen enthaltener Dateien, wenn der Benutzer entweder der Eigentümer der Datei oder der Eigentümer des enthaltenen Verzeichnisses ist (oder der Benutzer root ist).

Sie können das Sticky-Bit (das durch Oktal 1000 oder t dargestellt wird) wie folgt anwenden:

# instead of your chmod 755
chmod 1777 directory

# or, to add the bit to an existing directory
chmod o+t directory
32
Chris Down

Die meisten /tmp Verzeichnisse werden mit dieser Art von Berechtigungssatz erstellt.

Sie wollen die Welt "klebrig". Die symbolische Art, dieses Bit zu setzen, ist:

# chmod ugo+w,+t directory

Der "modale" Weg ist:

# chmod 1777 directory
# ls -ld directory
drwxrwxrwt  2 root  wheel  2 Oct 21 17:06 directory/
14
Jim L.