tortoise - ¿Cómo puedo configurar los permisos en Linux para que dos usuarios puedan actualizar la misma copia de trabajo SVN en el servidor?
tortoise svn server (4)
Mi servidor tiene tanto Subversion como Apache instalados, y el directorio web de Apache también es una copia de trabajo de Subversion. El motivo es que el comando simple svn update /server/staging
desplegará la última fuente en el servidor de transferencia.
Directorio web público Apache: /server/staging
- (Esta es una copia de trabajo SVN).
Tengo dos usuarios en mi servidor, ''richard'' y ''austin''. Ambos son miembros del grupo de "desarrolladores". Establecí recursivamente permisos en el directorio / server para richard: developers, usando "sudo chown -R richard: developers / server".
Luego establezco los permisos para leer, escribir y ejecutar tanto para ''richard'' como para el grupo ''developers''.
Entonces, seguramente, ''austin'' ahora debería poder usar el comando svn update /server/staging
? Sin embargo, cuando lo intenta, obtiene el error:
svn: Can''t open file ''/server/staging/.svn/lock'': Permission denied
Si cambio de forma recursiva el propietario de / server a austin: developers, puede ejecutar el comando muy bien, pero luego ''richard'' no puede.
¿Cómo soluciono el problema? Quiero crear un enganche post-commit con para desplegar automáticamente el sitio de ensayo cuando los archivos están comprometidos, pero no veo una manera de que funcione para ambos usuarios. El gancho sería:
/usr/bin/svn update /server/staging
Usar la misma cuenta de usuario para ambos no sería una solución aceptable, y no conozco ninguna forma de ejecutar el comando dentro del gancho como ''raíz''.
¡Cualquier ayuda es apreciada!
Configuraría svnserve
que es un servidor de Subversion simple que usa el protocolo svn://
. Puede configurarlo para que se ejecute bajo su propia cuenta de usuario, entonces solo un usuario tendrá acceso al repositorio. Este usuario podría tener los privilegios correctos para ejecutar svn update /server/staging
en un enlace post-commit.
Uso WebDAV: todas las actualizaciones y confirmaciones de SVN se manejan a través de apache y nunca tengo tales problemas.
en su repo svn, puede encontrar un directorio ''conf'' donde establece permisos. tienes 3 archivos allí:
- authz
- passwd
- svnserve.conf
establece en el archivo authz qué usuarios tienen qué tipo de acceso, por usuario o por grupo. usted establece grupos allí, grupos SVN no grupos de usuarios de Linux (las líneas hash son comentarios):
[groups]
# harry_and_sally = harry,sally
projectgroup = richard,austin
# [/foo/bar]
# harry = rw -- user harry has read/write access
# * = -- everybody have no access
# [repository:/baz/fuz]
# @harry_and_sally = rw -- harry_and_sally group members have read/write access
# * = r -- everyone has read access
[/server/staging]
@projectgroup = rw
* = r
trabaja alrededor de este ejemplo y configura tu configuración. en el archivo ''passwd'', configura las contraseñas de los usuarios. ejecutar
cat passwd
obtendrás un archivo comentado con una explicación sobre cómo configurarlo.
Directorio Establecer ID de grupo
Si se establece el bit setgid en una entrada de directorio, los archivos en ese directorio tendrán la propiedad del grupo como el directorio, en lugar del grupo del usuario que creó el archivo.
Este atributo es útil cuando varios usuarios necesitan acceso a ciertos archivos. Si los usuarios trabajan en un directorio con el setgid establecido, cualquier archivo creado en el directorio por cualquiera de los usuarios tendrá el permiso del grupo. Por ejemplo, el administrador puede crear un grupo llamado spcprj y agregar los usuarios Kathy y Mark al grupo spcprj. El directorio spcprjdir se puede crear con el conjunto de bits GID establecido y Kathy y Mark aunque en diferentes grupos primarios pueden trabajar en el directorio y tener acceso completo a todos los archivos en ese directorio, pero aún no pueden acceder a los archivos en el grupo primario .
El siguiente comando configurará el bit GID en un directorio:
chmod g+s spcprjdir
La lista del directorio del directorio "spcprjdir":
drwxrwsr-x 2 kathy spcprj 1674 Sep 17 1999 spcprjdir
La "s" en lugar del bit de ejecución en los permisos del grupo hace que todos los archivos escritos en el directorio "spcprjdir" pertenezcan al grupo "spcprj".
edit: source = Archivos Linux y permisos de archivos