Linux – Why does “sudo -u root echo `whoami`” not return root

linuxsudoUbuntu

How do you use sudo to run a command as the actual root user on Ubuntu? I originally thought this was the default behavior of sudo, until I ran:

myuser@localhost:~$ sudo echo `whoami`
myuser

myuser@localhost:~$ sudo -u root echo `whoami`
myuser

However, this is the type of behavior I want, but only in a single line:

myuser@localhost:~$ sudo su -
root@localhost:~# echo `whoami`
root

Best Answer

sudo echo `whoami` 

Returns your name because whoami changes to your username before sudo runs. It's like:

sudo echo myname

you can see tese codes:

myname@mypc:~$ whoami
myname

myname@mypc:~$ sudo whoami
root

myname@mypc:~$ echo `whoami`
myname

myname@mypc:~$ sudo echo `whoami`
myname

myname@mypc:~$ sudo `echo whoami`
root

myname@mypc:~$ sudo -i
[sudo] Password for myname: ******

root@mypc:~$ whoami
root

root@mypc:~$ echo `whoami`
root

Thanks

Related Question