A principal dúvida em questão é su ou sudo.
su - Altera a shell do usuário efetivo para qualquer outro usuário e grupo.
ex.
[root@localhost ~]# su postgres
[postgres@localhost root]$
O usuário deve ter acesso ao shell (ex. /bin/bash).
Caso não possuir acesso (ex. apache:x:48:48:Apache:/var/www:/sbin/nologin)
[root@localhost ~]# su apache
This account is currently not available.
Pode também executar um comando com outro usuário.
[postgres@localhost root]$ su -l root -c id
Password:
uid=0(root) gid=0(root) groups=0(root)
sudo - Executa um comando com outro usuário
deve se criar a entrada com 'visudo' (/etc/sudoers)
ex.
usuário host=sem senha: comando completo
postgres ALL=NOPASSWD: /sbin/shutdown -h now
Nesse exemplo, o usuário apache poderia executar o comando com sudo
[postgres@monitoracao root]$ sudo shutdown -h now
A principal diferença é que o 'sudo' pode ser configurado para que determinado usuário execute um comando específico sem a necessidade da senha do outro usuário, já o su requer.
Pra matar a questão: No comando "su" vc LOGA permanemtemente como root. Já no "sudo" vc não loga, apenas executa comandos isolados como "root', mas sem LOGAR-SE ao root,
No enunciado da questão, ficou bem esclarecido "Para corrigir esse problema, como administrador do sistema, um usuário cujo LOGIN NÃO É ROOT, EMBORA PARTICIPE DO GRUPO ROOT, deve dar o seguinte comando:'
então daí eh so vc deduzir qual comando precisaria ser usado.