在 Ansible 中删除目录时权限被拒绝
Permission denied when deleting directory in Ansible
我有一个任务只是在用户 'foo' 的主目录中创建目录,如下所示:
---
- name: Create bar directory
become: yes
become_user: foo
file:
path: "/home/foo/bar"
state: directory
owner: foo
group: foo
mode: 755
这工作正常,但是当我尝试 运行 任务删除上述任务创建的目录时,出现以下错误:
TASK: [a task | Create bar directory]
failed: [192.168.50.4] => {"failed": true}
msg: rmtree failed: [Errno 13] Permission denied: '/home/foo/bar'
FATAL: all hosts have already failed -- aborting
下面是删除任务
---
- name: Create bar directory
become: yes
become_user: foo
file:
path: "/home/foo/bar"
state: absent
我确认创建的目录归 'foo' 所有,因此该目录应该可以被 'foo' 删除。为什么我会收到权限被拒绝的错误?
虽然该目录归正确的用户所有,但我意识到该目录的权限设置不正确,即 drwxr-xr-x
。
问题是 mode: 755
,这似乎根本不是问题。但是我需要在 755
之前添加 0
以使其按预期工作。
Example in official document
我有一个任务只是在用户 'foo' 的主目录中创建目录,如下所示:
---
- name: Create bar directory
become: yes
become_user: foo
file:
path: "/home/foo/bar"
state: directory
owner: foo
group: foo
mode: 755
这工作正常,但是当我尝试 运行 任务删除上述任务创建的目录时,出现以下错误:
TASK: [a task | Create bar directory]
failed: [192.168.50.4] => {"failed": true} msg: rmtree failed: [Errno 13] Permission denied: '/home/foo/bar'
FATAL: all hosts have already failed -- aborting
下面是删除任务
---
- name: Create bar directory
become: yes
become_user: foo
file:
path: "/home/foo/bar"
state: absent
我确认创建的目录归 'foo' 所有,因此该目录应该可以被 'foo' 删除。为什么我会收到权限被拒绝的错误?
虽然该目录归正确的用户所有,但我意识到该目录的权限设置不正确,即 drwxr-xr-x
。
问题是 mode: 755
,这似乎根本不是问题。但是我需要在 755
之前添加 0
以使其按预期工作。
Example in official document