Почему sudo не может найти команду после того, как я добавил ее в PATH?
Я хочу добавить некоторые команды в PATH, чтобы их можно было удобно использовать, например:
export $PATH = "$PATH:/opt/storm/bin"
но иногда storm
нужны полномочия root, но когда я использую его с sudo
, Ubuntu не может найти команду.
sudo storm nimbus
как я могу найти эти команды, когда я использую sudo
?
2 ответа
Вы должны добавить путь к 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
,
Я думаю, что вы создали псевдоним на уровне пользователя. Вот почему ярлыки доступны только на уровне пользователя.
Вы должны добавить эту командную строку псевдонима в файл.bashrc в папке / root, а не в /home/user/.bashrc(этот файл.bashrc принадлежит учетной записи пользователя, а не root).
Так что вы можете использовать вашу команду псевдонима непосредственно в оболочке при входе в систему как root.
@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