"Un login interactif Shell est lancé après une connexion réussie, en utilisant /bin/login, en lisant le fichier /etc/passwd en lisant le fichier /etc/passwd. Cette invocation de Shell lit normalement le fichier /etc/profile. lit /etc/profile et son équivalent privé privé ~/.bash_profile au démarrage. démarrage.
Un Shell interactif sans login est normalement lancé en ligne de commande en utilisant un programme Shell (par ex, [prompt]$/bin/bash) ou par la commande /bin/su ou par la commande /bin/su. Un programme interactif sans login Shell interactif non connecté est également lancé avec un terminal programme de terminal tel que xterm ou konsole à partir de dans un environnement graphique. Ce type d'invocation de Shell normalement copie l'environnement parent et ensuite lit le fichier ~/.bashrc de l'utilisateur pour la une configuration de démarrage supplémentaire instructions de démarrage". http://www.linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html
C'est pourquoi je ne mettrais pas de variables d'environnement dans bashrc, car non seulement cela va à l'encontre de la convention commune, mais vous manquerez également vos variables bashrc lorsque vous invoquerez un terminal à partir d'un environnement de bureau graphique.
Sur Redhat, dans le /etc/profile
J'ai trouvé ce commentaire :
"Les alias et les fonctions du système doivent être placés dans /etc/bashrc. Le site personnel d'environnement et les programmes de démarrage doivent être placés dans ~/.bash_profile. Les alias et fonctions personnels doivent être placés dans ~/.bashrc".
Donc, si vous voulez définir des variables d'environnement pour un utilisateur, faites-le dans le fichier .bash_profile de l'utilisateur.
En se dirigeant vers le .bash_profile
Je lis :
"Variables d'environnement personnelles et programmes de démarrage.
Les alias et fonctions personnels doivent être placés dans ~/.bashrc. Les variables d'environnement variables d'environnement et les programmes de démarrage se trouvent dans /etc/profile. Les alias et les fonctions à l'échelle du système se trouvent dans /etc/bashrc."
Conclusion
Si vous voulez que seul l'utilisateur root puisse voir les programmes résidant, par exemple, dans / sbin
J'ajouterais ce chemin au dossier de root .bash_profile
fichier. Mais si vous voulez que chaque utilisateur puisse voir quels programmes spécifiques à la racine sont installés sur votre boîte, je mettrais /sbin
en /etc/.profile
. Maintenant, chaque utilisateur peut utiliser la complétion de tabulation pour rechercher des programmes spécifiques à la racine et élever les droits si nécessaire.
Cas particulier : SSH
Lorsque ssh est lancé avec une ligne de commande, un login interactif Shell est lancé. Mais dans ce cas /etc/profile
n'est pas lu. Lorsque j'ai défini des variables d'environnement dans le .bash_profile
de chaque utilisateur qu'il a travaillé avec ssh.