En mi servidor tengo directorio /srv/svn
.
¿Es posible configurar este directorio para tener múltiples propietarios de grupos, por ejemplo devFirmA
, devFirmB
y devFirmC
?
El punto es que quiero subversion
controlar el control de versiones de múltiples usuarios en múltiples repositorios y no sé cómo fusionar /srv/svn
, el directorio raíz de repositorios, los permisos. Tengo, por ejemplo, tres empresas FirmA
, FirmB
y FirmC
. Ahora, en el interior /srv/svn
He creado tres directorios, FirmA
, FirmB
, FirmC
y dentro de ellos he creado repositorio para cada proyecto y ahora no sé cómo establecer esquema de permisos ya que todos los elementes interior /srv/svn
son propiedad de root:root
, lo que no está bien, o soy yo ¿incorrecto?
permissions
group
subversion
Panico kernel
fuente
fuente
Respuestas:
Este es un problema extremadamente común, si lo entiendo con precisión y lo encuentro constantemente. Si usara ACL para cada problema de agrupación trivial, tendría toneladas de sistemas inmanejables. Están utilizando la mejor práctica cuando no puede hacerlo de otra manera, no para esta situación. Este es el método que recomiendo encarecidamente.
Primero debe configurar su umask en 002, esto es para que un grupo pueda compartir consigo mismo. Por lo general, creo un archivo como
/etc/profile.d/firm.sh
y luego agrego un comando de prueba con la umask.[ $UID -gt 10000 ] && umask 002
A continuación, debe configurar los directorios en sus respectivos grupos,
Finalmente, debe establecer el bit SGID correctamente, por lo que el grupo siempre se mantendrá en el que configuró. Esto evitará que un archivo escrito se establezca en el GID del escritor.
Ahora, finalmente, si desea evitar que otros usuarios accedan a los directorios.
fuente
svnadmin
:sudo usermod -a -G FirmA,FirmB,FirmC svnadmin
Esto se agregarásvnadmin
a todos estos grupos. Dado que los archivos en todos estos grupos tienen habilitada la 'escritura grupal' (chmod 664
hizo esto), usted, más firmX, serán los únicos escritores de archivos propiedad de firmX.find /srv/svn/FirmA -type f -print0 | xargs -0 chmod ug+rw,o+r,o-wx
Solo puede tener un grupo como propietario .
Sin embargo, utilizando las listas de control de acceso puede definir permisos para otros grupos.
Verifique si tiene ACL instalado emitiendo el comando
getfacl
. Si su sistema no tiene ACL instalado, instale las herramientas de línea de comandos que se encuentran en elacl
paquete con:sudo apt-get install acl
Con
getfacl
usted puede leer la información de ACL de un directorio u otro archivo, y consetfacl
usted puede agregar grupos a un archivo.Por ejemplo:
Agrega el grupo
devFirmB
con permisos r ead, w rite, e x ecute al directorio/srv/svn
.Si también desea que los archivos creados en ese directorio sean propiedad de varios grupos, configure la ACL como la ACL predeterminada. La entrada
X
en el grupo predeterminado significa "permitir la ejecución si es ejecutable por el propietario (o cualquier otra persona)".fuente
No es posible tener un archivo propiedad de varios grupos de Linux con permisos tradicionales de Unix. (Sin embargo, es posible con ACL ).
Pero puede utilizar la siguiente solución y crear un nuevo grupo (por ejemplo, llamado
devFirms
) que incluirá a todos los usuarios de los gruposdevFirmA
,devFirmB
ydevFirmC
.Crea nuevos grupos de usuarios con:
Primero, puede que tenga que instalar
id-utils
para obtener ellid
comando:A continuación, puede ejecutar la siguiente línea de código para copiar fácilmente a todos los usuarios de
SOURCEGROUP
aTARGETGROUP
. Por supuesto, debe ejecutar el comando una vez para cada grupo que desee copiar. No olvide reemplazar los marcadores de posición con mayúscula por los nombres de grupo reales.Entonces, en su caso, tendría que ejecutar el comando (todas las líneas a la vez):
Tenga en cuenta que estos comandos solo copian a todos los usuarios que son miembros actuales de los grupos de origen. Cada usuario que se agregue más tarde también tendrá que agregarse manualmente a su grupo común con el
adduser
comando. Simplemente reemplace los marcadores de posición en mayúsculas con el nombre real del usuario y grupo (devFirms
):Gracias a Justin Ethier por su respuesta en Unix y Linux. SE: ¿Agregar todos los usuarios de un grupo a otro?
fuente
No, esto no es posible.
Cada archivo (y también los directorios) solo puede tener un usuario y un grupo.
fuente
Para proporcionar diferentes derechos a múltiples grupos o usuarios, use los siguientes comandos (Probado en RHEL 6 y 7):
Para hacer un nuevo propietario del grupo:
Para verificar la configuración actual de acl:
fuente