GNU/Linux >> Tutoriels Linux >  >> Linux

Qui définit les variables d'environnement $user et $username ?

De plus, ces variables correspondront-elles toujours au nom d'utilisateur actuellement connecté (elles le font sur mon système Debian) ? Puis-je supposer leur disponibilité dans d'autres systèmes (de type Unix) ?

Je suis également curieux de savoir pourquoi on utiliserait whoami au lieu de simplement lire l'une de ces variables.

Réponse acceptée :

C'est la connexion .

La page de manuel Linux login(1) indique :

La valeur de $HOME , $USER , $SHELL , $PATH , $LOGNAME , et $MAIL sont définis en fonction des champs appropriés dans la saisie du mot de passe.

La page de manuel FreeBSD login(1) indique :

La connexion l'utilitaire entre des informations dans l'environnement (voir environ(7)) en spécifiant le répertoire personnel de l'utilisateur (HOME), l'interpréteur de commandes
(SHELL), le chemin de recherche (PATH), le type de terminal (TERM) et le nom d'utilisateur
(à la fois LOGNAME et USER).

Les pages de manuel NetBSD, OpenBSD et OS X disent la même chose.

Voici le code source de la connexion util-linux :

setenv("HOME", pwd->pw_dir, 0); /* legal to override */
setenv("USER", pwd->pw_name, 1);
setenv("SHELL", pwd->pw_shell, 1);
/* ... */
setenv("LOGNAME", pwd->pw_name, 1);

Voici le code source de la connexion FreeBSD :

(void)setenv("LOGNAME", username, 1);
(void)setenv("USER", username, 1);
(void)setenv("PATH", rootlogin ? _PATH_STDPATH : _PATH_DEFPATH, 0);

Linux
  1. Variables d'environnement de base de données Oracle et leurs fonctions

  2. Variables d'environnement utilisateur avec "su" et "sudo" sous Linux

  3. Vérification des variables d'environnement

  4. Définir un environnement temporaire ($PATH)

  5. Définition des variables d'environnement Linux

Comment définir une variable d'environnement dans Windows

Comment définir et répertorier les variables d'environnement sous Linux

Comment définir et répertorier les variables d'environnement sous Linux

Comment définir et supprimer des variables d'environnement sous Linux

Variables d'environnement Linux

Comment désactiver un grand nombre de variables d'environnement