SUDO_USER
está documentado em man sudo
(não sudoers
):
SUDO_USER Set to the login name of the user who invoked sudo.
Ou seja, se você executar sudo sh -c 'echo $SUDO_USER'
, será uma maneira indireta de obter o efeito de whoami
.
sudo
registra quando um usuário executa (ou tenta executar) um comando através dele. Você pode listá-los com journalctl /usr/bin/sudo
ou algo equivalente para o seu sistema. Ele lista o nome de usuário e o comando de cada chamada.
Se sudo
for executado 1) como root e 2) com SUDO_USER
set, a entrada de log será marcada com SUDO_USER
username, em vez de "root". Isso permite que um usuário (cooperante) registre os comandos que eles executaram para a posteridade, mesmo que eles estivessem em um ambiente irrestrito. sudo
sempre tem sucesso quando executado com privilégios de root (a menos que seja desabilitado com a configuração root_sudo
), já que você pode simplesmente executar o comando sem ele.
Existem duas maneiras principais pelas quais isso aconteceria. O primeiro é o óbvio sudo bash
ou equivalente e o desejo de gravar as coisas. O outro caso de uso é para scripts, que podem registrar as ações reais realizadas em nome dos usuários. É um comportamento informativo, não um problema de segurança.
sudo -e
é usado para editar arquivos e usa um conjunto diferente de políticas de segurança, também documentado em man sudo
e comportamentos de edição um pouco mais seguros. Às vezes, as pessoas o usam quando logado como root para esses recursos, e tem a mesma interação com SUDO_USER
como acima.