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.Administratorangehö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 nurrooteinsehen können soll. - Ansonsten sollen Mitglieder der Gruppe
mediain/srv/Llesen 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
Adas Verzeichnis/srv/L/backuperstellt hat, dann soll auch NutzerBdie Datei/srv/L/backup/file.tgzerstellen können, und alle Nutzer der Gruppemediasollen 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
mediahaben, aber nur dann, wenn sie innerhalb von/srv/Lerstellt werden. - Nutzer, die nicht der Gruppe
mediaangehören, sollen lediglich Lesezugriff auf die Daten unter/srv/Lhaben. - 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
chmododer Ä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.