So let's talk about su.
Why would you use su? Well, SU is a switch user and it allows you to open a shell as a specific user.
For instance, if you use SU lisa, then you will be prompted for a password,
which is a password of user lisa and open a shell as usual lisa.
If you do this with super user privileges, you won't be prompted for a password.
If you use SU without any further arguments, it will prompt for the root password
and open a root shell. Now, when you use su, you open a subshell.
That means that not all the environment variables are set as a target user. That might not be what you want.
For that reason, it might be better to use su.
SU opens a login shell, which means that environment variables are set as
a target user and you really appear to be the target user.
User root can use SU to become any user without entering a password.
Regular users can use SU also, but they need the target user password.
Let me show you how it works.
Here I am in a root shell and in this machine I do have a couple of users.
The use case for user su is if you have administrative access, you use SU lynda, for instance,
which allows you to become user lynda without entering a password or whatsoever. Now why would you want
to become user Lynda? Let me type who am I to verify that I really am?
Well, for instance, to verify that you have set up permissions the right
way and user lynda can do whatever that user wants to do.
It's also possible to do this from a shell that is not a root shell.
Then either you use sulinda and enter the password for user, which is getting
you in, or you use your sudo superpowers using sudo su minus linda.
And then you're not prompted for the password of the target user, but for your
own user password, because that is what you need to invoke your sudo superpowers.