当我们安装/删除/更新软件包或进行任何需要管理权限的更改时,系统会提示我们输入具有sudo权限的管理员用户的密码——这通过 GUI 和终端发生。

但是,如果我们尝试通过终端关闭并重新启动,它会抱怨我们需要root:
$ reboot
reboot: Need to be root
$ shutdown now
shutdown: Need to be root
Run Code Online (Sandbox Code Playgroud)
但是当我们通过右上角的齿轮执行这些操作时,我们永远不会被要求输入密码。

为什么会出现这种差异?
我知道有几个命令可以关闭 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 -h now什么区别?前者有时会在 Ubuntu 11.10 上挂断我的笔记本电脑。
我在 Ubuntu 11.10 上的 Virtualbox 中运行 Windows 7。一切正常。我在启动时运行它,但我在重新启动时遇到问题。
当我输入sudo reboot now虚拟 Windows 7 的状态时,没有保存。重新启动后,virtualbox 启动,但不是正在运行的 Windows,而是 Windows 的 7 崩溃启动菜单,并且 Windows 再次启动。
是否有选项可以让 Ubuntu 在主机重新启动之前向虚拟机发送一些信号以安全关闭实例?
我正在寻找一个终端命令来关闭,而不必写下我的密码,也无需安装任何额外的程序。
就像单击关机按钮时一样,为什么它不要求我输入密码,而 gnome-pie 之类的程序在不要求我输入密码且未确认的情况下关机。
我想要这个命令,因为我是一名 Java 程序员,我想使用它。
shutdown ×5
command-line ×3
11.10 ×2
14.04 ×1
java ×1
privileges ×1
programming ×1
reboot ×1
restart ×1
sudo ×1
virtualbox ×1
windows-7 ×1