Git – permitiendo acceso de escritura

Configuración de un server de git donde varios usuarios podrán realizar cambios.

Mucha de la documentation para esto sugiere darles acceso de escritura al repository y usar SSH para hacer control de acceso. por ejemplo, http://git-scm.com/book/ch4-2.html sugiere esto incluso para cientos de usuarios. La gitosis parece continuar con el mismo enfoque, lo que permite a SSH escribir el acceso al repository.

Entonces mi pregunta es:

¿Qué debe detener el ssh server "rm -r /home/git/the_repository" alguien ssh server "rm -r /home/git/the_repository" ?

¿Es realmente el caso que en una installation típica, las personas con derechos de confirmación en un repository compartido obtienen suficiente acceso al sistema de files para eliminarlo?

La forma moderna de lograr lo que busca lograr es a través de gitolite , que le permite a usted, como administrador de repo, definir reglas de acceso de grano relativamente fino.

gitolite identifica a los usuarios con keys ssh para que los usuarios ni siquiera tengan que tener acceso de shell al server.

La documentation de gitolite es en mi experiencia bastante buena.

No debe permitir que los usuarios accedan al shell en la máquina del repository.

Si va a hacer el control de acceso de esta manera, los commands ejecutables de los usuarios deberían estar restringidos a git .

Sin embargo, esto no les impedirá hacer otras cosas desagradables como empujar references vacías para cada una de sus twigs. Si no confía en las personas que usarán el repository central, necesita un sistema de permissions más detallado.

Recomendaría Gerrit para este propósito. Incluso si no lo usa para revisiones de código, todavía proporciona un sistema de administración y permissions en torno a git.

Otra opción es presionar sobre HTTP en lugar de SSH; los serveres HTTP proporcionan restricciones adicionales que puede configurar para evitar daños.