Дозволи - це шкідник.
По суті, вам потрібно переконатися, що всі ці розробники можуть записати все, що є в git repo.
Перейдіть до Нового хвильового рішення для покращеного способу надання групі розробників можливості запису.
Стандартне рішення
Якщо ви розмістите всіх розробників у спеціально створеній групі, ви, в принципі, можете просто зробити:
chgrp -R <whatever group> gitrepo
chmod -R g+swX gitrepo
Потім змініть на, umask
щоб користувачі створювали 002
нові файли з дозволами, які можна записати для групи.
Проблеми з цим - легіон; якщо ви на дистрибутиві , який приймає umask
з 022
(наприклад, мають загальну users
групу , яка включає в себе всі за замовчуванням), то це може відкрити проблем безпеки в інших місцях. І рано чи пізно щось буде накручувати вашу ретельно продуману схему дозволів, виводячи репо з дії, поки ви не отримаєте root
доступ і не виправите це (тобто повторно запустіть вищезазначені команди).
Рішення нової хвилі
Прекрасне рішення - хоча і менш добре зрозуміле і яке потребує трохи більшої підтримки ОС / інструментів - полягає у використанні розширених атрибутів POSIX. Я прийшов у цю область лише нещодавно, тому мої знання тут не такі гарячі, як це могло б бути. Але в основному розширений ACL - це можливість встановлювати дозволи на більше ніж 3 слоти за замовчуванням (користувач / група / інші).
Тому ще раз створіть свою групу та запустіть:
setfacl -R -m g:<whatever group>:rwX gitrepo
find gitrepo -type d | xargs setfacl -R -m d:g:<whatever group>:rwX
Це встановлює розширений ACL для групи, щоб члени групи могли читати / записувати / отримувати доступ до файлів, які вже є (перший рядок); потім також скажіть усім існуючим каталогам, що до нових файлів має бути застосований цей самий ACL (другий рядок).
Сподіваюсь, що вас заведе на шляху.