Answers:
首先,不要使用sudo su
。没错,没有危险,也没有什么,只是微不足道而毫无意义。您正在运行两个单独的程序来完成一个程序轻松完成的工作。如果要以root用户身份启动Shell,sudo
可以为您做。
如果您想启动登录shell(就是这样sudo su -
),请使用sudo -i
。但是,由于它启动了登录Shell,因此默认情况下会将您带到root的主目录。
要启动常规的非登录外壳程序,可以使用sudo -s
。这将为您启动一个根shell,并将您保留在运行它的目录中:
terdon@tpad ~ $ pwd
/home/terdon
terdon@tpad ~ $ sudo -i ## changes directory
[root@tpad ~]# pwd
/root
[root@tpad ~]# logout
terdon@tpad ~ $ sudo -s ## doesn't change directory
[root@tpad terdon]# pwd
/home/terdon
因此,启动root shell并保留在同一目录中的方法是sudo -s
。
sudo -s
因为它不是登录外壳,所以无法运行目标用户的配置文件。因此,也许真正的问题是是否有一种方法可以使用sudo
而不是更改目录来获取登录shell 。可能不是。