J'ai installé eclipse dans mon directory personnel et j'ai mis son path dans PATH
dans ~/.profile
.
Donc, ça marche
$ eclipse
Mais quand on l'appelle avec sudo
, l' eclipse
n'est pas trouvée:
$ sudo eclipse sudo: eclipse: command not found
Quel PATH
sudo eclipse
utiliser pour searchr eclipse
? Est-ce le PATH
root
l'user?
Merci.
sudo
par défaut utilise un PATH
minimal , pour le rendre utilisable par l'user root . Ce n'est pas nécessairement le même que le PATH
vous obtiendriez en vous connectant en tant qu'user root , ou en faisant
sudo su -
Par exemple, dans les nouvelles versions de Red Hat, j'ai remarqué que le path omis /usr/local/bin
.
La page de manuel résume cela dans une section intitulée Notes de security :
sudo essaie d'être sûr lors de l'exécution de commands externes.
Il existe deux manières distinctes de traiter les variables d'environnement. Par défaut, l'option
env_reset
sudoers est activée. Cela entraîne l'exécution des commands avec un environnement minimal contenantTERM
,PATH
,HOME
,SHELL
,LOGNAME
,USER
etUSERNAME
en plus des variables du process d'invocation autorisé par les options sudoersenv_check
etenv_keep
. Il existe effectivement une list blanche pour les variables d'environnement.
Pour en savoir plus:
sudoers – list des users pouvant exécuter
secure_path
Chemin d'access utilisé pour chaque command exécutée depuis sudo. Si vous ne faites pas confiance aux personnes qui exécutent sudo pour avoir une variable d'environnement PATH saine, vous voudrez peut-être l'utiliser. Une autre utilisation est si vous souhaitez que le "path racine" soit séparé du "path user". Les users du groupe spécifié par l'optionexempt_group
ne sont pas affectés parsecure_path
. Cette option n'est pas définie par défaut.
sudo – exécute une command en tant qu'autre user