Я могу запустить script.py
без sudo успешно, но я получаю «sudo: script.py: команда не найдена» при запуске sudo script.py
. Что мне нужно сделать, чтобы запустить sudo script.py
?
Попытайтесь добавить ./
как это:
sudo ./script.py
Вышеупомянутое принимает script.py
файл находится в Вашем текущем рабочем каталоге. .
означает "этот каталог", таким образом, ./script.py
относится к"script.py
в текущем каталоге".
Чтобы позвать исполняемый файл по имени как этот, это должно быть в одном из каталогов, сохраненных в специальной переменной $PATH
. Тот ПУТЬ отличается для Вашего обычного пользователя и для sudo
:
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
~$ sudo sh -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
По-видимому, так как сценарий находится в Вашем текущем каталоге, Вы находитесь в каталоге, который включен в ПУТЬ Вашего обычного пользователя, но не в ПУТИ sudo
. Таким образом, необходимо назвать сценарий с его полным или относительным путем:
## If it is in _this_ directory, use ./
sudo ./script.py
## Alternatively, use the full path:
sudo /home/terdon/myscripts/script.py
## or a relative path. If you're in /home/terdon/foo, use:
sudo ../myscripts/script.py