A general difficulty encountered by newbie Linux users is knowing the difference between “su” and “su -“.
This section will help you to understand the distinction between “su” and “su -“ in Linux systems.
The su command is used to switch to another user, It is also referred to as switch (-) user. If su - is executed without a username, it will login as root user by default.
Now let's understand the difference between “su” and “su -”
If we switch to another user using su, it can be noted that the environment is kept the same as before switching. For an instance refer the below example.
$ su user2
It can be noted from the above Commandline that when su is executed from the environment(desktop) of user1 it keeps it the same. As a result, when user2 tries to execute another command (touch test) at this working directory (which is still user2 working directory), you will receive this error : touch: cannot touch `test': Permission denied. But, it should be noted that the user2 can execute after moving into user2's directory.
Now If we excute su - (i.e su with -), it will login into user2's default login environment, and into the users home directory, where the user can run any supported commands freely.
$ su - user2