Bonjour à tous.
Dans un terminal, lorsque je prend l’identité root en utilisant la commande su seule (et pas su - root), je dois retrouver normalement l’ensemble des variables d’environnement de mon compte utilisateur. Or, je constate que je les retrouve toutes, sauf une (LD_LIBRARY_PATH), qui disparait au changement d’identité.
Cette variable est créée lors de la connexion de mon user standard grâce à l’invocation du script suivant :
# Ingres environment for II installation
# Generated at installation time
TERM_INGRES=Konsole
II_SYSTEM=/opt/ingressys/
PATH=$II_SYSTEM/ingres/bin:$II_SYSTEM/ingres/utility:$II_SYSTEM/ingres/dba:$PATH
if [ $LD_LIBRARY_PATH ] ; then
LD_LIBRARY_PATH=$II_SYSTEM/ingres/lib:$II_SYSTEM/ingres/lib/lp32:$LD_LIBRARY_PATH
else
LD_LIBRARY_PATH=/lib:/usr/lib:$II_SYSTEM/ingres/lib:$II_SYSTEM/ingres/lib/lp32
fi
export II_SYSTEM TERM_INGRES PATH LD_LIBRARY_PATH
Après connexion je retrouve bien ces trois variables d’environnement chez l’utilisateur standard, mais à la suite de la commande su, je n’ai plus que les deux premières et pas la dernière.
Quel qu’un aurait-il une piste pour m’aider à comprendre pourquoi ?
Merci de ta réponse.
Ok, c’est une solution de contournement, mais je n’ai habituellement pas besoin de cette variable avec le compte root.
Dans mon cas, je prends l’identité de root pour une commande particulière qui nécessite les variables d’environnement de l’utilisateur standard ET certains droits administrateur (c’est pourquoi j’utilise su seule).
En fouillant sur le web, je me suis rendu compte que cette variable était un peu spéciale et à paramétrer avec beaucoup de précautions. En particulier, il semble déconseillé de la placer dans les fichiers de login type .profile, et par extension, dans /etc/environnement. https://www.hpc.dtu.dk/?page_id=1180
C’est normale jusque la.
LD_LIBRARY_PATH est supprimé lors de la modification temporaire de la racine, qu’elle soit exportée ou non. Ceci est fait même en utilisant su sans le -. C’est fait, par exemple, lors de l’exécution d’un programme avec le sticky-bit activé (à moins que je me trompe ).
Donc si jamais t’a besoin d’exporter un path différent pour une commande alors tu ajoutera le nécessaire dans le fichier ld.so.conf