Коли ви sudoотримуєте попередньо налаштовану конфігурацію $PATH, яка є (мабуть, що-небудь) на зразок шляху за замовчуванням кореневого користувача. Ваша програма не входить до списку каталогів, визначених $PATH.
Див. Наприклад
sudo намагається бути безпечним під час виконання зовнішніх команд.
Є два різних способи поводження зі змінними середовища. За замовчуванням
включена опція env_reset sudoers . Це призводить до того команди повинні бути виконані з мінімальною середовищем , що містить TERM,
PATH, HOME, SHELL, LOGNAME, USERі USERNAMEна додаток до змінних з процесу викликає це допускається env_checkі env_keep sudoers варіантів. Існує фактично білий список змінних середовища.
Якщо ви не можете налаштувати sudoзбереження свого $PATH, звичайним способом вирішення є визначення повного імені програми. Це може не спрацювати зі сценаріями, які викликають інші виконувані файли в каталозі (без доступу).
cd. Використанняdzdo cdповернення "команда не знайдена". Звичайно, пізніше я зрозумів, щоcdвведення в каталог, на який я не маю дозволів, не дуже допоможе, тому мені або потрібна коренева оболонка, або потрібноdzdo ls,dzdo mvі т. Д. Вміст поза цим dir.