切换到root用户后仍需要sudo

时间:2014-04-15 14:34:12

标签: linux unix sudo

我像这样切换到root用户:

$ sudo su -

然后我尝试运行birdc

之类的东西
[root@localhost ~]# birdc
Unable to connect to server control socket (/usr/local/var/run/bird.ctl): 
No such file or directory

我发现我仍然需要sudo来运行如上所示的命令:

[root@localhost ~]# sudo birdc
BIRD 1.4.2 ready.
bird> 

我做错了什么?这与我安装BIRD的方式有关吗?

2 个答案:

答案 0 :(得分:6)

您的root登录脚本似乎有问题。作为测试,请尝试在没有sudo su的情况下执行-。这将在不创建登录shell的情况下更改用户。

要弄清楚您的root登录脚本在做什么,请运行

printenv > /tmp/before
sudo su -
printenv > /tmp/after
diff /tmp/before /tmp/after

然后从新的用户shell再次执行相同的操作,但没有- arg到su。我打赌你会看到一些东西。

然而,Linux系统上的每个程序都应该能够使用root登录shell运行。您需要以适用于susu -的方式配置系统。意思是以正确的方式设置路径和权限。以香草Ubuntu为例。它适用于susu -

答案 1 :(得分:2)

可能与您的PATH或其他一些环境变量有关。当您执行sudo时,您拥有的用户名的环境配置将保留。但是,当您执行su -并以root身份登录时,环境配置会更改。

但是(!)Linux系统上的每个程序都应该能够使用root登录shell运行。您需要以适用于susu -的方式配置系统。意思是以正确的方式设置路径和权限。以香草Ubuntu为例。它适用于susu -