Уведомления

Группа в Telegram: @pythonsu

#1 Июль 26, 2021 15:57:33

witek
Зарегистрирован: 2021-07-26
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

subprocess.run запуск скрипта под sudo

Здравствуйте. Написал сайт для внутренних нужд который генерирует несколько фалов, т.е. при изменении БД в корне сайта создаю несколько фалов и при помощи subprocess хочу разложить их в папки принадлежащие юзерам root и proxy. Сайт работает от www-data. В скрипте, пусть будет my, написал команды копирования в папки . От рута или под sudo скрипт отрабатывает.. Прописал в sudoers разрешение на запуск скрипта
www-data ALLroot) NOPASSWD: /my
на сайте пишу

 subprocess.run(['sudo','bash','-c','/my'])
и проверяю. В /var/log/syslog Вылетает ошибка No such file or directory: ‘sudo’.
Зашел с другой стороны.
Создал пользователя в системе(Ubuntu), добавил его в группу www-data, прописал в sudoers
%www-data ALLroot) NOPASSWD: /my и под пользователем запустил sudo /my
Скрипт отработал не требуя ввода пароля. Это ожидаемое поведение. Но когда я запускаю питон (кстати версия 3.8) импортирую subprocess и ввожу
 subprocess.run(['sudo','bash','-c','/my'])
, система требует ввода пароля. Кто подскажет куда копать?

ps : стики бит добавить не вариант на шелл скриптах он не работает. (Да , имя скрипта и путь. написаны для примера, когда я создал нового юзера для проверки, в рабочем проекте все красиво с говорящими именами и правильными путями.)

Может кто предложит другое решение. Но основной затыкв том, что файлы нужно поместить в /etc/dhcp и корень сквида создавать подпапки очень не хочется, а давать права на эти папки пользователю www-data не безопасно

Заранее спасибо!

Отредактировано witek (Июль 26, 2021 15:59:30)

Офлайн

#2 Июль 27, 2021 00:07:33

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

subprocess.run запуск скрипта под sudo

Если у тебя внутри скрипта вызов sudo идёт, значит ты что-то неправильно делаешь. У тебя должен быть чистый скрипт. А права ему должны даваться снаружи тем, кто его вызывает.



Офлайн

#3 Июль 27, 2021 05:46:36

witek
Зарегистрирован: 2021-07-26
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

subprocess.run запуск скрипта под sudo

В скрипте sudo естественно нет. Там примерно такое:
cp /1 /2

Офлайн

#4 Июль 27, 2021 13:08:00

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

subprocess.run запуск скрипта под sudo

witek
В скрипте sudo естественно нет.
Так и в subprocess.run() тоже не должно быть sudo.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version