Чому sudo не може знайти команду після того, як я додав її до PATH?


19

Я хочу додати якусь команду до PATH, щоб я міг зручно їх використовувати, наприклад:

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

але іноді stormпотрібні кореневі повноваження, але коли я ним користуюся sudo, Ubuntu не може знайти команду.

sudo storm nimbus

як я можу знайти ці команди під час використання sudo?


Що таке дозвіл на цю папку та файл?
Сергій Колодяжний

Відповіді:


29

Ви повинні додати шлях до sudoконтуру.

Виконайте команду sudo visudo

ви побачите такий рядок:

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

Тепер додайте сюди шлях своєї команди, і це має спрацювати.

Наприклад:

$ sudo storm
sudo: storm: command not found

Тепер додайте шлях, як зазначено вище:

$ sudo visudo 

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

зберегти та вийти.

тепер sudo stormпросто працюватиме нормально.

Примітка. Також слід додати шлях до шляху за замовчуванням у /etc/profile.


Дякую за це. Це допомогло, і я з цього навчився!
darbehdar

0

Я думаю, ви створили псевдонім на рівні користувача. Ось чому ярлики доступні лише на рівні користувача.

Ви повинні додати цей псевдонім командного рядка до файлу .bashrc у папці / root, а не у /home/user/.bashrc(this .bashrc файл належить обліковому запису користувача, а не root).

Так що ви можете використовувати свою команду псевдонім безпосередньо в оболонці при вході в систему як root.


1
про що /etc/profile? Я додаю export $PATH = "$PATH:/opt/storm/bin"в цей файл, я думаю, що це глобально, але я досі не можу знайти цю команду
roger

Можливо, це питання stackoverflow може вирішити вашу проблему :)
Anonymous Platypus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.