实际上不是我的答案–只是重新发布一个答案,不幸的是,该答案由于未知原因已被删除。
来源:http : //web.archive.org/web/20151014220049/https : //superuser.com/questions/985661/shutdown-vs-shutdown-now-shutting-down-system-as-non-root
在Arch Linux中,在某些情况下,您很可能会关闭/重新启动/休眠...您的PC没有root特权。
Systemd下电源管理下的Arch Linux Wiki页面:
polkit对于作为非特权用户的电源管理是必需的。如果您在本地systemd-logind用户会话中,并且没有其他会话处于活动状态,那么以下命令将在没有root特权的情况下运行:
系统关机
systemctl重新启动
systemctl暂停
systemctl休眠
要检查是否允许执行此操作(即,已安装polkit,并且会话未中断),可以使用以下命令:
$ loginctl show-session $XDG_SESSION_ID --property=Active
Active=yes
在其他systemd
系统上,例如我的Debian 8,尽管对此命令的回复相同,但这是不可能的:
$ loginctl show-session $XDG_SESSION_ID --property=Active
Active=yes
$ systemctl reboot
==== AUTHENTICATING FOR org.freedesktop.login1.reboot ===
Authentication is required for rebooting the system.
Authenticating as: ,,, (myusername)
Password:
这表示polkit
默认情况下已在Arch Linux和Debian上以不同的方式进行了设置。Arch Linux的人在Polkit的Wiki页面上sudo
表示,相比于此,它具有一个优势:
Polkit用于控制系统范围的特权。它为非特权进程提供了一种与特权进程进行通信的有组织方式。与sudo之类的系统相比,它不向整个进程授予root权限,而是允许对集中式系统策略进行更好的控制。
和往常一样,YMMV。
至于shutdown now
,我的猜测是这是对的重定向systemctl poweroff
,允许非特权用户使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句