Разрешения являются вредителями.
По сути, вам нужно убедиться, что все эти разработчики могут писать обо всем в репозитории git.
Перейдите к Решению New-Wave для превосходного метода предоставления возможности записи группе разработчиков.
Стандартное решение
Если вы поместите всех разработчиков в специально созданную группу, вы в принципе можете просто:
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 (вторая строка).
Надеюсь, это поможет вам.