2017-01-26 4 views
2

Использование анзибль 2.1.4.0анзибль - найти и установить права доступа, в том числе липкий бит

Можно ли установить sticky bit и папки разрешения в 1 задачи?

Пример;

# Shell is used over find module cause symlink breaks and performance 

- name: Find directories in /tmp which are not valid 
    shell: find 
    /tmp/test -type d 
    \(! -user root -o ! -group root -o ! -perm 775 \) 
    register: find1 

- name: Set 775 for found directories 
    file: 
    path: "{{ item }}" 
    owner: root 
    group: vagrant 
    mode: 0775 
    state: directory 
    with_items: "{{ findPermission1.stdout_lines | default([]) }}" 


- name: Find directories in /tmp which have no sticky bit 
    shell: find 
    /tmp/test -type d 
    \! -perm /1000 
    changed_when: false 
    register: find2 

- name: Set permissions for found directories 
    file: 
    path: "{{ item }}" 
    owner: root 
    group: vagrant 
    mode: g+s 
    state: directory 
    recurse: no #cause it already found recurse 
    with_items: "{{ find.stdout_lines | default([]) }}" 

Прямо сейчас у меня должно быть 2 разных задания для установки разрешений. Но они переписывают друг друга.

Цель: установить разрешение 775 и g + s в одну задачу.

ответ

1

Цель: установить разрешение 775 и g + s в одну задачу.

- name: Set permissions for found directories 
    file: 
    path: "{{ item }}" 
    owner: root 
    group: vagrant 
    mode: 02775 
    state: directory 
    recurse: no #cause it already found recurse 
    with_items: ____ 

Но я не понимаю, почему вы проверяли на SUID (-perm /1000) и установка SGID (g+s) в коде. Я также не знаю, что такое значение find, потому что вы зарегистрировали find1 и find2, но не find.

Я также не вижу необходимости указывать условия поиска, поскольку модуль Ansible является idempotent/declarative и вы хотите, чтобы все каталоги имели одинаковые разрешения, поэтому вы можете полагаться на Ansible.

 Смежные вопросы

  • Нет связанных вопросов^_^