Bueno, para no gitosis/configuración gitorious tiene dos opciones: en realidad
- dar a la gente las cuentas de Linux con conchas completos (contraseñas y/o claves SSH) para tener acceso al repositorio git.
- Ofrezca a las personas acceso a una cuenta de Linux a través de su clave ssh en
/home/ac/.ssh/authorized_keys2
cuyo shell está configurado en /usr/bin/git-shell
. Esto significa que no podrán iniciar sesión como usuarios de Linux con un intérprete de comandos, por lo que hacen todo lo que no sea usar git en su equipo.
En ambos casos, el usuario en cuestión necesita (leer | escribir | ambos) acceso al repositorio de git, de acuerdo con sus necesidades, ya sea como usuario o como parte de un grupo.
Podría tener sentido tener un directorio/git/proyecto y luego tener repositorios de usuarios allí, ya que tener varias personas presionando al mismo repositorio generalmente es una mala idea (las personas lo rompen demasiado fácilmente en mi experiencia) . Por ejemplo, puede tener /srv/git/proj/proj-ninefingers.git
y tener un repositorio de "liberación" de "/ srv/git/proj/project.git". Eso es probablemente lo que haría si ejecutara un esfuerzo de equipo.Permisos, proyectiles, etc. que se establecerán según corresponda.
Tenga en cuenta que si desea permitir exportaciones mediante el protocolo git de solo lectura, debe asegurarse de que el usuario git configurado tenga acceso de lectura y que git-daemon-export-ok
exista en su repositorio. git update-server-info
también debe ejecutarse antes de gitweb
recogerá el repositorio, en caso de que desee utilizar eso.
Como han dicho otros, git gc
optimiza el repositorio y es una buena idea hacerlo regularmente. ¿Trabajo de Cron?
Finalmente, existe una plétora de marcos para simplificar esto (gitosis, gitorious, ...). No creo que sea más fácil que proporcionar acceso a una carpeta a través de varios mecanismos, pero ese soy yo.
Como ejemplo de mi configuración, que sea sólo yo, que tengo:
$ cat /etc/passwd | grep git
git:x:1002:1002:Antony Vennard,,,:/home/git:/usr/bin/git-shell
gitdaemon:x:112:65534::/nonexistent:/bin/false
$ cat /etc/group | grep git
git:x:1002:
$ ls -l /srv/git
drwxr-xr-x 7 git git 4096 2010-09-12 23:31 bsdnt.git
drwxr-xr-x 7 git git 4096 2010-06-16 22:32 vforth.git
$ cat /home/git/.ssh/authorized_keys2
ssh-rsa somehex user1
ssh-rsa somehex user2
Esto significa que cualquier persona con la clave privada usuario1 puede conectarse y comprometerse a cualquiera de esos repositorios.
¿No sería esta la mejor opción para serverfault? – marcgg