Как запустить команду в python со всеми привилегиями

В настоящее время я работаю над проектом, и я использую django-kronos для планирования, поэтому, когда пользователь планирует задачу, я запускаю скрипт, и конец скрипта мне нужно запустить

задачи установки python manage.py

это поможет вставить задачи в crontab.

script работает нормально, когда я запускаю его в терминале, но когда я интегрирую его с моим приложением django, он выдает ошибку

IOError: Читать crontab-никто: Вам (никто) не разрешено использовать эту программу (/usr/bin/crontab)

Мне действительно любопытно узнать, в чем причина этой проблемы?

или я что-то пропустил?


person user458766    schedule 27.10.2016    source источник
comment
Сообщение об ошибке довольно явное: скрипт запускается пользователем nobody, у которого нет разрешения на использование команды crontab. Вы должны сделать так, чтобы скрипт запускался пользователем, у которого есть соответствующие разрешения. Но так как я не знаю django-kronos, я не могу рассказать вам, как это сделать.   -  person Tryph    schedule 27.10.2016
comment
chmod или chown сценарий, который вы хотите запустить.   -  person Alex    schedule 27.10.2016
comment
да, я сделал chmod и chown вещи ... даже я дал все разрешения (755) скрипту, все равно выдает ту же ошибку. Но он работает отлично, когда я вручную запускаю скрипт. Я не знаю, где он запутался :(   -  person user458766    schedule 27.10.2016
comment
@ user458766 Вы решили свою проблему?   -  person jundymek    schedule 22.06.2017


Ответы (1)


Установка флага setuid для сценария (chmod u+s) заставит сценарий выполняться как UID владельца файла сценария, если он запускается как отдельный процесс. Затем вам нужно посмотреть, кому разрешено выполнять его, и/или выполнить некоторую аутентификацию или проверку работающего пользователя, как и любого другого, выполняющего его, это будет то же самое.

Это в значительной степени обходной путь, и не рекомендуется, если в приложении доступно какое-то лучшее средство.

Насколько я вижу, django-kronos логика должна запускаться из manage.py, а не из веб-кода правильный.

person ivan_pozdeev    schedule 27.10.2016