Comment définir des variables d'environnement persistantes pour root?

31

Pour créer des variables d’environnement persistantes, j'ajoute le fichier de script au répertoire /etc/profile.d, par exemple:

# my script
export MY_VAR=var_value

Cela fonctionne correctement pour l'utilisateur actuel:

[email protected]:~$ echo $MY_VAR
var_value

Maintenant, j'ai besoin des mêmes variables d'environnement pour l'utilisateur root, mais le script /etc/profile.d ne fonctionne pas pour root:

[email protected]:~$ echo $MY_VAR
var_value
[email protected]:~$ sudo su
[email protected]:/home/alex# echo $MY_VAR

[email protected]:/home/alex# 

Comment puis-je définir les mêmes variables pour la racine?

    
posée Alex F 10.07.2012 - 12:30
la source

3 réponses

34

sudo ne conserve normalement pas les variables d'environnement locales. Vous devez l’utiliser avec le commutateur -E pour le faire, c’est-à-dire que sudo -E su conservera $ MYVAR pour root.

Pour créer des variables persistantes à l’échelle du système, vous devez également les définir dans /etc/environment .

    
réponse donnée ish 10.07.2012 - 12:47
la source
8

Comme le processus que vous définissez vous-même, par exemple en éditant '~ / .bashrc', vous pouvez définir la variable d'environnement root en éditant '/root/.bashrc'.

    
réponse donnée ppppplv 21.05.2015 - 16:50
la source
7

Defaults env_reset in /etc/sudoers réinitialisera PATH défini par /etc/environment .

Vous pouvez le modifier en Defaults !env_reset pour désactiver la réinitialisation ou ajouter:

Defaults secure_path="my/custom/path:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin
    
réponse donnée diyism 27.11.2013 - 15:14
la source

Lire d'autres questions sur les étiquettes