If more than one person is logged in on my computer, Ubuntu requires super user authentication when shutting down the computer. How can I make it so that any user can shutdown the computer without being asked for a password?
-
3+1 I suspect entering a password to shutdown annoys many users on a home based PC.– Richard HollowayAug 6, 2010 at 14:05
-
7If you shut down a computer while others are logged in, what happens to their open windows? Their open documents? I think anything that doesn't autosave is simply lost. This is worth considering.– Torben Gundtofte-BruunFeb 16, 2011 at 15:24
-
"Ubuntu requires super user authentication when shutting down the computer", in Ubuntu 11.10 it doesn't ask for superuser authorisation, when shutdown using menu, it only works as logout and brings to Login page, like in this question: askubuntu.com/q/64073/11995, i'm interested how to configure Ubuntu to ask me for a superuser password?– MiklDec 22, 2011 at 21:34
-
1For 14.04 and later: see askubuntu.com/questions/454039/…– TakkatJun 11, 2015 at 19:49
9 Answers
Richard Holloway's answer is not actually the way PolickKit authorisations are meant to be granted. The files installed under /usr/share/polkit-1/actions
are not meant to be modified. Instead, you should modify the authorities under /etc/polkit-1/localauthority/50-local.d/
.
Here's how you do it for this question:
Create a file named /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown.pkla
and edit it using sudoedit
to look like this:
[Allow all users to shutdown]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.stop-multiple-users
ResultInactive=no
ResultActive=yes
Then create another .pkla
file in the same directory. Use any name you like ending with .pkla
, for example, allow_all_users_to_restart.pkla
, and fill it with these contents:
[Allow all users to restart]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.restart-multiple-users
ResultInactive=no
ResultActive=yes
References:
-
This turned out to be the solution for a very odd problem. On 12.04 after installing PowerBroker (to authenticate to Active Directory), users could not restart or shutdown a computer at all with the GUI (neither lightdm nor indicator-session worked. It would just return to the login screen.) After adding these permissions to policykit, everything worked. Jun 3, 2014 at 17:49
-
-
8Note that the names has changed now! This is from 14.04: /usr/share/polkit-1/actions$ grep multiple * org.freedesktop.login1.policy: <action id="org.freedesktop.login1.power-off-multiple-sessions"> org.freedesktop.login1.policy: <action id="org.freedesktop.login1.reboot-multiple-sessions"> org.freedesktop.login1.policy: <action id="org.freedesktop.login1.suspend-multiple-sessions"> org.freedesktop.login1.policy: <action id="org.freedesktop.login1.hibernate-multiple-sessions">– KonstigtJun 9, 2014 at 18:16
-
5For 16.04, in addition to @Konstigt's changes, for me the files had to be in
/var/lib/polkit-1/localauthority/50-local.d
and the additional lineResultAny=yes
was necessary for both files. The only warning message I now get isFailed to set wall message, ignoring: Interactive authentication required.
, but shutting down and restarting works correctly now.– sigalorJan 6, 2017 at 14:50 -
1@sigalor's comment worked for me, with the addition that
sysctl poweroff -i
requiresorg.freedesktop.login1.power-off-multiple-sessions
, so I made a separate file with the same lines except withAction=org.freedesktop.login1.power-off-multiple-sessions
Jul 28, 2019 at 16:42
You do not need a workaround, just change the policy to allow you to shut down without authenticating as admin for shutdown and reboot when multiple users are logged in.
Edit the file /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy using your favorite text editor. You will need root permissions.
Change the section relating to shutdown when others are logged in from
<action id="org.freedesktop.consolekit.system.stop-multiple-users">
<description>Stop the system when multiple users are logged in</description>
<message>System policy prevents stopping the system when other users are logged in</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
to
<action id="org.freedesktop.consolekit.system.stop-multiple-users">
<description>Stop the system when multiple users are logged in</description>
<message>System policy prevents stopping the system when other users are logged in</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
</action>
and the section relating to rebooting when others are logged in from
<action id="org.freedesktop.consolekit.system.restart-multiple-users">
<description>Restart the system when multiple users are logged in</description>
<message>System policy prevents restarting the system when other users are logged in</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
to
<action id="org.freedesktop.consolekit.system.restart-multiple-users">
<description>Restart the system when multiple users are logged in</description>
<message>System policy prevents restarting the system when other users are logged in</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
</action>
And that will allow you shutdown and reboot the PC when multiple users are logged in. Whether you want to do that is a different question.
-
1Here is a link with more on policykit : hal.freedesktop.org/docs/PolicyKit/polkit-conf.html Aug 6, 2010 at 14:07
-
5Won't your changes be wiped out whenever polkit is reinstalled or upgraded? Aug 6, 2010 at 18:08
-
3@Ryan, according to wiki.ubuntu.com/SecurityTeam/PolicyKitPermissions/12.04 you could write a .pkla file inside /etc/polkit-1/localauthority, but I'm not sure about its syntax :) (some info here wiki.archlinux.org/index.php/PolicyKit#Authorities)– JorilOct 10, 2012 at 16:01
-
1Answer below from Flimm is better, won't get written over during an update askubuntu.com/a/251942/7472– KonstigtJun 9, 2014 at 18:11
-
1
There is a better way. If you have dbus-send installed, you can shutdown via dbus without the need to escalate to root privileges.
I can't remember the page where the documentation is, but one Archlinux user figured this out.
Shutdown:
dbus-send --system --print-reply --dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
Reboot:
dbus-send --system --print-reply --dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Reboot
Suspend:
dbus-send --system --print-reply --dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:1
Hibernate:
dbus-send --system --print-reply --dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Hibernate
Regards.
-
-
1
-
HAL seems to be now depcrecated and not installed in latest Ubuntu releases.
You must use ConsoleKit and UPower dbus services to manage power state
Shutdown:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Restart:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
Suspend:
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
Hibernate:
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
Thanks to Arch Linux forums.
This works for now in Precise and Quantal, but don't know for how long since the Freedesktop focus seems to be shifted from ConsoleKit to systemd. Don't know whether Canonical cares...
This works on 14.04. An updated variation of the previous, IMO, correct answer by Flimm.
sudo mkdir -p /etc/polkit-1/localauthority/50-local.d
sudoedit /etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown_reboot_suspend.pkla
Paste this inside:
[Allow all users to shutdown]
Identity=unix-user:*
Action=org.freedesktop.login1.power-off-multiple-sessions
ResultActive=yes
[Allow all users to reboot]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot-multiple-sessions
ResultActive=yes
[Allow all users to suspend]
Identity=unix-user:*
Action=org.freedesktop.login1.suspend-multiple-sessions
ResultActive=yes
[Allow all users to ignore inhibit of shutdown]
Identity=unix-user:*
Action=org.freedesktop.login1.power-off-ignore-inhibit
ResultActive=yes
[Allow all users to ignore inhibit of reboot]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot-ignore-inhibit
ResultActive=yes
[Allow all users to ignore inhibit of suspend]
Identity=unix-user:*
Action=org.freedesktop.login1.suspend-ignore-inhibit
ResultActive=yes
-
3
-
I also had to add blocks for
Action=org.freedesktop.login1.power-off
,Action=org.freedesktop.login1.reboot
, andAction=org.freedesktop.login1.suspend
. Mar 13, 2023 at 20:04
There is no way to circumvent the prompt for a superuser password when rebooting while other users are logged in short of opening a terminal window and issuing the reboot
command as root:
sudo reboot
Even still, if not configured to bypass password prompting for your user account, sudo
will also prompt you for your password.
Don't worry, these are GOOD things. Rebooting should be rare and a simple admin password prompt saves accidentally hosing yourself!
-
You can also edit visudo and make your user not prompt for password when typing sudo.– Da1TMar 4, 2013 at 19:25
Add halt and/or reboot into sudoers file assigned to the group/user you wish to allow to perform this task. That way you can still control who can shutdown, but without giving them full root access to the machine..
http://linux.byexamples.com/archives/315/how-to-shutdown-and-reboot-without-sudo-password/
Apparently, you are able to shut down without root from the GUI because gdm runs as root. Gnome tells gdm to shut down, and gdm does it.
You could do something similar with a script. I'm not sure how handy you are with BASH, but I believe one could write a script that runs as root and, when it receives a certain signal, runs the shutdown command.
Keep in mind that this may pose a security problem.
-
I think the problem he's likely to be encountering is the prompt that appears advising that others are still logged in, and requiring a sudo password to enable the shut-down/restart. Aug 5, 2010 at 19:51