为什么在Ubuntu 16.04中没有超级用户权限的情况下,“重启”和“关闭电源”会起作用?


10

有很多的关于为什么的问题shutdownreboot需要root权限。也有很多好的答案。

但是有一点我不理解:如果在多用户系统中能够在没有root特权的情况下重新启动或关闭是一个非常糟糕的主意...那么在Ubuntu 16.04中为什么会这样呢?

当我在终端中输入poweroffreboot击中时Enter,它确实会关闭/重启!

它是好的,对我来说,当poweroffreboot不需要root权限......但为什么suspend需要root权限?当我输入suspend一个终端并点击时Enter,它不会挂起,而是卡住...而当我运行时pm-suspend,它需要sudo


在较旧的版本中也应该可以做到这一点,如果您对此进行了配置(askubuntu.com/a/570969/158442,请注意多个会话的操作)。Systemd默认情况下会这样做。也可以在Arch Linux上看到。
muru

Answers:


3

对我来说,在Ubuntu 16.04上poweroff都不reboot需要密码。

但是,要使这种情况发生,例如,我必须创建一个名为“ foo”的用户帐户,然后以该用户身份或本人身份将其SSH到localhost。当我这样做时,我确实需要对自己进行身份验证。似乎识别出另一个用户已登录。

例如,我收到以下消息:

User foo is logged in on sshd.
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl reboot -i'.

据推测,它足够“智能”,可以在实际上还有另一个用户登录时实现。

(我同意您的意见,始终以root身份进行身份验证会很好。有时候,没有其他用户登录,但是一个重要的进程正在后台运行,进行某种计算。)

编辑:尝试了一下自己。如果我以foo身份登录,则需要认证自己(属于sudo组)。如果我仍然以foo身份登录并重新启动,则必须输入systemctl reboot -i无密码。我认为区别在于系统知道我在sudo组中。

编辑2:如Severus Tux所述,其systemctl suspend -i行为与上systemctl reboot -i一次编辑相似。


啊..我没有尝试过。顺便说一句,挂起命令是否在您的计算机上工作?我需要确保它的一个bug
西弗勒斯企鹅

如果我ssh到localhost并挂起,则不会成功。我得到“ -bash:暂停:无法暂停登录外壳程序”。

如果我打开一个窗口并尝试“挂起”,则终端窗口将冻结。:-)这不是一个好兆头...我认为这无关紧要。无论如何,感谢您的提问!我从没想过要自己尝试一下,但是您的问题让我感到好奇。我仍然有使用sudo重新启动的习惯。。。没有注意到这种细微的变化。

谢谢。正如您所说的关于重新引导,“ systemctlsuspend -i”也可以很好地工作。考虑添加到您的答案
西弗勒斯企鹅

好!我可能应该只用一条消息添加所有内容,但是每次尝试进行操作时,它都会导致重新启动,因此我必须保存发布的内容……
Ray
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.