file permissions - Ansible-Modo 755 para directorios y 644 para archivos de forma recursiva
file-permissions (2)
Me gustaría permitir que cualquiera enumere y lea todos los archivos en mi árbol de directorios, pero no quiero hacer que los archivos sean ejecutables:
dir
/subdir1
file1
/subdir2
file2
...
/subdirX
fileX
La siguiente tarea hace que mis directorios y archivos sean legibles, pero también hace que todos los archivos sean ejecutables:
- name: Make my directory tree readable
file:
path: dir
mode: 0755
recurse: yes
Por otro lado, si elijo el modo 0644, entonces todos mis archivos no son ejecutables, pero no puedo enumerar mis directorios.
¿Es posible establecer el modo 755 para todos los directorios y 644 para todos los archivos en un árbol de directorios?
Gracias.
Desde la versión 1.8, Ansible admite modos simbólicos. Por lo tanto, lo siguiente realizaría la tarea que desea:
- name: Make my directory tree readable
file:
path: dir
mode: u=rwX,g=rX,o=rX
recurse: yes
Porque X (en lugar de x) solo se aplica a directorios o archivos con al menos un conjunto de x bits.
Los módulos de archivo / copia de Ansible no le brindan la granularidad de especificar permisos basados en el tipo de archivo, por lo que lo más probable es que necesite hacer esto manualmente haciendo algo en este sentido:
- name: Ensure directories are 0755
command: find {{ path }} -type d -exec chmod -c 0755 {} /;
register: chmod_result
changed_when: "chmod_result.stdout != /"/""
- name: Ensure files are 0644
command: find {{ path }} -type f -exec chmod -c 0644 {} /;
register: chmod_result
changed_when: "chmod_result.stdout != /"/""
Estos tendrían el efecto de recurrir a través de
{{ path }}
y cambiar los permisos de cada archivo o directorio a los permisos especificados.