파일 권한을 보존하는 chmod 명령

파일 권한을 보존하는 chmod 명령

이는 단일 명령을 실행 chmod하고 사용자 권한을 읽어야 하는 Ansible 자동화의 일부입니다. 그러므로,

chmod -R $fileperm <filename>

그러나 때때로 사용자가 아무것도 제공하지 않아 비어 있을 수 있습니다 fileperm. $fileperm이 경우 파일 권한은 동일하게 유지되어야 하지만 위 명령은 실패합니다.

chmod두 명령이 서로 다른 조건을 갖는 것을 원하지 않습니다 when.

가능하다면 동일한 명령에서 사용자가 권한을 제공하는지 여부를 수용하는 방법을 제안해 주시겠습니까? 현재 Ansible의 command모듈을 사용하여 chmod.

답변1

chmod패스 command하거나 전화 하지 마십시오 shell. 모듈을 사용하여 file권한을 설정합니다. 참조문서. 이는 멱등적입니다. 이 모듈은 파일/디렉토리의 현재 상태를 확인하고 필요한 경우에만 변경합니다.

이 경우 이 작업을 추가합니다.

- set_fact:
    files:
      - name: file1
        mode: 0755
      - name: file2
      - name: file3
        mode: 0644

- file:
    path: "{{ item.name }}"
    mode: "{{ item.mode | default(omit) }}"
  loop: "{{ files }}"

"때때로 사용자가 제공하지 않을 수도 있습니다"라는 말이 무슨 뜻인지 잘 모르겠습니다. Ansible은 상호작용성이 거의 없습니다. 그래서 무슨 뜻인지 잘 모르겠습니다. 또한 bash 변수에 대해 이야기하고 있습니다 $fileperm. 예를 들어 Ansible에는 "bash vars"가 없습니다. 그것들은 사실이며 Jinja를 사용하여 이를 평가합니다.

관련 정보