У цьому полягає проблема з багатокористувацькими системами, особливо якщо у вас є декілька з них. ;) Немає насправді приємного способу робити те, що ти хочеш. Підходи, що спадають на думку, були б
- мати однаковий UID для свого облікового запису на всіх машинах, якими ви користуєтесь зовнішнім накопичувачем (насправді це неможливо, оскільки, швидше за все, не всі машини знаходяться під вашим контролем)
- використання файлової системи, що не знає про конект власника / групи (FAT або NTFS, які приходять на думку, але ... ааа, ні)
Найефективнішим підходом було б повернення до загальних практик. У більшості (принаймні) систем Linux існує деякі групи, які зазвичай мають загальні GID. Наприклад users
, який має GID 100
на більшості дистрибутивів Linux. Якщо вам вдасться мати відповідний обліковий запис користувача у цій групі, ви могли б
- створіть усі файли та каталоги на своєму диску, що належать цій групі
- якось вдається мати відповідні групові дозволи на ці файли та каталоги
- якось вдається створити нові файли, створені відповідною груповою формою власності. дозволи.
Перший і другий пункт легко виконати ( chown
, chmod
). Третя точка стає трохи складнішою.
Частина "групового володіння" відносно проста: ви можете встановити біт SGID у всіх каталогах на диску. Біт SGID, застосований до каталогів, вказує на те, що ядро поводиться BSDish: BSD робить кожен файл / каталог, створений під певною групою каталогів, не належить основній групі процесу створення файлу / каталогу (як це робить Linux), власником батьківського каталогу.
Біт дозволу трохи важкий. На дозвіл новостворених файлів / каталогів (серед інших) впливає umask
, бітова маска, яка вказує, які біти не встановлювати, якщо явно не зазначено. Наприклад, загальне umask
значення полягає в тому 022
, що біти запису для "групи" та "інших" зазвичай не слід встановлювати. Ви можете змінити umask
на 002
, сказавши, що не хочете, щоб дозволи на запис видалялися для групи, але недоліком є те, що ви не можете встановити цей каталог на основі значень і зазвичай не хочете мати дозволу на запис для ваш основний набір груп для кожного створеного файлу.
Це може бути вирішена з допомогою списків управління доступом: В ACL ви можете встановити mask
і default
набір дозволів, який застосовується до всіх файлів і каталогів , створених усередині каталогу з цим набором ACL. Отже, одним із можливих варіантів вирішення вашої проблеми було б
- переконайтесь, що ви є членом загальної групи в усіх системах, на яких ви хочете використовувати зовнішній диск
- створіть усі файли та каталоги на вашому диску, які належать цій групі, і встановіть біт SGID у всіх каталогах
- змініть ACL всіх каталогів, щоб включити маску та дозволи за замовчуванням, які повідомляють ядру створити кожен новий файл / каталог із дозволом на запис для групи.
Дивіться setfacl(1)
та acl(5)
для отримання більш детальної інформації.