This question already has an answer here:

I saw some command such as sudo su ls, and I just wonder what's the deference between sudo ls?

marked as duplicate by Kusalananda, Anthon, Philippos, sebasth, roaima Sep 18 '17 at 10:14

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

In fact, the commands you mentioned perform two different tasks.

  • su is a program used to switch to another user. If you execute su <user> you start a shell session as another user.
  • sudo allows you to run a single command as the root user.
  • sudo su allows you to run su as the root. If you execute sudo su <user> you start a shell session as the user.

Then,

  • sudo su ls will start a shell as the ls user, if it exists.
  • sudo ls will list the content of directory just like if the command was issued by the root user.

If you are interested on two equivalent commands, you may consider...

sudo bash -c "ls"       # execute "ls" as the root
sudo ls                 # execute "ls" as the root
  • sudo allows you to do anything su can do, and more. su has been obsoleted by sudo. – Johan Myréen Sep 18 '17 at 7:57

Not the answer you're looking for? Browse other questions tagged or ask your own question.