2013-05-31 3 views
0

Итак, это путают, но по сути я использую Django, и я хочу создать подпроцесс для запуска скрипта perl. Я читал, что это может быть сделано сЗапуск подпроцесса linux в python с sudo

arg = "/some/file/path/" 
pipe = subprocess.Popen(["./uireplace", arg], stdin=subprocess.PIPE) 

, который работает, когда я называю его в соответствующей функции в views.py но сценарий требует Sudo. Затем я называю это

pipe = subprocess.Popen(["sudo","./uireplace", arg], stdin=subprocess.PIPE) 

, который работает, когда я запускаю его в питон из терминала, но это не работает, когда она вызывается случайным пользователем в Интернете. Есть ли способ автоматически вводить имя пользователя и пароль для этого sudo? Проблема в том, что это невозможно сделать с помощью подсказки, чтобы она просто терпит неудачу.

+1

Либо исправьте правильные разрешения для скрипта, вызываемого/вызывающего, либо позвоните сценарию/пользователю вызова [sudo without password] (http://askubuntu.com/questions/39281/how-to-run-an-application -при-Судо-без-а-пароль). – timss

ответ

1

Решает эту проблему на уровне ОС. Предоставление любому пользователю из Интернета права на использование sudo звучит не так. Просто сделайте ./uireplace исполняемым. Есть много вариантов для chmod, чтобы настроить его.

Смежные вопросы