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

19

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

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

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

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.

Maythux
источник
Большое спасибо за это. Это помогло, и я извлек уроки из этого!
Дарбехдар
0

Я думаю, что вы создали псевдоним на уровне пользователя. Вот почему ярлыки доступны только на уровне пользователя.

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

Так что вы можете использовать вашу команду псевдонима непосредственно в оболочке при входе в систему как root.

Анонимный утконос
источник
1
о чем /etc/profile? Я добавляю export $PATH = "$PATH:/opt/storm/bin"в этот файл, я думаю, что это глобальный, но я все еще не могу найти эту команду
Роджер
Может быть, этот вопрос переполнения стека может решить вашу проблему :)
Anonymous Platypus