How to switch to root user but stay in the same directory

First of all, don't use sudo su. It's not wrong, or dangerous or anything, it's just inelegant and pointless. You are running two separate programs to do a job easily handled by one. If you want to start a shell as root, sudo can do it for you.

If you want to start a login shell (that's what sudo su -) does, use sudo -i. That, however, since it starts a login shell, will take you to root's home directory by default.

To start a regular, non-login shell, you can use sudo -s. That will start a root shell for you and keep you in the directory you ran it from:

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

So, the way to start a root shell and stay in the same directory is sudo -s.


This is very simple. Just type

sudo su

instead of

sudo su - root

This will keep you in same folder as root.