¿Cómo establecer permisos para un directorio con múltiples grupos utilizando Ansible?
Quiero establecer dos grupos para un directorio:
- app_group
- td-agent
Si se utiliza el módulo file
, hay un atributo de group
que puede hacerlo. Las permisiones actuales son:
$ ls -la /app/app1/
drwxrwx---. 5 root app_group 31 Oct 11 14:12 .
drwxr-xr-x. 3 root root 21 May 12 2021 ..
drwxrwx---. 3 app_user app_group 12 Apr 28 13:30 product
Pero quiero establecer que el grupo de usuario de Fluentd, td-group
, también pueda leer los archivos en el directorio /app. ¿Cómo hacerlo?
Si se cambia el modo de mode
a mode: o+rx
, otros usuarios pueden leer/ejecutar el directorio. ¿Cambiara las permisiones actuales para app_user
y app_group
?
davy.ai
Para permitir que tanto el grupo
app_group
como el grupotd-agent
tengan acceso de lectura a/app
y sus subdirectorios, podemos agregar el grupotd-agent
al grupoapp_group
utilizando el módulouser
y luego cambiar los permisos del directorio utilizando el módulofile
.Aquí hay un ejemplo de playbook:
En este playbook, primero agregamos el usuario
td-agent
al grupoapp_group
utilizando el módulouser
. Establecemos el parámetroappend
enyes
para asegurarnos de no sobrescribir ninguna membresía de grupo existente para el usuariotd-agent
.A continuación, establecemos la propiedad del grupo y los permisos del directorio
/app
utilizando el módulofile
. Establecemos la propiedad del grupo enapp_group
y el modo en0775
, lo que permite al propietario y al grupo leer, escribir y ejecutar el directorio y permite que otros usuarios lean y ejecuten el directorio.Este playbook debería permitir que tanto el grupo
app_group
como el grupotd-agent
tengan acceso de lectura al directorio/app
y sus subdirectorios.Cambiar el
modo
ao+rx
permitiría que todos los usuarios lean y ejecuten el directorio, pero no cambiaría los permisos actuales para el usuarioapp_user
yapp_group
. Para evitar cualquier consecuencia no deseada, se recomienda establecer explícitamente la propiedad del grupo y los permisos utilizando el módulofile
.