Notice that my current working directory is now /home/elliot and not /root. If I want to change that, I can exit back to user elliot and rerun the su command but this time, I will add a dash (hyphen) before root as follows:
root@ubuntu-linux:/home/elliot# exit
exit
elliot@ubuntu-linux:~$ su - root
Password:
root@ubuntu-linux:~# pwd
/root
So what is the difference?
Here's the deal. When you don't add the dash before the username, the shell preserves the current user shell environment settings, which includes the current working directory. On the other hand, when you add the dash, the shell acquires the environment settings of the new user (the user you switched to).
So let's do some practice. If you want to switch to user elliot but preserve root's shell environment settings, then you don't need the dash:
root@ubuntu-linux:~# pwd
/root
root@ubuntu-linux:~# su elliot
elliot@ubuntu-linux:/root$ pwd
/root
elliot@ubuntu-linux:/root$
Notice how the current...