Ou` sudo trouve-t-il son PATH ?

Le
Nicolas Richard
Bonjour,

Quand j'execute sudo, il utilise une valeur de la variable PATH dont je
ne parviens pas à déterminer l'origine. Ci-dessous, la sortie de
quelques commandes qui me semblaient pertinentes mais sans succès.

La question à laquelle je cherche réponse est : d'où sort la=
référence
au chemin /usr/local/texlive/*2011*/bin/i386-linux qui apparait dans la
sortie du premier appel à sudo ? (2e commande lancée ci-dessous)


# vérif du PATH actuel
$ env | grep ^PATH
PATH=~/bin/overrideglobal:~/bin/overrideglobal:/usr/local/bin:/usr/bin:/b=
in:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.5.4:/usr/games/bin:/usr/local/=
texlive/2012/bin/i386-linux:~/bin:~/bin

$ sudo env | grep ^PATH
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bi=
n:/usr/local/texlive/2011/bin/i386-linux

$ sudo -i env | grep ^PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bi=
n:/usr/i686-pc-linux-gnu/gcc-bin/4.5.4:/usr/local/texlive/2012/bin/i386-lin=
ux:/root/bin

# je tente de comprendre
$ sudo grep -r texlive/2011 /etc

# mais je comprends pas.
$ sudo grep -r texlive/2011 ~root
/root/.bash_history:grep texlive/2011 * -r
/root/.bash_history:grep texlive/2011 . -r
/root/.bash_history:grep texlive/2011 .* -r

# Contenu de deux fichiers, modulo commentaires et lignes blanches :
$ grep -v '^#|^$' /etc/environment

$ grep -v '^#|^$' /etc/security/pam_env.conf
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bi=
n:/usr/i686-pc-linux-gnu/gcc-bin/4.5.3:/usr/local/texlive/2012/bin/i386-lin=
ux:/root/bin

Pour info, la distribution est Gentoo ; j'ai également demandé su=
r la
mailing list gentoo
(http://permalink.gmane.org/gmane.linux.gentoo.user/260603), sans
succès.

Merci d'avance pour vos pistes de réflexion.

--
Nico.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Nicolas George
Le #24890652
"Nicolas Richard" , dans le message
Quand j'execute sudo, il utilise une valeur de la variable PATH dont je
ne parviens pas à déterminer l'origine.



$ sudo grep -i PATH /etc/sudoers
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Nicolas Richard
Le #24890202
Nicolas George
"Nicolas Richard" , dans le message
Quand j'execute sudo, il utilise une valeur de la variable PATH dont je
ne parviens pas à déterminer l'origine.



$ sudo grep -i PATH /etc/sudoers
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin :/sbin:/bin"



Cela apporte au moins un élément de réponse : si je rajoute cette ligne,
cela me change effectivement le PATH. Mais je n'ai pas encore compris oà ¹
était inscrit la valeur actuelle (en tout cas, elle n'est pas dans
/etc/sudoers).

(...quelques minutes plus tard...)

AH HA !

L'incantation `sudo sudo -V' montre ceci (j'omets les passages superflus)

Configure options:
(...)
--with-secure-path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/loca l/sbin:/opt/bin:/usr/local/texlive/2011/bin/i386-linux
(...)

Cela me remplit de joie d'avoir trouvé le problème, et je me sens
humilié de n'avoir pas vu ce secure_path dans le manpage de sudoers
(d'autant que cette valeur compilée est indiquée texto dans la pa ge
man).

Bref, merci.

--
Nico.
Publicité
Poster une réponse
Anonyme