pour un utilisateur normal, je reçois:
/ usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/jeux:/usr/local/jeux :/home/monty/google_appengine
qui est en fait le contenu de /etc/environment
Pour root je reçois:
/ usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
quelle est la raison derrière ceci et quel fichier contient cette ligne?
PATH est une variable d’environnement, elle est donc "par défaut" ou "réinitialisée" lorsque vous changez d’environnement. Voir man sudoers
pour une explication:
env_reset If set, Sudo will reset the environment to only contain
the LOGNAME, Shell, USER, USERNAME and the Sudo_* vari-
ables. Any variables in the caller's environment that
match the env_keep and env_check lists are then added.
The default contents of the env_keep and env_check
lists are displayed when Sudo is run by root with the
-V option. If Sudo was compiled with the SECURE_PATH
option, its value will be used for the PATH environment
variable. This flag is on by default.
/ usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
est le chemin de base sans modifications. Différents utilisateurs se verront ajouter différents annuaires pour plusieurs raisons.
Et le raisonnement devrait être le suivant: root ne devrait jamais avoir plus de répertoires dans son PATH que nécessaire. Ou l'inverse: si root a besoin d'un fichier, il devrait se trouver dans /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
. Vous ne jouez pas à des jeux en tant que root. Vous n'utilisez pas un gestionnaire de bureau en tant que root. Une racine est pour les tâches administratives.
Le wiki contient quelques informations supplémentaires (entre autres, quels fichiers sont utilisés pour ajouter à PATH): https://help.ubuntu.com/community/EnvironmentVariables
Dans le cas d'un utilisateur normal, des fichiers tels que ~/.profile
, ~/.bash_profile
, ~/.bashrc
pourraient être ajoutés à votre chemin par défaut (qui devrait être identique à celui que vous avez indiqué pour root.
Vous pouvez vérifier l’un de ces fichiers (ceux que je connais le plus souvent) pour des lignes telles que
export PATH=$PATH:/usr/games:/usr/local/games:/home/monty/google_appengine
ouexport PATH=/usr/lib/lightdm/lightdm:$PATH
.bashrc
et .profile
semblent avoir des versions par défaut (/etc/profile/
et /etc/bash.basrhc
) dans /etc/
, vous pouvez les vérifier pour le chemin d'accès à la racine.
De plus, /root/
est l'équivalent de /home/<username>
pour root
. Je suppose que ce répertoire contient les fichiers ~/.profile
, ~/.bash_profile
, ~/.bashrc
, ce qui aiderait également à contrôler le $ PATH de root
.