Los permisos son una plaga.
Básicamente, debe asegurarse de que todos esos desarrolladores puedan escribir a todo en el repositorio de git.
Vaya a The New-Wave Solution para obtener el método superior de otorgar capacidad de escritura a un grupo de desarrolladores.
La solución estándar
Si coloca a todos los desarrolladores en un grupo creado especialmente, puede, en principio, simplemente hacer lo siguiente:
chgrp -R <whatever group> gitrepo
chmod -R g+swX gitrepo
Luego cambie el umask
para que los usuarios 002
lo hagan, de modo que se creen nuevos archivos con permisos de escritura grupal.
Los problemas con esto son legión; Si está en una distribución que asume una umask
de 022
(como tener un users
grupo común que incluye a todos por defecto), esto puede abrir problemas de seguridad en otros lugares. Y tarde o temprano, algo arruinará su esquema de permisos cuidadosamente diseñado, poniendo el repositorio fuera de acción hasta que obtenga root
acceso y lo arregle (es decir, vuelva a ejecutar los comandos anteriores).
La solución de la nueva ola
Una solución superior, aunque menos comprendida, y que requiere un poco más de soporte de sistema operativo / herramienta, es utilizar atributos extendidos POSIX. Solo he venido a esta área hace poco, así que mi conocimiento aquí no es tan bueno como podría ser. Pero, básicamente, una ACL extendida es la capacidad de establecer permisos en más que solo las 3 ranuras predeterminadas (usuario / grupo / otro).
Entonces, una vez más, crea tu grupo, luego ejecuta:
setfacl -R -m g:<whatever group>:rwX gitrepo
find gitrepo -type d | xargs setfacl -R -m d:g:<whatever group>:rwX
Esto configura la ACL extendida para el grupo para que los miembros del grupo puedan leer / escribir / acceder a cualquier archivo que ya esté allí (la primera línea); luego, también indique a todos los directorios existentes que los archivos nuevos deben tener esta misma ACL aplicada (la segunda línea).
Espero que te ponga en tu camino.