How do I allow shutdown for normal users in xfce?
Currently, the log-out/restart/shutdown box only allows the log-out option, and having to switch to the console, logging in as root and shutting down from there is always a bit annoying.
The xfce wiki offers a number of different solutions. The one I prefer uses hal and dbus.
Step 1: Find out how the user group for all things power is called in your distribution. Quoting the wiki:
Your /etc/dbus-1/system.d/hal.conf should contain a section similar to this:
<policy group="power">
<allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
...
</policy>
Here, the user group is called power. On my debian installation, I found it is called powerdev.
Step 2: Again, from the wiki:
Add the user to the power group (root):
gpasswd -a <username> power
When you logout and login again, the shutdown and restart buttons should be sensitive. Note: Reboot or restart of the deamons required; just logging out to the xdm login screen is not sufficient.
Edit: The solution above didn't work on a fresh install. The following trick worked (Source):
Create /etc/polkit-1/localauthority/50-local.d/shutdownreboot.pkla
and add the following:
[restart]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.restart
ResultAny=yes
[stop]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.stop
ResultAny=yes
Just as zebonaut said, most Linux distributions should ship a group called power
or powerdev
that has the permission to, well, control the system power. Just as you have a group audio
or audiodev
with access to the audio devices and netdev
for network devices, plugdev
, scanner
- you see the pattern.
Note that to see the changes take effect, you may need to log out and log in again. Group permissions are usually applied at login time.
Adding users to these groups will allow them to perform the shutdown action.
I have recently had this problem on Debian, and I solved it by installing the network-manager
package. I am not entirely sure how there is a connection, but I guess it is because of the dependencies it pulls in, maybe libpam-systemd
and/or libpolkit
. See dependencies here:
If anyone has an idea, please let me know how there is a connection.
Following on hochi's suggestion, I looked at the additional packages that would be installed with network-manager. One was called policykit-1. I installed that, which came with three other packages. I had to logout and then back in, but then the problem was fixed.