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_resetL'option sudoers
est activée. Cela entraîne l'exécution des commandes avec un environnement minimal contenantTERM,PATH,HOME,SHELL,LOGNAME,USERetUSERNAMEen plus des variables du processus d'appel
autorisées par leenv_checketenv_keepoptions 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_groupl'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