Erteilen von Schreibberechtigungen für eine Gruppe in einem Ordner

34

Wie kann ich einer Gruppe eine Schreibberechtigung erteilen?
Ich habe 2 Benutzer ( alexund ben).
alexist Mitglied der Gruppe alexund der Gruppe consult.
benist Mitglied der Gruppe benund der Gruppe consult.

Ich möchte Lese - Schreib - Zugriff auf beide gewähren alexund benauf dem Ordner consult_documents.

Wenn ich alexden Besitzer des Verzeichnisses consult_documentsund ich gewähren 775Zugriff auf das Verzeichnis consult_documents, benund alexin der Lage sein wird, auf den Ordner zuzugreifen, denke ich.

Aber wird dies auch den benZugriff auf alexdie anderen Ordner ermöglichen? Wenn sich ein Benutzer in zwei Gruppen befindet, haben dann alle Mitglieder beider Gruppen die gleichen Berechtigungen für alle Ordner?

anatak
quelle
Wollen Sie, dass alex und ben Dateien in consult_documents erstellen und ihnen beide Lese- / Schreibzugriff auf diese Dokumente gewähren können?
X Tian

Antworten:

42

Das Erteilen von 775-Berechtigungen für ein Verzeichnis bedeutet nicht automatisch, dass alle Benutzer in einer bestimmten Gruppe rwxZugriff darauf erhalten. Sie müssen entweder der Eigentümer des Verzeichnisses sein oder zur Gruppe des Verzeichnisses gehören:

$ ls -ld some_dir
drwxrwxr-x 2 alex consult 4096 Feb 20 10:10 some_dir/
              ^     ^
              |     |_____ directory's group
              |___________ directory's owner

Damit sowohl alex als auch ben Schreibzugriff haben, muss some_dirdas some_dirVerzeichnis selbst zur consultGruppe gehören. Wenn dies nicht der Fall ist, sollte der Eigentümer des Verzeichnisses (in Ihrem Beispiel alex) den folgenden Befehl ausgeben:

$ chgrp consult some_dir/

oder um die Gruppeneigentümerschaft für alles innerhalb des Verzeichnisses zu ändern:

$ chgrp -R consult some_dir/

Dies funktioniert nur, wenn alex Mitglied der consultGruppe ist, was in Ihrem Beispiel der Fall zu sein scheint.

Dies wird es ben aus zwei Gründen nicht erlauben, auf alle Verzeichnisse von alex zuzugreifen:

  1. Nicht alle Verzeichnisse von alex gehören zur consultGruppe
  2. Einige der Verzeichnisse von alex gehören möglicherweise zur consultGruppe, aber alex hat möglicherweise keinen rwxGruppenzugriff auf sie ausgewählt.

Kurz gesagt, die Antwort hängt sowohl vom Gruppeneigentum als auch von den Gruppenberechtigungsbits ab, die für das Verzeichnis festgelegt wurden.

All dies wird vorausgesetzt, dass Sie auf Ihrem System keine zusätzlichen obligatorischen Zugriffssteuerungsmaßnahmen anwenden.

Joseph R.
quelle
consult_documents ist ein Verzeichnis, wie können Sie es dann als Gruppe angeben?
Babin Lonston
@Babinlonston Das kannst du nicht. Sie geben consultals Gruppe an.
Joseph R.
Vielen Dank, ich habe nach einer Möglichkeit gesucht, einer Gruppe Zugriff auf ein Verzeichnis zu gewähren. Mir war nicht klar, dass der Befehl chgrp dies kann. Ich dachte, dass chgrp nur zum Hinzufügen / Löschen von Benutzern zu einer Gruppe dient.
Anatak
1
@anatak Die Änderung der Gruppenmitgliedschaft erfolgt über usermodnotchgrp
Joseph R.
Ist das dasselbe wie chown -R :consult some_dir/?
Aaron Franke
7

Dies wird Alex und Ben dazu bringen, sich in diesem Verzeichnis gegenseitig zu kolabrieren.

Ändern Sie die Benutzergruppe mit

# usermod -a -G alex,ben alex

Ändern Sie dann die Berechtigung für Ordner

# chown alex:ben consult_documents

Überprüfen Sie hier, ich habe es herumgearbeitet

$ sudo usermod -a -G alex,ben alex

$ sudo chown alex:ben consult_documents/

cd consult_documents/

$ touch babin

drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin

$ su - ben

cd /home/alex/consult_documents/

ben@system99:/home/alex/consult_documents$ touch babin1
ben@system99:/home/alex/consult_documents$ ls -la
total 8
drwxrwxr-x 2 alex ben  4096 Feb 20 15:19 .
drwxr-xr-x 3 alex alex 4096 Feb 20 15:17 ..
-rw-rw-r-- 1 alex alex    0 Feb 20 15:19 babin
-rw-rw-r-- 1 ben  ben     0 Feb 20 15:19 babin1
ben@system99:/home/alex/consult_documents$

Schau mal hier

Babin Lonston
quelle
6

Wenn ich Ihre Frage richtig verstanden habe, lautet die Antwort Ja.

Lassen Sie mich erklären:

Ihre Ordner- und Dateizugriffsrechte sind in drei Kategorien unterteilt:

xxxyyyzzz
xxx are access rights for the owner
yyy are access rights for the owner's group
zzz are the access rights for everyone else

Jede Datei und jeder Ordner muss einem Benutzer gehören.

Das heißt, wenn Sie einen Ordner mit dem Namen consult_documents haben und möchten, dass alle Benutzer der Gruppe Consult auf ihn zugreifen können, haben Sie Folgendes (mit 755 Zugriffsrechten):

drwxrwxr-x Alex Consult [......]

Das Verzeichnis gehört Alex und die Gruppe ist Consult. Alex hat RWX-Zugriffsrechte. Group Consult verfügt über RWX-Zugriffsrechte. Andere Benutzer haben RX-Rechte.

Da Ihr Benutzer Alex mehrere Gruppen hat, können Sie die Gruppe auswählen, für die Sie die Freigabe vornehmen möchten.

Wenn Ihr Ordner beispielsweise Alex von der Gruppe Alex gehört:

drwxrwxr-x Alex Alex [......]

TU es:

chown Alex:Consult your_folder

Es wird werden:

drwxrwxr-x Alex Consult [......]

Und dann ist das Verzeichnis für die Gruppe Consult verfügbar.

Bitte beachten Sie, dass Sie meines Wissens eine Gruppe hinzufügen können, die nicht zur Gruppe des Besitzers gehört. Ich bin mir aber nicht sicher, ob es empfehlenswert ist (unklar beim Lesen von Zugriffsrechten).

Laurent C.
quelle
3

setfacl -mg: debian-transmission: rwx -R / mnt / sra

Fand diesen Befehl schön, anstatt dass chown den Besitzer der Datei oder des Verzeichnisses komplett ändert!

Sie werden auf einem 'ls -Al' sehen, dass ein + -Zeichen hinzugefügt wird, um anzuzeigen, dass es mehr als einen Besitzer gibt!

drwxr-xr-x 2 root root 4096 8. November 19:11 sdc1 /

drwxrwxr-x + 3 root root 4096 17. Februar 19:16 sra /

Und dann können Sie mit getfacl sehen, wer die Datei oder das Verzeichnis schreiben oder lesen kann!

# file: sra

# Besitzer: root

# group: root user :: rwx

group :: rx

Gruppe: Debian-Übertragung: rwx

mask :: rwx

sonstiges :: rx

Voreinstellung: user :: rwx

Voreinstellung: group :: rx

default: group: debian-transmission: rwx

Standard: mask :: rwx

Voreinstellung: other :: rx

Marc Cabana
quelle