2010-10-15 10 views
8

Tengo un repositorio remoto de git en mi servidor. Cada vez que envío mi rama local al servidor, los archivos en ~/objetos tienen solo los permisos rw para mi cuenta específica (no mi grupo - git). Entonces, cuando mi amigo hace un esfuerzo con respecto a esos archivos en ~/objects, obtiene un error de permiso de derechos.Configurar los derechos de grupo correctos en un repositorio remoto de git

Hes en el mismo grupo: GIT, pero por supuesto no tiene los derechos de escritura (debido a que el grupo GIT has'nt)

¿Cómo le digo git para dar esos archivos los derechos de autorización, al conjunto git-group?

Gracias por su ayuda.

_christoph

Respuesta

1

recomiendo que usted tiene sus desarrolladores utilizar una cuenta de usuario común cuando se conecta al servidor de recompra remoto que se opera. Puede gestionar el acceso a través de claves SSH para no tener que preocuparse por distribuir/compartir contraseñas, etc.

Si desea seguir usando cuentas de usuario separadas, entonces esta pregunta fue respondida correctamente en serverfault: https://serverfault.com/questions/26954/how-do-i-share-a-git-repository-with-multiple-users-on-a-machine

es posible que desee ver en el uso gitosis para la ejecución de su propio repo: http://eagain.net/gitweb/?p=gitosis.git

buenas instrucciones de configuración están disponibles en gitosis http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way.

15

De git-config(1):

  • core.sharedRepository
    Cuando el grupo (o verdadero), el repositorio está hecho compartible entre varios usuarios en un grupo (asegurándose de que todos los archivos y objetos son el grupo con permisos de escritura) [...]

hacer esto en el servidor:

  1. Configurar el repositorio para compartir en grupo.
    Esto ensanchará a la fuerza umask para futuras operaciones de Git.

    cd /path/to/repository.git 
    git config core.sharedRepository group 
    
  2. de limpieza de los permisos existentes:

    chgrp -R git . 
    chmod -R g=u . 
    
  3. Fuerza propietario del grupo herencia para las nuevas entradas (no es necesario en los sistemas BSD, pero por lo general se necesitan en otros sistemas):

    find . -type d -print0 | xargs -0 chmod g+s 
    
Cuestiones relacionadas