Pourquoi sudo ne peut-il pas trouver une commande après l'avoir ajoutée à PATH?

19

Je veux ajouter des commandes à PATH afin de pouvoir les utiliser facilement, telles que:

export $PATH = "$PATH:/opt/storm/bin"

mais stormj'ai parfois besoin de l'autorité root, mais quand je l'utilise avec sudo, Ubuntu ne trouve pas la commande.

sudo storm nimbus

comment puis-je trouver ces commandes lorsque j'utilise sudo ?

Roger
la source
Quelles sont les autorisations sur ce dossier et ce fichier?
Sergiy Kolodyazhnyy

Réponses:

29

Vous devez ajouter le chemin au sudochemin.

Exécutez la commande sudo visudo

vous verrez une ligne comme celle-ci:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$

Ajoutez maintenant le chemin de votre commande ici et cela devrait fonctionner.

Par exemple:

$ sudo storm
sudo: storm: command not found

Ajoutez maintenant le chemin comme ci-dessus:

$ sudo visudo 

secure_path="......:/opt/storm/bin"

sauvegarder et quitter.

sudo stormva maintenant fonctionner normalement.

Remarque Vous devez également ajouter le chemin d'accès au chemin par défaut dans /etc/profile.

Maythux
la source
Merci beaucoup pour celui-ci. Cela a aidé et j'ai appris de cela!
darbehdar
0

Je pense que vous avez créé l'alias au niveau utilisateur. C'est pourquoi les raccourcis sont disponibles uniquement au niveau utilisateur.

Vous devez ajouter cette ligne de commande d'alias au fichier .bashrc dans le dossier / root et non dans /home/user/.bashrc (ce fichier .bashrc appartient au compte utilisateur non root).

Pour que vous puissiez utiliser votre commande d'alias directement dans le shell lorsque vous êtes connecté en tant que root.

Ornithorynque anonyme
la source
1
qu'en est-il /etc/profile? J'ajoute export $PATH = "$PATH:/opt/storm/bin"dans ce fichier, je pense que c'est global, mais je ne trouve toujours pas cette commande
roger
Peut-être que cette question de stackoverflow peut résoudre votre problème :)
Platypus anonyme