Ein in Foren und Mailinglisten häufig genanntes Problem: wie richtige ich einen Arbeitsordner ein, der von allen auf dem System gemeldenten Usern frei genutzt werden kann: User A kann schreiben-lesen-kopieren-löschen - User B kann mit den gleichen dateien ebenfalls alles .. Das ist zwingend notwendig wenn gemeinsame Projekte über gemeinsame Dateien bearbeitet werden sollen.
Zudem ist es günstig wenn ich den Ordner für eine Samba-Freigabe so konfiguriere. Dann kann ich auf dem Serversystem Dateien einspielen (ohne smb zu bemühen) und die Zugriffsbeschränkungen völlig frei über Samba einrichten.
-----------------------------
Zunächst soll hier ine Möglichkeit beschrieben werden wie dieses für eine Gruppe realisiert wird
-----------------------------
Es geht NICHT mit cmod denn das wirkt sich nicht auf neue Dateien aus - immer nur auf bestehende. Und es ist nicht zu gewährleisteten dass jeder der eine Datei erstellt/bearbeitet anschließend die Rechte korrigiert.
Es geht auch nicht mit dem suid-Bit- Es beeinflusst nur die Rechte von Verzeichnissen und arbeitet außerdem nicht rekursiv. Und es geht ja um Verzeichnisse UND Dateien
Es geht NICHT mit umask, denn umask gilt für ein ganzes Dateisystem und ich möchte nur einen Ordner für diesen Zweck konfigurieren.
Es geht nur mit ACLs. Der entscheidende Link, der nach mehrmaligem Lesen die Erhellung bracht ist
http://wiki.ubuntuusers.de/ACL
und dort das Stichwort 'Aufbau einer Default-ACL'
Was kaum geht (darauf war ich reingefallen) - die Rechtvergabe mit Eiciel oder Dolphin-erweiterte Rechte. Es ist schon mühsam genug die ACLs zu kapieren. Wenn man dann noch die Umsetzung dieser ACLs in der GUI kapieren will hat man 2 Probleme statt einem. Und die ganzen Howtows gehen von der Kommandozeile aus ..
---------------
1. Fstab anpassen: ACL aktivieren für das Dateisystem und neu mounten
Zitat/dev/disk/by-id/ata-MAXTOR_STM3250310AS_6RY5AJZ9-part3 /home ext4 defaults,acl 1 2
2. Ordner anlegen und Rechte incl SGID-Bit setzten (Eigentümer root oder sonstwer, Gruppe users, siehe Bild 1 + 2)
Interessehalber mal die Rechte mit ls und getfacl zeigen (keine ACLs gesetzt)
ZitatAlles anzeigenlinux-4w3x:/home # ls -l /home | grep zentraldaten
drwxrwsr-- 2 root users 4096 Jun 27 20:36 zentraldaten
linux-4w3x:/home # getfacl zentraldaten
# file: zentraldaten
# owner: root
# group: users
# flags: -s-
user::rwx
group::rwx
other::r--
3. Mit setfacl die Default-ACL setzen und prüfen
ZitatAlles anzeigenlinux-4w3x:/home # setfacl -dm g::rwx,o:r zentraldaten
linux-4w3x:/home # getfacl zentraldaten
# file: zentraldaten
# owner: root
# group: users
# flags: -s-
user::rwx
group::rwx
other::r--
default:user::rwx
default:group::rwx
default:other::r--
man achte auf das -d als Parameter: Default setzen
4.Zur Überprüfung mal als Egon und Elke ein paar Dateien und Ordner erzeugt und Rechte geprüft:
ZitatAlles anzeigenelke@linux-4w3x:/home/zentraldaten> touch testelke
elke@linux-4w3x:/home/zentraldaten> md vz_elke
elke@linux-4w3x:/home/zentraldaten> touch vz_elke/testelke_2
elke@linux-4w3x:/home/zentraldaten>
...........(dito egon ..)
-----------------
linux-4w3x:/home/zentraldaten # ls -l
total 8
-rw-rw-r-- 1 egon users 0 Jun 27 21:18 testegon
-rw-rw-r-- 1 elke users 0 Jun 27 21:17 testelke
drwxr-sr--+ 2 egon users 4096 Jun 27 21:18 vz_egon
drwxr-sr--+ 2 elke users 4096 Jun 27 21:18 vz_elke
linux-4w3x:/home/zentraldaten # ls -l vz_egon
total 0
-rw-rw-r-- 1 egon users 0 Jun 27 21:18 testegon2
linux-4w3x:/home/zentraldaten # getfacl *
# file: testegon
# owner: egon
# group: users
user::rw-
group::rw-
other::r--
# file: testelke
# owner: elke
# group: users
user::rw-
group::rw-
other::r--
# file: vz_egon
# owner: egon
# group: users
# flags: -s-
user::rwx
group::r-x
other::r--
default:user::rwx
default:group::rwx
default:other::r--
# file: vz_elke
# owner: elke
# group: users
# flags: -s-
user::rwx
group::r-x
other::r--
default:user::rwx
default:group::rwx
default:other::r--
Wichtig ist, zu erkennen dass ls -l keine vollständigen angaben macht. Um alle Rechte einer Datei zu erfahren ist zwingend notwendig, mit getfacl zu arbeiten.
-------------------------------
Wenn jetzt jeder Lese- und Schreibrechte haben sollte müsste man nur machen:
Zitatsetfacl -dm o:rw zentraldaten
Das wirkt sich aber nicht auf schon vorhandene Dateien aus .. wenn man diesen Befehl nachträglich absetzt muss man an die wieder mit chmod ran
---------------------------
Nachtrag: mit ACLs kann man auch masken setzen und einfach nur Rechte .. DAS ist hier nicht das Thema.. .. das ist was anderes .. speziell die Masken sind ne gefährliche Sache ..
---------------------------
Viel Spaß und Erfolg!
wurzel