Как использовать sudoers для сценария Python

У меня был сценарий (названный сценарием) в ударе, и я хотел позволить пользователю (названный "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
0
задан 4 November 2016 в 20:23

1 ответ

Ваша проблема здесь в том, что команда, которую вы пытаетесь запустить с sudo, это python; скрипт является первым аргументом в python. Вместо этого ваш сценарий должен иметь права на выполнение, и вы должны запускать его как sudo script_name.

Во-вторых, когда вы делаете python script_name, он не обязательно будет искать ваш скрипт, где бы он ни хранился. Вам нужно будет либо указать полный путь, либо снова сам сценарий находится в одном из каталогов, перечисленных в переменной PATH.

2
ответ дан 28 September 2019 в 06:12

Другие вопросы по тегам:

Похожие вопросы: