Wie erteile ich nur dem Besitzer eines Ordners Schreib- / Löschzugriff?

8

Wie kann ich einen Ordner erstellen, der:

  • Jeder hat Lesezugriff auf den Inhalt des Ordners
  • Nur der Eigentümer hat Schreib- / Löschzugriff auf den Inhalt
American-Ninja-Krieger
quelle
2
Dies ist das Standardverhalten, wenn Sie einen Ordner mit einem Benutzer erstellen. Er kann vom Benutzer geschrieben, aber von allen gelesen werden.
Ob2
1
1. Unmöglich. "root" und der Benutzer "sudo" können IMMER einen Ordner löschen. 2. Physischer Zugriff auf den Computer bedeutet, dass jemand eine Live-Sitzung verwenden und ein Verzeichnis löschen kann. Auch wenn nicht der Besitzer.
Rinzwind
"Erlaubt Schreib- / Löschzugriff nur, wenn Sie der Eigentümer sind" - der Eigentümer von was ? Eigentümer des Verzeichnisses oder Eigentümer des Inhalts darin?
Ilkkachu

Antworten:

6

Erstellen Sie einen Ordner und führen Sie ihn aus chmod(ändern Sie den Dateimodus), um die Berechtigungen zu ändern.

mkdir folder
chmod 755 folder

Eigentlich ist dies die Standardeinstellung.

Ändern der Berechtigungen für den Inhalt eines bereits vorhandenen Ordners:

# Give write access to owner
chmod -R u+w folder
# Revoke write access of group and others
chmod -R go-w folder
# Give read access to everyone
chmod -R a+r folder

Oder zusammen in einem Befehl (thx @chrylis)

chmod -R u=rwx,g=rx,o=rx folder
pLumo
quelle
4
Die zusammengesetzte Form u=rwx,g=rx,o=rxist etwas einfacher.
Chrylis -on Streik-
@chrylis Wusste nicht, dass das einzeilige Formular existiert. Vielen Dank!
Jpaugh
5

Geben Sie dem Eigentümer alle Berechtigungen und alle anderen nur Lese- und Ausführungsberechtigungen und nehmen Sie Schreibberechtigungen für alles darin weg:

sudo setfacl -Rm u::rwX,g::rX,o::rX /path/to/directory
sudo setfacl -Rdm u::rwX,g::rX,o::rX /path/to/directory

Der erste legt die Berechtigungen für vorhandene Objekte fest, und der zweite legt die Standardberechtigungen für alles fest, was im Verzeichnis erstellt wurde. rwXgewährt alle Berechtigungen (X-Berechtigungen werden ausgeführt, wenn ein Verzeichnis vorhanden oder bereits ausführbar ist).

muru
quelle
4
Warum das und nicht chmod u=rwx,g=rx,o=rx?
Chrylis -on Streik-
@chrylis "Die zweite legt die Standardberechtigungen für alles fest, was im Verzeichnis erstellt wurde."
Muru
Es sei denn, Sie sagen, dass chmod das auch auf magische Weise tut.
Muru
chmodsteuert, wer Änderungen am Verzeichnis vornehmen darf . Sie können keine Dateien aus einem Verzeichnis löschen, auch wenn Sie sie besitzen, ohne Schreibzugriff.
Chrylis -on Streik-
@chrylis die Frage spricht auch über Schreibzugriff auf die Dateien. Nicht nur löschen. Sie können in eine Datei schreiben, ohne Schreibzugriff auf das Verzeichnis zu haben.
Muru
4

Die Berechtigungsbits (in Oktal ), die Sie benötigen:

0705

Oder wenn Sie der Gruppe auch Lese- / Zugriffsberechtigungen erteilen möchten (dies ist sinnvoll, wenn Sie der Welt Lese- / Ausführungsberechtigungen erteilen):

0755

Das 0vordere Feld zeigt an, dass kein SUID-, SGID- oder Sticky-Bit vorhanden ist. Sie können das fallen lassen, wenn Sie wollen.

In beschreibender Briefform:

rwxr-xr-x
heemayl
quelle