如果超过一个人登录我的电脑,Ubuntu在关闭电脑时需要超级用户身份验证。我怎样才能让任何用户都可以在不要求输入密码的情况下关闭计算机?
我知道从单击齿轮时出现的菜单中单击“关闭”会触发以下命令执行:
dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
Run Code Online (Sandbox Code Playgroud)
但是,当我在终端上执行此命令时,出现以下错误:
Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Hal was not provided by any .service files
Run Code Online (Sandbox Code Playgroud)
是因为 14.04 使用了其他一些服务来关闭,还是我做错了什么?
注意:这个问题是在跟进:
有很多关于为什么shutdown和reboot需要 root 权限的问题。也有很多很好的答案。
但是有一点我不明白:如果在多用户系统中能够在没有 root 权限的情况下重新启动或关闭是一个非常糟糕的主意……那么为什么这在 Ubuntu 16.04 中是可能的?
当我在终端中输入poweroff或reboot并点击 时Enter,它确实会关闭/重新启动!
它是好的,对我来说,当poweroff且reboot不需要root权限......但为什么suspend需要root权限?当我输入suspend终端并点击 时Enter,它不会挂起,而是卡住了……当我运行时pm-suspend,它需要sudo.
当我reboot在命令行输入时,我得到:
reboot: Need to be root
Run Code Online (Sandbox Code Playgroud)
并询问 root / sudo 密码。当我通过 gui 重新启动时,我可以在没有 sudo 密码的情况下执行此操作。这是为什么?那里的 ubuntu 系统内部发生了什么?