запуск процесса от имени другого пользователя в Python [дубликат]

этот вопрос уже есть ответ здесь:

я запускаю скрипт как userA с корневым доступом, из этого скрипта я хочу сделать popen() вызовите и запустите другой процесс как userB.

os.с setuid() не кажется, работает для этого (если я не делаю это неправильно?), и я хотел бы избежать решения на основе linux, такого как su -userB -c <command>

есть ли подходящие для Python способ запуска процесса как userB пока скрипт работает как userA?

1 ответов


следующий ответ имеет действительно хороший подход для этого:https://stackoverflow.com/a/6037494/505154

там есть пример рабочего кода, но сводка должна использовать subprocess.Popen() с preexec_fn чтобы настроить среду подпроцесса так, чтобы он выполнялся как другой пользователь.