Почему sudo не может найти команду после того, как я добавил ее в PATH?

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

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

, но иногда storm нужны полномочия root, но когда я использую это с sudo, Ubuntu не может найти команду.

sudo storm nimbus

Как я могу найти эти команды, когда использую sudo?

21
задан 20 April 2015 в 15:57

3 ответа

Вы должны добавить путь к пути 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 .

32
ответ дан 21 April 2015 в 01:57

Думаю, вы создали псевдоним на уровне пользователя. Поэтому ярлыки доступны только на уровне пользователя.

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

Чтобы вы могли использовать свой команда alias непосредственно в оболочке при входе в систему как root.

0
ответ дан 21 April 2015 в 01:57

@Maythux объяснил, что такое безопасный путь, по которому sudo ищет исполняемые файлы

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

, вы можете добавить путь прямо в список, как подсказывает ответ, но лучший и правильный способ - создать символическая ссылка unde / usr / bin

sudo ln -s -f  /opt/storm/bin/storm /usr/bin/storm
0
ответ дан 5 January 2021 в 22:55

Другие вопросы по тегам:

Похожие вопросы: