Documentation
acl
Manage file Access Control Lists (ACLs).
ACLs provide fine-grained permission control beyond standard Unix permissions. They allow per-user and per-group permissions on files and directories. Useful for containers, IoT devices, and multi-user file sharing scenarios.
Attributes
check_mode:
support: full
Parameters
| Parameter | Required | Type | Values | Description |
|---|---|---|---|---|
| default | boolean | Set default ACL (inherited by new files in directory). [default: false] |
||
| group | string | The group to set ACL for (e.g. “developers”). | ||
| mode | string | The permissions mode (e.g. “r”, “rw”, “rwx”, “rX”). Required when state=present. | ||
| path | true | string | The full path to the file or directory. | |
| recurse | boolean | Apply ACLs recursively to directory contents. [default: false] |
||
| state | string | present absent query |
Whether the ACL should exist or not. Use query to retrieve current ACLs without changes. [default: "present"] |
|
| user | string | The user to set ACL for (e.g. “nginx”). |
Examples
- name: Give user nginx read access to a file
acl:
path: /etc/app/config.json
user: nginx
mode: "r"
- name: Give group developers read-write access
acl:
path: /data/project
group: developers
mode: "rw"
- name: Set default ACL for directory (inherited by new files)
acl:
path: /data/shared
user: appuser
mode: "rwx"
default: true
- name: Remove user ACL entry
acl:
path: /data/file.txt
user: olduser
state: absent
- name: Query current ACLs
acl:
path: /etc/app/config.json
state: query
register: file_acls
- name: Apply ACLs recursively
acl:
path: /data/project
user: nginx
mode: "rX"
recurse: true