Списки контролю доступу
Пряма відповідь - списки контролю доступу (ACL) . Так, ви можете знайти контрприклад, але вони на практиці достатньо хороші (на відміну від простої групової записуваності, яка вимагає, щоб користувачі думали про це постійно). Вони вимагають, щоб системний адміністратор (root) визначав групи, якщо ви хочете, щоб файли мали спільний доступ лише з названою групою (root може вибрати делегування, наприклад, приймаючи групи від LDAP, але це вже інша історія).
Користувачам, які беруть участь у програмі, потрібно мати номер 022. Якщо вони створюють непрочитані файли, які не можна прочитати, ця схема не працюватиме. Але якщо вони мають обмежувальний умаск, це, мабуть, тому, що вони все одно не хочуть ділитися файлами.
Увімкнення ACL
Ubuntu за умовчанням не вмикає ACL, тому існує разова вимога адміністратора. Відредагуйте /etc/fstab
за допомогою улюбленого редактора та змініть кожну лінію, що відповідає файловій системі, де ви хочете ділитися файлами: додайте acl
до параметрів. (Переконайтеся, що не змінюйте жодного іншого рядка та не використовуйте редактор, який обертає довгі рядки.) Ось приклад рядка з acl
доданою опцією:
UUID=5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors=remount-ro,acl 0 1
Щоб опція набула чинності вперше, використовуйте таку команду, як наступна (для кожної файлової системи):
sudo mount -o remount,acl /
Встановіть у acl
пакет інструменти ACL .
Налаштування спільного каталогу
Щоб група спільно використовувала файли mygroup
:
setfacl -m group:mygroup:rwx /path/to/shared/root
setfacl -d -m group:mygroup:rwx /path/to/shared/root
Якщо люди створюють файли та копіюють їх у спільний каталог, файли будуть читатими у всьому світі (через umask), і будь-хто в групі може додавати та видаляти файли (оскільки група може записувати групу). Люди не можуть редагувати файли один одного, але це добре, або ви зіткнулися з редагуванням конфліктів відразу.
Якщо у вас немає групи Unix, ви можете додавати користувачів по одному:
setfacl -m user:bob:rwx /path/to/shared/root
setfacl -d -m user:bob:rwx /path/to/shared/root
Контроль версій
Якщо ви хочете, щоб люди могли редагувати файли на місці, вам також потрібно щось, щоб запобігти редагуванню конфліктів. Це контроль версій.
Вам не потрібно нічого з цього для спільного використання сховища git. Ви знаєте, що існують такі рішення, як гітоз, тому використовуйте їх.