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.
Just as zebonaut said, most Linux distributions should ship a group called
powerdev that has the permission to, well, control the system power. Just as you have a group
audiodev with access to the audio devices and
netdev for network devices,
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.
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):
/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
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
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.