У меня был сценарий (названный сценарием) в ударе, и я хотел позволить пользователю (названный "userScript") выполнять его как корень, не давая пароля.
Так, я отредактировал файл/etc/sudoers и добавил 2 строки в конце:
Cmnd_Alias SCRIPT=/home/userScript/Desktop/script
userScript ALL:NOPASSWD: SCRIPT
(Сценарий в рабочем столе является символьной ссылкой для предотвращения любой модификации),
Это работало отлично. После нескольких дней мой сценарий был слишком большим, таким образом, я переписал его в Python, с файлами кратных чисел, классами...
Так, я не изменил ничего кроме цели символьной ссылки, но теперь когда я пытаюсь запустить скрипт, терминал просят пароль и дают мне ошибку (извините, если это не точно хорошее сообщение, моя Ubuntu не находится на английском языке),
Извините, пользователю userScript не разрешают выполнить "/usr/bin/python сценарий" как корень на name_of_my_computer
Я запускаю скрипт как это как пользователь "userScript":
sudo python script
Ваша проблема здесь в том, что команда, которую вы пытаетесь запустить с sudo
, это python
; скрипт является первым аргументом в python
. Вместо этого ваш сценарий должен иметь права на выполнение, и вы должны запускать его как sudo script_name
.
Во-вторых, когда вы делаете python script_name
, он не обязательно будет искать ваш скрипт, где бы он ни хранился. Вам нужно будет либо указать полный путь, либо снова сам сценарий находится в одном из каталогов, перечисленных в переменной PATH
.