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 100
auf 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 umask
eine Bitmaske beeinflusst, die angibt, welche Bits nicht gesetzt werden sollen, wenn dies nicht ausdrücklich angegeben wird. Ein üblicher umask
Wert ist beispielsweise 022
, dass die Schreibbits für »Gruppe« und »andere« normalerweise nicht gesetzt werden sollten. Sie könnten Ihre ändern umask
zu 002
wollen 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 mask
und einen default
Berechtigungssatz 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.