为什么在 Ubuntu 16.04 中“rebo​​ot”和“poweroff”不需要超级用户权限就可以工作?

为什么在 Ubuntu 16.04 中“rebo​​ot”和“poweroff”不需要超级用户权限就可以工作?

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

但有些事我不明白:如果能够在没有 root 权限的情况下重启或关机多用户系统是一个很坏想法...那么为什么在 Ubuntu 16.04 中可以实现这一点?

当我在终端中输入poweroff或并点击时,它确实关闭/重新启动!rebootEnter

poweroff当和reboot不需要 root 权限时,对我来说没问题...但为什么 需要 root 权限?当我在终端中suspend输入并点击时,它不会暂停,而是卡住了...而当我运行 时,它需要。suspendEnterpm-suspendsudo

答案1

对我来说,在 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

相关内容