Dies ist das Problem bei Mehrbenutzersystemen, insbesondere wenn Sie mehr als eines davon haben. ;) Es gibt keine wirklich gute Möglichkeit, das zu tun, was du willst. Ansätze, die mir in den Sinn kommen, wären
- Auf jedem Computer, auf dem Sie Ihr externes Laufwerk verwenden, haben Sie dieselbe UID für Ihr Konto (tatsächlich nicht möglich, da höchstwahrscheinlich nicht alle Computer unter Ihrer Kontrolle stehen).
- Verwenden eines Dateisystems, das die Eigentümer- / Gruppenkonzepte nicht kennt (FAT oder NTFS in den Sinn kommt, aber ... aaah, nein)
Der effektivste Ansatz wäre die Rückkehr zu gängigen Praktiken. Auf den meisten (mindestens) Linux-Systemen gibt es einige Gruppen, die normalerweise gemeinsame GIDs haben. Zum Beispiel wäre das users, was GID 100auf den meisten Linux-Distributionen hat. Wenn Sie es schaffen könnten, Ihr jeweiliges Benutzerkonto in dieser Gruppe zu haben, könnten Sie
- Machen Sie alle Dateien und Verzeichnisse auf Ihrem Laufwerk zu Eigentum dieser Gruppe
- irgendwie schaffen, entsprechende Gruppenrechte für diese Dateien und Verzeichnisse zu haben
- irgendwie schaffen es neue dateien mit entsprechendem gruppenbesitz bzw. Berechtigungen.
Erster und zweiter Punkt sind leicht zu erreichen ( chown, chmod). Der dritte Punkt ist etwas kniffliger.
Der Teil "Gruppeneigentum" ist relativ einfach: Sie können das SGID-Bit für alle Verzeichnisse auf dem Laufwerk festlegen. Das SGID-Bit, das auf Verzeichnisse angewendet wird, weist den Kernel an, sich BSDisch zu verhalten: BSD legt fest, dass jede Datei / jedes Verzeichnis, das unter einer bestimmten Verzeichnisgruppe erstellt wird, nicht der primären Gruppe des Prozesses gehört, der die Datei / das Verzeichnis erstellt (wie Linux), sondern vom Besitzer des Elternverzeichnisses.
Das Erlaubnisbit ist ein bisschen hart. Berechtigungen für neu erstellte Dateien / Verzeichnisse werden (unter anderem) durch umaskeine Bitmaske beeinflusst, die angibt, welche Bits nicht gesetzt werden sollen, wenn dies nicht ausdrücklich angegeben wird. Ein üblicher umaskWert ist beispielsweise 022, dass die Schreibbits für »Gruppe« und »andere« normalerweise nicht gesetzt werden sollten. Sie könnten Ihre ändern umaskzu 002wollen sagen Sie nicht , daß die Schreibberechtigungen für die Gruppe gelöscht werden , aber der Nachteil ist , dass Sie nicht dieser Wert verzeichnisbasierte einstellen und Sie in der Regel nicht wollen , Schreibberechtigungen haben für Ihre primäre Gruppe für jede Datei, die Sie erstellen.
Dies kann mithilfe von ACLs behoben werden: In einer ACL können Sie einen maskund einen defaultBerechtigungssatz festlegen, der für alle Dateien und Verzeichnisse gilt, die in einem Verzeichnis mit diesem ACL-Satz erstellt wurden. Eine mögliche Lösung für Ihr Problem wäre also
- Stellen Sie sicher, dass Sie auf allen Systemen, auf denen Sie Ihr externes Laufwerk verwenden möchten, Mitglied einer gemeinsamen Gruppe sind
- Machen Sie alle Dateien und Verzeichnisse auf Ihrem Laufwerk zu Eigentum dieser Gruppe und setzen Sie das SGID-Bit für alle Verzeichnisse
- Ändern Sie die Zugriffssteuerungsliste aller Verzeichnisse so, dass sie eine Maske und Standardberechtigungen enthält, die den Kernel anweisen, jede neue Datei / jedes neue Verzeichnis mit für die Gruppe festgelegten Schreibberechtigungen zu erstellen.
Siehe setfacl(1)und acl(5)für weitere Details.