219 votes

Commande non trouvée lors de l'utilisation de sudo

J'ai un script appelé foo.sh dans mon dossier personnel.

Lorsque je navigue dans ce dossier, et que je saisis ./foo.sh j'obtiens

-bash: ./foo.sh: Permission denied .

Quand j'utilise sudo ./foo.sh j'obtiens

sudo: foo.sh: command not found .

Pourquoi cela se produit-il et comment puis-je y remédier ?

2voto

Jeff MacDonald Points 447

Il semble que linux dira "commande non trouvée" même si vous donnez explicitement le chemin du fichier.

[veeam@jsandbox ~]$ sudo /tmp/uid.sh;echo $?
sudo: /tmp/uid.sh: command not found
1
[veeam@jsandbox ~]$ chmod +x /tmp/uid.sh
[veeam@jsandbox ~]$ sudo /tmp/uid.sh;echo $?
0

Cette erreur est quelque peu trompeuse, mais elle est probablement correcte sur le plan technique. Un fichier n'est pas une commande tant qu'il n'est pas exécutable, et ne peut donc pas être trouvé.

2voto

Essayez chmod u+x foo.sh au lieu de chmod +x foo.sh si vous avez des difficultés avec les guides ci-dessus. Cette solution a fonctionné pour moi alors que les autres solutions n'ont pas fonctionné.

1voto

Empus Points 338

En ce qui concerne le message "command not found" lors de l'utilisation de sudo, un moyen beaucoup plus simple serait d'éditer secure_path.

Il est parfaitement décrit ici : https://superuser.com/questions/927512/how-to-set-path-for-sudo-commands

0voto

Ok, voici ma solution : dans ~/.bash_aliases ajoutez simplement ce qui suit :

# ADDS MY PATH WHEN SET AS ROOT
if [ $(id -u) = "0" ]; then
   export PATH=$PATH:/home/your_user/bin 
fi

Voila ! Maintenant vous pouvez exécuter vos propres scripts avec sudo ou en tant que Root sans avoir à faire un export PATH=$PATH:/home/votre_utilisateur/bin à chaque fois.

Notez que je dois être explicite lorsque j'ajoute mon PATH puisque HOME pour le superutilisateur est /Root

0voto

sampson-chen Points 13413

Vous pouvez aussi essayer :

. foo.sh

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X