file-permissions ansible

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.