Les instructions dans Comment définir des variables PATH pour tous les utilisateurs d'un serveur ? pour définir le PATH de tous les utilisateurs "normaux". Cependant, si je fais sudo -s
そして printenv PATH
le chemin mis à jour n'est pas indiqué. J'ai jeté un coup d'œil, par exemple, à Définition du chemin d'accès à TeX Live pour la racine mais cela ne me semble pas logique, peut-être parce que je viens d'un environnement Windows. Existe-t-il un moyen de définir le chemin d'accès à l'échelle du système, de sorte que les entrées soient héritées par tous les processus en cours d'exécution sur le système ?
Réponses
Trop de publicités?Mise à jour :
La définition des variables d'environnement globales doit toujours être effectuée dans /etc/environment
mais comme vous l'avez souligné, l'utilisation de sudo -s
a l'effet de ces variables sont "disparus".
La raison en est la suivante sudo
a une politique de réinitialisation de l'environnement et la fixation d'un chemin sécurisé . Il est activé par défaut :
/etc/sudoers:
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Ainsi, tout ce qui est défini dans le /etc/environment
pour le chemin est remplacée par sudo
.
La page de manuel pour sudoers
États :
env_reset If set, sudo will reset the environment to only contain
the LOGNAME, MAIL, SHELL, USER, USERNAME and the SUDO_*
variables. 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 the secure_path option is set,
its value will be used for the PATH environment
variable. This flag is on by default.
En guise de solution de contournement, vous pouvez utiliser sudo su
qui fournira un Shell avec les privilèges de root mais contenant le bon PATH.
Réponse originale
Vous devez le définir dans /etc/environment
.
Essayer sudo YOUR_TEXT_EDITOR /etc/environment
(veillez à créer une sauvegarde au préalable).
Pour plus d'informations : Variables d'environnement
Variables d'environnement pour l'ensemble du système
Les paramètres des variables d'environnement qui affectent le système dans son ensemble (plutôt qu'un utilisateur particulier) ne doivent pas être placés dans l'un des les nombreux scripts au niveau du système qui sont exécutés lorsque le système ou la session de bureau sont chargés. session de bureau sont chargées, mais dans
/etc/environment
- Ce fichier est spécifiquement destiné à la définition de variables d'environnement pour l'ensemble du système. Ce n'est pas un fichier script, mais plutôt consiste en des expressions d'affectation, une par ligne. Plus précisément, ce fichier stocke les paramètres linguistiques et les chemins d'accès de l'ensemble du système.Non recommandé :
/etc/profile
- Ce fichier est exécuté chaque fois qu'un login bash Shell est saisi (par exemple, lors d'une connexion à partir de la console ou de ssh), ainsi que par le DisplayManager lorsque la fonction de désynchronisation est activée (par exemple, lorsque la fonction de désynchronisation est activée). ainsi que par le DisplayManager lors du chargement de la session de bureau. C'est probablement le fichier auquel vous ferez référence lorsque vous demanderez à un vétéran de l'administration du système UNIX sur les variables d'environnement. Dans Ubuntu, cependant, ce fichier ne fait rien d'autre que d'invoquer le fichier /etc/bash.bashrc.
/etc/bash.bashrc
- Il s'agit de la version système du fichier ~/.bashrc. Ubuntu est configuré par défaut pour exécuter ce fichier chaque fois qu'un utilisateur entre dans un Shell ou dans l'environnement de bureau.