J'ai installé eclipse dans mon répertoire personnel et mis son chemin dans PATH
dans ~/.profile
.
Donc ça marche par
$ eclipse
Mais quand l'appeler avec sudo
, eclipse
n'est pas trouvé :
$ sudo eclipse
sudo: eclipse: command not found
Quel PATH
est-ce que sudo eclipse
utiliser pour rechercher eclipse
? Est-ce l'utilisateur root
PATH
?
Merci.
Réponse acceptée :
sudo
par défaut utilise un minimal PATH
, pour le rendre sûr pour une utilisation par la racine utilisateur. Ce n'est pas nécessairement le même que le PATH
vous obtiendriez en vous connectant en tant que root utilisateur, ou en faisant
sudo su -
Par exemple, dans les nouvelles versions de Red Hat, j'ai remarqué que le chemin omet /usr/local/bin
.
La page de manuel résume cela dans une section intitulée Notes de sécurité :
sudo essaie d'être sûr lors de l'exécution de commandes externes.
Il existe deux façons distinctes de traiter les variables d'environnement. Par défaut, le
env_reset
L'option sudoers
est activée. Cela entraîne l'exécution des commandes avec un environnement minimal contenantTERM
,PATH
,HOME
,SHELL
,LOGNAME
,USER
etUSERNAME
en plus des variables du processus d'appel
autorisées par leenv_check
etenv_keep
options sudoers. Il existe effectivement une liste blanche pour
les variables d'environnement.
Lectures complémentaires :
-
sudoers - liste des utilisateurs qui peuvent exécuter quoi
secure_path
Chemin utilisé pour chaque commande 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 pouvez l'utiliser. Une autre utilisation est si vous
souhaitez que le "chemin racine" soit séparé du "chemin utilisateur". Utilisateurs du groupe
spécifié par leexempt_group
l'option ne sont pas affectées parsecure_path
. Cette option n'est pas
définie par défaut. -
sudo - exécuter une commande en tant qu'un autre utilisateur