<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>
至
<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>
以及与其他人登录时重新启动有关的部分
<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>
至
<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>
[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
Richard Holloway 的回答实际上并不是授予 PolickKit 授权的方式。安装在下面的文件
/usr/share/polkit-1/actions
不应该被修改。相反,您应该修改/etc/polkit-1/localauthority/50-local.d/
.以下是您对这个问题的处理方式:
创建一个名为
/etc/polkit-1/localauthority/50-local.d/allow_all_users_to_shutdown.pkla
并编辑它的文件sudoedit
,如下所示:.pkla
然后在同一目录中创建另一个文件。使用您喜欢以 结尾的任何名称.pkla
,例如allow_all_users_to_restart.pkla
,并填写以下内容:参考:
您不需要解决方法,只需更改策略以允许您在不以管理员身份进行身份验证的情况下关闭,以便在多个用户登录时关闭和重新启动。
使用您喜欢的文本编辑器编辑文件 /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy。您将需要 root 权限。
更改其他人登录时与关机相关的部分
至
以及与其他人登录时重新启动有关的部分
至
这将允许您在多个用户登录时关闭并重新启动 PC。您是否要这样做是一个不同的问题。
有个更好的方法。如果你安装了 dbus-send,你可以通过 dbus 关闭而不需要升级到 root 权限。
我不记得文档所在的页面,但一位 Archlinux 用户发现了这一点。
关闭:
重启:
暂停:
休眠:
问候。
HAL 现在似乎已被弃用,并且未安装在最新的 Ubuntu 版本中。
您必须使用ConsoleKit和UPower dbus 服务来管理电源状态
关闭:
重新开始:
暂停:
休眠:
感谢 Arch Linux论坛。
这目前在 Precise 和 Quantal 中有效,但不知道 Freedesktop 的焦点似乎从 ConsoleKit 转移到 systemd 有多久了。不知道Canonical是否关心...
这适用于 14.04。Flimm 的前一个 IMO 正确答案的更新变体。
把这个粘贴到里面:
重新启动时,如果其他用户没有打开终端窗口并
reboot
以 root 身份发出命令,则无法绕过提示输入超级用户密码:即使如此,如果未配置为绕过对您的用户帐户的密码提示,
sudo
也会提示您输入密码。别担心,这些都是好东西。重新启动应该很少见,简单的管理员密码提示可以避免意外地冲洗自己!
我相信这只是通过命令行执行时的一个问题。
如果是这样,这里有一个链接可以帮助您解决问题。
将暂停和/或重新启动添加到分配给您希望允许执行此任务的组/用户的 sudoers 文件中。这样,您仍然可以控制谁可以关机,但无需授予他们对机器的完全 root 访问权限。
http://linux.byexamples.com/archives/315/how-to-shutdown-and-reboot-without-sudo-password/
显然,您可以在没有 root 用户的情况下从 GUI 关闭,因为 gdm 以 root 身份运行。Gnome 告诉 gdm 关闭,而 gdm 会这样做。
你可以用脚本做类似的事情。我不确定你对 BASH 有多方便,但我相信可以编写一个以 root 身份运行的脚本,当它收到某个信号时,运行关闭命令。
请记住,这可能会带来安全问题。