J'ai défini certaines variables d'environnement de la manière suivante :
MY_VAR='helloworld'
export MY_VAR
Ensuite, je suis passé à un autre utilisateur via
su SOME_OTHER_USER
Je fais écho à la variable MY_VAR et je vois sa valeur !
1) Pouvez-vous expliquer ce problème ? D'après ce que je comprends, lorsque j'exporte une variable via la commande export, il ne s'agit pas d'une exportation "globale", mais d'une variable locale à l'utilisateur. Pourquoi est-ce que je vois cela ?
2) Initialement, j'avais une supposition : peut-être, quand je passe à un autre utilisateur, je démarre un processus enfant de mon processus bash, et c'est pourquoi je peux voir ma variable parce que les vars exportées sont passées à tout processus enfant de Shell actuel. Mais la commande ps ---pid <my bash's pid which I got with echo $$>
ne montre que le même pid en sortie. Il semble donc que cela signifie qu'il n'y a pas de processus enfant lié à mon processus bash et que su ne démarre aucun processus. Est-ce que j'ai raison ? (au fait, je ne vois pas un seul 'enfant' de cette façon, même si je démarre un autre processus bash avec la commande bash, je ne sais pas pourquoi).
3) Enfin, qui peut voir la variable que j'ai exportée de cette façon ? Si je lance un autre processus à partir de l'interface graphique de mon système d'exploitation, vais-je la voir ? Il semble que non, car si je lance un autre terminal, je ne la vois pas. Quelle est donc la portée et la durée de vie de ma variable exportée ?
J'utilise Debian Wheezy. J'exécutais ma commande depuis RootTerminal sous l'utilisateur Root.