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.
Mach einfach das:
Jetzt kann jeder in der
teamA
Gruppe alles drinnen machen/src/teamA
Die Magie ist das sgid-Bit (set group id) im Verzeichnis.
quelle
Wenn Sie möchten, dass Benutzer auf Dateien in einem freigegebenen Ordner zugreifen können (z. B. wenn sich verschiedene Personen zu unterschiedlichen Zeiten auf demselben Computer anmelden und Zugriff auf dieselben Dateien benötigen), können Sie
bindfs
ein freigegebenes Verzeichnis erstellen.Es ermöglicht mehreren lokalen Benutzern, alle Dateien (einschließlich der neu erstellten) aus einem freigegebenen Verzeichnis und seinen Unterverzeichnissen zu lesen und zu schreiben (zu erstellen, zu löschen, umzubenennen, zu ändern ...). Jeder Benutzer sieht die Dateien und Ordner (einschließlich der neu erstellten) als zu ihnen gehörend.
Kurz, du rennst
um / home / shared für Benutzer1, Benutzer2 und Benutzer3 verfügbar zu machen.
Anleitung
Siehe Bindfs-SharedDirectoryLocalUsers (Ubuntu - Dokumentation) für ausführliche Anleitungen, es einschließlich der Einrichtung dauerhaft (jedes Mal , wenn Sie schalten Sie Ihren Computer auf). Ich verwende dies auf meinem eigenen Computer für eine Reihe von Verzeichnissen mit jeweils unterschiedlichen Freigabegruppen (ein Ordner ist für alle Konten verfügbar, ein anderer nur für Arbeitskonten, ein anderer nur für persönliche Konten).
Von der Post:
Zugriffssteuerungslisten (ACLs)
Die Dokumentation stellt fest:
Siehe Gilles Antwort für weitere Details.
quelle
Sie können die Lösung von shellholic mit einem Cron-Job kombinieren, der die GID für alle Dateien in diesem Ordner alle 15 Sekunden aktualisiert oder Ähnliches.
quelle