무언가, 나는 이것을 할 수있다 :
file: dest=/foo/bar/somedir owner=root group=apache mode=0775 recurse=yes
그리고이 경로의 모든 디렉토리와 파일에 대해 소유자, 그룹 및 권한을 재귀 적으로 0775로 설정합니다. 하지만 디렉토리를 0775로 설정하고 파일을 0664로 설정하려고합니다. 이렇게 할 수있는 방법이 있습니까?
답변
file: dest=/foo/bar/somedir owner=root group=apache mode=u=rwX,g=rX,o=rX recurse=yes
디렉토리를 755로 설정하고 파일을 644로 설정합니다.
답변
Ansible 파일 / 복사 모듈은 다음과 같은 세분성을 제공하지 않습니다.
파일 유형에 따라 권한을 지정하면
이 줄을 따라 뭔가를함으로써 수동으로 이것을하십시오 :- name: Ensure directories are 0755 command: find {{ path }} -type d -exec chmod 0755 {} \; - name: Ensure files are 0644 command: find {{ path }} -type f -exec chmod 0644 {} \;
이것들은
{{ path }}
과
모든 파일 또는 디렉토리의 권한을 지정된 파일로 변경
사용 권한.
답변
모듈 파일을 사용할 수있게하려면 다음을 수행 할 수 있습니다.
파일 : dest = / foo / bar / somedir 소유자 = 루트 그룹 = apache 모드 = 0644 recurse = yes
file : dest = / foo / bar / somedir owner = 루트 그룹 = 아파치 모드 = 0775
이 방법을 사용하면 먼저 모든 파일 (recurse = yes)을 ‘644’로 설정 한 다음 / foo / bar / somedir을 ‘775’로 설정합니다.
플레이 북을 재생할 때마다 디렉토리 사용 권한이 변경되므로 완벽하지 않습니다.
적어도 모듈 명령과는 달리 멱등수입니다.
‘변경됨’상태를 원하지 않으면 module stat를 사용할 수 있습니다. / foo / bar / somedir에있는 모든 파일과 디렉토리를 나열하여 응답을 등록한 다음 해당 파일에 대해서만 루프를 만들 수 있습니다.
답변
나는 얼마나 많은 감각이 0775에 전화 번호부를 놓을 것인지에 관해 명확히하지 않는다 ( rwxrwxr-x
) 및 파일을 0644 ( rw-r--r--
) : 그룹으로 쓸 수있는 디렉토리는 있지만 파일은 아닌가?
파일을 0664 ( rw-rw-r--
) 디렉토리가 가로 지르는 동안 파일이 실행 가능하지 않게하려면 오직 하나만 포함하는 우아한 해결책이 있습니다 chmod
명령:
chmod -c -R ug=rw,o=r,a-x+X "{{top_dir}}"
여기에 어떻게 사용할 수 있을까요? 책임감있는 :
- name: recursive chmod example
command: |
chmod -c -R ug=rw,o=r,a-x+X "{{item}}"
register: chmod_status
changed_when: chmod_status.stdout != ""
with_items:
- "/home/user/sample/dir"
chmod -c
“변경됨”상태를 채우기 위해 편리하게 사용할 수있는 모든 변경 사항을 인쇄합니다. 책임감있는 . 나는 그것이 의미가 있기를 바랍니다.
답변
필요한 경우에만 개조 변경 :
- name: make dirs 0755
command: find {{ your_path }} -type d ! -perm 0755 -exec chmod 0755 {} \;
- name: make files 0644
command: find {{ your_path }} -type f ! -perm 0644 -exec chmod 0644 {} \;