Taki jest problem z systemami wieloużytkownikowymi, szczególnie jeśli masz więcej niż jeden z nich. ;) Nie ma naprawdę fajnego sposobu na robienie tego, co chcesz. Przychodzą mi na myśl podejścia
- posiadanie tego samego identyfikatora UID dla konta na każdej maszynie, z której korzystasz z zewnętrznego dysku (w rzeczywistości nie jest to możliwe, ponieważ najprawdopodobniej nie wszystkie maszyny są pod twoją kontrolą)
- za pomocą systemu plików nieświadomy pojęcia właściciela / grupy (przychodzi mi na myśl FAT lub NTFS, ale… aaah, nie)
Najbardziej skutecznym podejściem byłoby powrót do powszechnych praktyk. W większości (przynajmniej) systemów Linux istnieją grupy, które mają zwykle wspólne identyfikatory GID. Na przykład byłoby users, który ma GID 100na większości dystrybucji Linuksa. Jeśli możesz mieć swoje konto użytkownika w tej grupie, możesz
- utwórz wszystkie pliki i katalogi na dysku należące do tej grupy
- jakoś udało się mieć odpowiednie uprawnienia grupowe do tych plików i katalogów
- jakoś udało się stworzyć nowe pliki z odpowiednimi odpowiednikami własności grupy. uprawnienia.
Pierwszy i drugi punkt są łatwe do osiągnięcia ( chown, chmod). Trzeci punkt jest nieco trudniejszy.
Część „własności grupowej” jest stosunkowo łatwa: możesz ustawić bit SGID we wszystkich katalogach na dysku. Bit SGID zastosowany do katalogów informuje jądro, aby zachowywało się w sposób BSDish: BSD sprawia, że każdy plik / katalog utworzony w określonej grupie katalogów nie należy do podstawowej grupy procesu tworzącego plik / katalog (jak Linux), ale przez właściciela katalogu nadrzędnego.
Bit zgody jest trochę trudny. Na uprawnienia do nowo utworzonych plików / katalogów wpływa (między innymi) umaskmaska bitowa, która określa, których bitów nie należy ustawiać, jeśli nie jest to wyraźnie określone. Na umaskprzykład wspólną wartością jest to 022, że bity zapisu dla „grupy” i „innych” zwykle nie powinny być ustawione. Możesz zmienić umaskna 002, mówiąc, że nie chcesz, aby uprawnienia do zapisu były usuwane dla grupy, ale wadą jest to, że nie możesz ustawić tej wartości w oparciu o katalog i zwykle nie chcesz mieć uprawnień do zapisu dla Twój podstawowy zestaw grup dla każdego tworzonego pliku.
To może być rozwiązany przy użyciu listy ACL: W ACL można ustawić maskoraz defaultzestaw uprawnień, które odnosi się do wszystkich plików i katalogów tworzonych wewnątrz katalogu z tego zestawu ACL. Jednym z możliwych rozwiązań Twojego problemu byłoby
- upewniając się, że jesteś członkiem wspólnej grupy we wszystkich systemach, na których chcesz używać dysku zewnętrznego
- utwórz wszystkie pliki i katalogi na dysku należące do tej grupy i ustaw bit SGID we wszystkich katalogach
- zmień listę ACL wszystkich katalogów, aby uwzględnić maskę i domyślne uprawnienia, które każą jądru tworzyć każdy nowy plik / katalog z ustawionymi uprawnieniami do zapisu dla grupy.
Zobacz setfacl(1)i acl(5)po więcej szczegółów.