Linux / Comando whoami: conferir o nome do usuário efetivo
whoami mostra o nome associado ao identificador de usuário efetivo do processo que executa o comando. Esse identificador, chamado UID efetivo, representa a identidade usada na verificação de muitas permissões. O resultado ajuda a conferir com qual conta um comando está sendo executado, mas não identifica necessariamente a conta que iniciou o login.
Sintaxe e implementação
whoami [opção...]
Sem opções, o comando consulta a identidade efetiva e imprime um nome. A sintaxe acima é descritiva. Confira type -a whoami, whoami --version e whoami --help para identificar o executável e as opções; em Linux, man whoami apresenta a documentação instalada.
As consultas GNU deste texto foram conferidas com Coreutils 8.32 no Bash do Git para Windows. Nesse ambiente também existe um executável Windows chamado whoami, com interface própria; ele não é a implementação GNU tratada aqui. A comparação com sudo abaixo refere-se ao sudo de Linux e não foi executada como teste de elevação de privilégios nesse ambiente.
Consultar o usuário efetivo atual
Execute no shell que deseja verificar:
whoami
O GNU whoami imprime um nome e termina a linha. Em uma sessão comum, esse nome costuma coincidir com a conta de login. Depois de uma troca de identidade ou ao executar um comando como outra conta, a identidade efetiva pode ser diferente. Faça a consulta no contexto que importa: uma resposta obtida em outro terminal não descreve automaticamente o processo em análise.
No GNU Coreutils, id -un consulta o nome do UID efetivo e equivale a whoami. Para ver somente o identificador numérico efetivo, use id -u. Esses comandos não alteram a conta nem as permissões do processo.
Comparar uma execução autorizada com sudo
Em Linux, se a política sudo permitir executar essa consulta, o exemplo a seguir executa whoami como o usuário de destino configurado. Pode haver um pedido de autenticação no terminal:
sudo whoami
O destino padrão costuma ser root, mas a política pode definir outra conta. Quando o destino é root e a execução é autorizada, o nome mostrado pode ser root. Se a tentativa for recusada ou não puder autenticar, leia o diagnóstico; não interprete uma falha como se o comando tivesse consultado a identidade de destino.
Essa execução não muda permanentemente o usuário do shell que a iniciou. Uma nova consulta whoami no shell original continua descrevendo a identidade desse shell. Para consultar as permissões sudo disponíveis na máquina, a ferramenta apropriada é sudo -l, sujeita à política e à autenticação locais. A saída de whoami não é uma lista dessas permissões.
Ler o UID e os grupos com id
Para obter mais contexto que um nome isolado, execute:
id
No GNU id sem nome de usuário como argumento, a saída descreve o processo: UID real, identificador de grupo e grupos suplementares, além dos identificadores efetivos quando diferem dos reais. Os nomes aparecem quando podem ser associados aos números. Não trate o nome exibido por whoami como uma relação de todos os grupos.
Use id -u para o UID efetivo, id -ru para o UID real e id -G para os identificadores de grupo. UID real e conta que iniciou o login são conceitos distintos: a existência de um UID real não fornece, sozinha, uma trilha de quem iniciou toda a cadeia de execuções.
Interpretar o nome mostrado
A consulta abaixo usa o mesmo comando; a saída seguinte é apenas uma ilustração fictícia, não o resultado de um teste com uma conta chamada alice:
whoami
Exemplo de nome que poderia ser mostrado:
alice
Se a saída for alice, o nome associado ao UID efetivo consultado é alice. Ela não informa automaticamente quem autenticou a sessão, quais comandos sudo estão autorizados ou se uma operação específica em um arquivo será permitida. Para investigar uma falha de acesso, confira também os identificadores, os grupos e as regras aplicáveis à operação.
Distinguir nome efetivo e nome de login
logname procura o nome de login associado à sessão. Ele responde a outra pergunta e pode falhar quando não existe informação de login disponível, como em certos contextos sem uma sessão de terminal registrada. Essa falha não significa, por si só, que whoami deixou de reconhecer a identidade efetiva.
Variáveis como USER e LOGNAME são valores do ambiente e não devem ser usadas como prova independente da identidade efetiva. Elas podem estar ausentes, desatualizadas ou ter sido fornecidas por outro processo. Para conferir o processo atual, use as consultas de identidade, sem presumir que um nome no ambiente corresponde à conta efetiva.
Quando uma consulta falhar, leia a mensagem e confira echo "$?" imediatamente após o comando isolado. No GNU whoami, status 0 indica sucesso; um status diferente de zero indica falha. O resultado de uma consulta simples não substitui a análise das permissões da operação que você pretende realizar.
Opções do GNU whoami
| Opção | Uso |
|---|---|
--help |
Mostra a ajuda da implementação GNU instalada. |
--version |
Mostra a versão da implementação GNU instalada. |
Pergunta frequente
whoami e id -un mostram a mesma informação?
No GNU Coreutils, ambos mostram o nome associado ao UID efetivo do processo. Id também permite consultar números e grupos. Para distinguir o UID real, use a opção -r junto da seleção desejada, como em id -ru; isso não transforma a consulta em um histórico de login.
Documentação
A documentação oficial do GNU whoami descreve a equivalência com id -un. Consulte também a página de manual de whoami publicada pelo Debian. As condições de usuário de destino e autenticação estão no manual de sudo publicado pelo Debian.




