Auf einem Linux-Rechner mit mehreren Usern wollte ich ein Verzeichnis zum
gemeinsamen Arbeiten anlegen. Dieses Verzeichnis soll als Unterverzeichnis
"Gemeinsame Dateien" in die jeweiligen Home-Verzeichnisse eingebunden
werden. Legt ein User ein Verzeichnis oder eine Datei an, sollen die anderen
User ebenfalls automatisch Lese- und Schreibrechte erhalten. Da ich das
nicht so häufig mache, vergesse ich immer wieder die Befehle. Also habe ich
das mal hier im Blog als "Merkzettel" hinterlegt.
Um ein konkretes Beispiel zu haben, gehen wir von folgender Situation
aus:
-
Wir haben zwei User otto und anna, die sich ein Verzeichnis teilen
wollen. Sie haben die Home-Verzeichnisse /home/otto bzw. /home/anna.
-
Das gemeinsame Verzeichnis soll auf /home/share angelegt werden und per
symbolischen Link in den beiden Home-Verzeichnissen als ~/Gemeinsame Dateien
eingebunden werden.
-
Wir benötigen für das Rechte-Management eine Gruppe. Diese soll share
heißen.
Nun arbeiten wir einfach folgende Befehlsliste ab:
$ sudo su # Wir benötigen root-Rechte
# groupadd share # Lege die Gruppe an
# usermod -a -G share anna # Anna der Gruppe hinzufügen
# usermod -a -G share otto # Otto der Gruppe hinzufügen
# cd /home
# mkdir share # Verzeichnis anlegen
# chgrp -R share share/ # Verzeichnis der Gruppe share zuordnen
# setfacl -R -m group:share:rw-,d:group:share:rw- share/ # Access Control List (ACL)
# chmod g+s share/ # Set the SetGID sticky bit
# ln -s share/ "anna/Gemeinsame Dateien" # Symbolischen Link erstellen
# ln -s share/ "otto/Gemeinsame Dateien" # Symbolischen Link erstellen
Fertig!
Einen sehr einfach und verständlich formulierten Artikel zu Access Control
Lists (ACL) gibt es
hier
.
Damit neu erstellte Dateien und Verzeichnisse korrekt die Gruppen- und
User-Rechte erben, benötigt man noch das SetGID sticky bit (Infos
hier
).