Форум сайта python.su
Добрый день.
У меня есть два скрипта, которые должны работать через pipe. Один скрипт должен запускать от sudo, так как он работает с COMпортом. Ниже пример кода, который должен вызывать COM.py с sudo.
import subprocess process = subprocess.Popen(['sudo','python', 'COM.py'], shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE) print process.communicate("password\n") while True: i="Test" process.stdin.write('%s\n' % str(i)) output = process.stdout.readline() print output
Офлайн
Офлайн
SingularityПробовал.
http://stackoverflow.com/questions/567542/running-a-command-as-a-super-user-from-a-python-script
Офлайн
Проблема была в том что вызывайющий скрипт нужно было вызывать через sudo, то есть:
sudo python name.py
Офлайн
А если тот скрипт, который субпроцессы запускает, его от рута стартануть?
Офлайн
А почему на уровне прав доступа к устройству не решить этот вопрос?
Ну или в sudoers можно разрешить запуск конкретной команды без пароля, если очень хочется именно sudo. Или ввод пароля обязательное условие?
p.s. Используйте ключ “-S” для sudo, что бы он читал пароль из stdin, иначе чтение будет из терминала выполняться, эта стандартная политика безопасности для консольного утиля.
..bw
Отредактировано bw (Дек. 18, 2013 18:47:46)
Офлайн