我最近切换到 Ubuntu,当我使用以下命令切换到 root 用户时,我观察到一件事
sudo su - root
它直接将我带到 root 的主目录 ( /root
),因此我丢失了文件系统中的位置(执行此命令的目录)。有没有办法切换到 root 而不丢失当前目录?
答案1
首先,不要使用sudo su
。这没有错,也没有危险,只是不雅且毫无意义。您正在运行两个单独的程序来完成一项可以轻松由一个程序完成的工作。如果您想以 root 身份启动 shell,sudo
可以为您完成。
如果您想要启动登录 shell(这就是 的功能sudo su -
),请使用sudo -i
。但是,由于它启动的是登录 shell,因此默认情况下会将您带到 root 的主目录。
要启动常规的非登录 shell,可以使用sudo -s
。这将为您启动 root 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
。
答案2
这很简单。只需输入
sudo su
代替
sudo su - root
这会让您与 root 位于同一文件夹中。