feat(power): Allow user to manage system power states

User is put into the 'power' group, and everyone in the group can
interact with system power events (hibernate, suspend, reboot, shutdown,
halt, etc).
This commit is contained in:
Marty Oehme 2025-02-25 20:49:42 +01:00
parent 2a25c840b8
commit f19ac8bce8
Signed by: Marty
GPG key ID: 4E535BC19C61886E

View file

@ -99,3 +99,30 @@
## TODO: Enable its start in river init script
#
# TODO: Find way to install and enable pipewire-roc-sink module (and enable ~/.config/pipewire/pipewire.conf.d/roc-sink.conf)
- name: Allow user to manage system power
hosts: target_system
become: true
tags:
- power
tasks:
- name: Ensure user group "power" exists
ansible.builtin.group:
name: power
state: present
- name: Put user in power group
ansible.builtin.user:
name: "{{ user_name }}"
groups: [power]
append: true
- name: Enable power management for power group
ansible.builtin.copy:
content: "%power ALL=(ALL) NOPASSWD: /usr/bin/halt, /usr/bin/poweroff, /usr/bin/reboot, /usr/bin/shutdown, /usr/bin/zzz, /usr/bin/ZZZ"
dest: "/etc/sudoers.d/20-wheel"
owner: root
group: root
mode: 0644
force: true