Na verdade, os comandos que você mencionou executam duas tarefas diferentes.
-
su
é um programa usado para alternar para outro usuário. Se você executarsu <user>
, você inicia uma sessão de shell como outro usuário . -
sudo
permite que você execute um único comando como o usuário root. -
sudo su
permite que você executesu
como a raiz. Se você executarsudo su <user>
, inicie uma sessão de shell como o usuário .
Então,
-
sudo su ls
iniciará um shell como o usuáriols
, se existir. -
sudo ls
listará o conteúdo do diretório como se o comando tivesse sido emitido pelo usuário root.
Se você estiver interessado em dois comandos equivalentes, você pode considerar ...
sudo bash -c "ls" # execute "ls" as the root
sudo ls # execute "ls" as the root