Allow users to shutdown
Button and Lid events
The suspend, poweroff and hibernate button presses and lid close events are handled by logind as described in Power management#ACPI events page.
To check if your session is active
$ loginctl show-session $XDG_SESSION_ID --property=Active
The user can then use systemctl commands in the command line, or add them to menus:
$ systemctl poweroff $ systemctl reboot
Other commands can be used as well, including
systemctl suspend and
systemctl hibernate. See the System Commands section in
You can also run this over dbus with:
$ dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true $ dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.Reboot" boolean:true
Install , and give the user sudo privileges. The user will then be able to use the
sudo systemctl commands (e.g.
sudo systemctl poweroff,
sudo systemctl reboot,
sudo systemctl suspend and
sudo systemctl hibernate). See the System Commands section in
Users without sudo privileges
If users should only be allowed to use shutdown commands, but not have other sudo privileges, then, as root, add the following to the end of
/etc/sudoers using the
visudo command. Substitute user for your username and hostname for the machine's hostname.
user hostname =NOPASSWD: /usr/bin/systemctl poweroff,/usr/bin/systemctl halt,/usr/bin/systemctl reboot
Now your user can shutdown with
sudo systemctl poweroff, and reboot with
sudo systemctl reboot. Users wishing to power down a system can also use
sudo systemctl halt. Use the
NOPASSWD: tag only if you do not want to be prompted for your password.
For convenience, you can add these aliases to your user's
~/.bashrc if you have it enabled (or to
/etc/bash.bashrc for system-wide settings):
alias reboot="sudo systemctl reboot" alias poweroff="sudo systemctl poweroff" alias halt="sudo systemctl halt"
This can also be done by installing. This package creates symbolic links of the respective name to systemctl.