I have been using simple privilege escalation to poweroff the machine, but looking through the source code for s6-linux-init-shutdownd and friends, it appears the only constraint on interacting with the daemon is the permissions on run-image/service/s6-linux-init-shutdownd/fifo. The default appears to be: 600 root root I've changed it on my system to be: 620 root power and added my user to the power group. This seems like the cleanest way to implement unprivileged poweroff/reboot, but I'm concerned that it's not possible by default. Is there a better way, or is it just meant to be done manually?
No, you are correct that it is the right mechanism. Allowing unprivileged shutdown is a dangerous operation and should only be done is very specific circumstances (i.e. when a normal user has complete seat and console access), so it's not the default and the mechanism is fairly hidden. If there's demand, I can probably write a s6-linux-init-shutdown-perms program in a future version that would let you specify the user/group allowed to shutdown, rather than having you manually tinker with the fifo. -- Laurent