Zugriffssteuerungslisten
Die direkte Antwort sind Zugriffssteuerungslisten (Access Control Lists, ACLs) . Ja, Sie können ein Gegenbeispiel finden, aber sie sind in der Praxis gut genug (im Gegensatz zur reinen Gruppenschreibbarkeit, bei der die Benutzer die ganze Zeit darüber nachdenken müssen). Was sie benötigen, ist, dass der Systemadministrator (root) die Gruppen definiert, wenn Dateien nur von einer benannten Gruppe gemeinsam genutzt werden sollen (root kann dies delegieren, indem er beispielsweise Gruppen von LDAP akzeptiert, aber das ist eine andere Geschichte).
Sie benötigen teilnehmende Benutzer, die eine umask von 022 haben. Wenn sie routinemäßig nicht weltweit lesbare Dateien erstellen, funktioniert dieses Schema nicht. Wenn sie jedoch eine restriktive umask haben, liegt dies vermutlich daran, dass sie ohnehin keine Dateien freigeben möchten.
Aktivieren von ACLs
Ubuntu aktiviert standardmäßig keine ACLs, daher gibt es eine einmalige Administratoranforderung. Bearbeiten Sie /etc/fstab
mit Ihrem bevorzugten Editor und ändern Sie jede Zeile, die einem Dateisystem entspricht, in dem Sie Dateien freigeben möchten: Fügen Sie diese acl
zu den Optionen hinzu. (Vergewissern Sie sich, dass Sie keine andere Zeile ändern und keinen Editor verwenden, der lange Zeilen umbricht.) Hier ist eine Beispielzeile mit der acl
hinzugefügten Option:
UUID=5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors=remount-ro,acl 0 1
Verwenden Sie einen Befehl wie den folgenden (für jedes Dateisystem), damit die Option zum ersten Mal wirksam wird:
sudo mount -o remount,acl /
Installieren Sie die ACL-Tools aus dem acl
Paket.
Einrichten des freigegebenen Verzeichnisses
So lassen Sie Dateien von der Gruppe freigeben mygroup
:
setfacl -m group:mygroup:rwx /path/to/shared/root
setfacl -d -m group:mygroup:rwx /path/to/shared/root
Wenn Benutzer Dateien erstellen und in das freigegebene Verzeichnis kopieren, sind die Dateien (aufgrund der umask) weltweit lesbar und jeder in der Gruppe kann Dateien hinzufügen und entfernen (da die Gruppe gruppenbeschreibbar ist). Die Leute können die Dateien der anderen nicht bearbeiten, aber das ist eine gute Sache, sonst stoßen Sie sofort auf Bearbeitungskonflikte.
Wenn Sie keine Unix-Gruppe haben, können Sie Benutzer einzeln hinzufügen:
setfacl -m user:bob:rwx /path/to/shared/root
setfacl -d -m user:bob:rwx /path/to/shared/root
Versionskontrolle
Wenn Sie möchten, dass Benutzer Dateien direkt bearbeiten können, müssen Sie auch Maßnahmen ergreifen, um Bearbeitungskonflikte zu vermeiden. Das ist Versionskontrolle.
Sie benötigen nichts davon, um ein Git-Repository freizugeben. Sie wissen, dass es Lösungen wie Gitosis gibt, also verwenden Sie sie.