当我打开我的机器并登录到我的帐户时,我可以做任何我想做的事情,甚至可以关闭我的机器或重新启动。
但如果我打开终端并尝试运行命令reboot
,则shutdown
需要具有 root 访问权限。为什么会这样?
我可以想到一些原因,比如你可能认为这种行为是可取的,ssh
但我并不确定,或者我可能完全忽略了某些要点。
答案1
这是一个安全功能。
使用 GUI 时,您(通常)坐在您正在使用的计算机前。但是,使用终端时,您可能在物理上位于一台计算机上,而远程使用另一台计算机。您可能有许多终端窗口打开许多不同的机器。如果你不小心在错误的机器上输入了 reboot,该怎么办?这种操作可能带来不便,甚至导致彻底的灾难。
使用 sudo 会强制您使用密码。如果您输入错误的密码,它会给出错误,希望您意识到自己进入了错误的终端。这就是为什么在每个服务器上使用不同的 root 密码是一种很好的做法。
答案2
通常,您可以通过按 Ctrl+Alt+Del 从终端重新启动。但远程重新启动不起作用。(在没有权限的情况下从 GUI 远程重新启动也不起作用。)