Linux / Commande whoami : connaître l’utilisateur effectif

whoami affiche le nom associé à l'identifiant utilisateur effectif du processus qui exécute la commande. Il permet de vérifier sous quel compte une commande fonctionne actuellement. Ce nom peut différer du compte utilisé pour ouvrir la session, notamment après une exécution avec sudo ou su.

Afficher le nom de l'utilisateur effectif

whoami

La sortie comporte normalement un nom sur une ligne. Par exemple, si le compte effectif se nomme alice :

alice

Il s'agit d'un nom fictif d'exemple : le résultat réel dépend de votre environnement. L'identifiant utilisateur, ou UID pour User Identifier, est une valeur numérique. Whoami résout l'UID effectif en nom ; il n'affiche ni ce nombre ni tous les groupes du processus.

La commande ne change pas l'utilisateur et ne donne aucun droit supplémentaire. Elle lit l'identité dans laquelle elle est elle-même exécutée.

Comprendre le résultat après sudo ou su

Sur une machine Linux où votre politique sudo autorise cette commande, comparez :

whoami
sudo whoami

Le premier appel affiche votre utilisateur effectif courant. Le second peut afficher root, compte cible habituel de sudo, parce que cette commande est alors exécutée sous une autre identité. Le résultat dépend du compte cible et de la configuration ; une autorisation ou une authentification peut être nécessaire.

Cela ne transforme pas automatiquement le shell parent en shell root. Whoami lancé ensuite directement dans ce shell affiche à nouveau son identité effective. Après un changement de shell avec su, le résultat reflète en revanche le contexte de ce nouveau shell.

Un succès de sudo whoami prouve seulement que cette exécution a été autorisée. Il ne décrit pas l'ensemble des commandes sudo permises à votre compte et ne remplace pas l'examen de la politique d'administration.

Comparer whoami, id et logname

id -un
id -u
id

Avec GNU Coreutils, id -un est équivalent à whoami. id -u affiche l'UID effectif numérique ; id sans option donne davantage d'informations sur l'utilisateur et les groupes. Les nombres et les noms dépendent de votre machine, ne les recopiez donc pas comme des valeurs universelles.

Commande Question traitée
whoami Quel nom correspond à l'UID effectif courant ?
id -un La même question, avec les options de GNU id.
id -u Quel est l'UID effectif numérique ?
id Quels identifiants utilisateur et groupes sont associés au contexte courant ?
logname Quel compte est enregistré comme utilisateur de connexion ?

Logname dépend des informations de connexion disponibles. Dans un conteneur, une tâche automatisée ou une session sans enregistrement de connexion, il peut échouer au lieu d'indiquer le compte initial. La variable de shell $USER est également une donnée d'environnement ; elle ne remplace pas une interrogation de l'UID effectif après un changement de contexte.

Interpréter une différence ou une erreur

Si le nom n'est pas celui attendu, vérifiez dans quel shell ou processus vous exécutez la commande, puis comparez avec id -u et id. Une identité effective différente peut provenir d'un changement de compte, d'un service ou d'un conteneur ; elle ne se déduit pas seulement du texte de l'invite.

Si l'UID ne peut pas être résolu en nom, ne considérez pas une sortie vide comme un compte valide : lisez le diagnostic et vérifiez le statut de la commande. Un contrôle d'identité ne prouve pas non plus qu'un fichier sera accessible, car les permissions, les groupes et d'autres mécanismes peuvent intervenir.

GNU whoami propose --help pour l'aide et --version pour la version. Sa définition et son équivalence avec id sont données dans le manuel officiel de GNU whoami.