我编写了一个脚本来备份我们的服务器。它在多个 Oracle Linux 7/8/9 系统上以“备份”用户身份运行,并且必须使用 restic 备份其他用户主目录等。我使用 Ansible 部署了此脚本,并使用 Ansible 在要备份的目录上设置了 ACL。
这是在我想要备份的目录上设置正确 ACL 的相关部分:
- name: give read/exec access to backup user on all folders to backup
ansible.posix.acl:
path: "{{ item }}"
entry: "u:{{ backup_user }}:rX"
state: present
recursive: true
with_items:
- "{{ paths_to_back_up }}"
- name: give default read/exec access to backup user on all folders to backup
ansible.posix.acl:
path: "{{ item }}"
entry: "d:u:{{ backup_user }}:rX"
state: present
recursive: true
with_items:
- "{{ paths_to_back_up }}"
- name: set default mask on all folders to backup
ansible.posix.acl:
path: "{{ item }}"
etype: mask
permissions: "rX"
state: present
recursive: true
with_items:
- "{{ paths_to_back_up }}"
有时,备份用户无法读取 .bashrc 文件或 .config 文件夹。似乎这些文件的模式更改为 600,这意味着“备份”用户的权限限制为 0。
我显然做错了什么,但我不知道是什么问题,这让我发疯。