如果我以 root 用户身份使用 sudo 运行命令会有什么区别?

如果我以 root 用户身份使用 sudo 运行命令会有什么区别?

我的服务器遇到了 DNS 问题,最后考虑重新启动网络服务。

root@labadmin-VirtualBox:~# service network-manager restart
stop: Unknown job: network-manager
start: Unknown job: network-manager

我想知道该服务是否可用,并进行了一些研究来解决这个问题。我想sudo在执行命令时尝试添加,结果成功了。

root@labadmin-VirtualBox:~# sudo service network-manager restart
network-manager stop/waiting
network-manager start/running, process 5711

有人可以解释一下执行命令时有什么区别吗以 root 身份有或没有sudo

答案1

这似乎是 Ubuntu 在 Upstart 阶段的一个常见问题。问题在于 upstart 环境变量的传递方式取决于您是使用 sudo 获得 root 权限还是使用 su 成为 root。这是 Upstart 的一个怪异之处,我认为从未得到纠正。

$ env|grep UPST
UPSTART_SESSION=unix:abstract=/com/ubuntu/upstart-session/1000/21059
UPSTART_INSTANCE=
UPSTART_EVENTS=xsession started
UPSTART_JOB=unity7

如果您想查询系统级作业的状态,您应该能够使用status --system它来覆盖环境变量。

来源:https://bugs.launchpad.net/upstart/+bug/1481967

相关内容