Ich bin seit ein paar Tagen LibreWorkspace-Nutzer und versuche, eine Reihe von ext4-Partitionen allen Mitgliedern einer Benutzergruppe zugänglich zu machen.
Jeden der (unter /srv
liegenden) Mountpoints
footage-archive
footage-raw
incoming
misc
photos
soundarchive
soundraw
tvarchive
tvraw
spreche ich im Folgenden mit L
an.
Wie kann man die folgenden Anforderungen erfüllen?
- Es gibt eine Gruppe
media
, der genau die drei BenutzerA
,B
,lw.Administrator
angehören. - Es gibt ein Verzeichnis
/srv/L
, das ein Mountpoint für ein mit ext4 formatiertes Dateisystem ist. Insbesondere gibt es hier ein Verzeichnis/srv/L/lost+found
, das nurroot
einsehen können soll. - Ansonsten sollen Mitglieder der Gruppe
media
in/srv/L
lesen und schreiben, also Dateien und Verzeichnisse erstellen, ändern und löschen. Aber jeder Nutzer soll nur Daten, die er selbst erstellt hat, ändern oder löschen dürfen. - Wenn Nutzer
A
das Verzeichnis/srv/L/backup
erstellt hat, dann soll auch NutzerB
die Datei/srv/L/backup/file.tgz
erstellen können, und alle Nutzer der Gruppemedia
sollen sie lesen können (aber nicht ändern oder löschen!) (Dass man das Archiv bspw. auf einem Windows-System entpacken kann und dann die in den archivierten Daten enthaltenen Rechte außer Kraft sind, soll hier unberücksichtigt bleiben.) - Neu erstellte Dateien und Verzeichnisse sollen Group Ownership
media
haben, aber nur dann, wenn sie innerhalb von/srv/L
erstellt werden. - Nutzer, die nicht der Gruppe
media
angehören, sollen lediglich Lesezugriff auf die Daten unter/srv/L
haben. - Die Lösung muss auch für Nichtexperten praktikabel sein, d.h. auch wenn man in einem grafischen Programm „mal eben schnell“ eine Datei erstellt, soll sie diesen Beschränkungen unterworfen sein. Also kein händisches
chmod
oder Ähnliches.
Mein erster Vorschlag:
root# chown root:root /srv/L
root# chmod 2755 /srv/L
root# mkdir /srv/L/files # make extra directory to place files, so /srv/L/lost+found/ is protected
root# chown root:media /srv/L/files
root# chmod 3775 /srv/L/files
Das ist aber noch nicht ganz perfekt:
die standardmäßige umask ist 002
, also:
Datei: 666 - 002 = 664 → rw-rw-r-- (Gruppe darf schreiben!)
Verzeichnis: 777 - 002 = 775 → rwxrwxr-x
chmod 0644
würde das lösen, ist aber nicht praktikabel.
Man könnte umask 0022
setzen:
Datei: 666 - 022 = 644 ⇒ rw-r--r--
Verzeichnis: 777 - 022 = 755 ⇒ rwxr-xr-x
Das gilt dann aber immer, auch für Verzeichnisse außerhalb von /srv
.
Welche Nachteile hat es, wenn Benutzer A
und B
ihre umask auf 0022
setzen?
Sie sollen im Wesentlichen über den RDP-Desktop mit dem System interagieren,
das Terminal beherrscht nur Nutzer A
(und lw.Administrator
).
Zusammengefasst:
chmod 3775
und umask 0022
: geht das oder handle ich mir damit Probleme ein?
Nutzer A
hat primary group A
. Sind die secondary groups relevant (außer media
)?
Ich möchte ACLs vermeiden, da ich mich damit nicht gut auskenne.