У меня есть длительный, демонизированный процесс Python, который использует подпроцесс для создания новых дочерних процессов, когда происходят определенные события. Длительный процесс запускается пользователем с привилегиями суперпользователя. Мне нужно, чтобы дочерние процессы запускались, чтобы работать как другой пользователь (например, "никто" ), сохраняя при этом права суперпользователя для родительского процесса.
В настоящее время я использую
su -m nobody -c <program to execute as a child>
но это кажется тяжеловесом и не умирает очень чисто.
Есть ли способ сделать это программно, а не использовать su? Я смотрю на методы os.set * uid, но документ в Python std lib довольно разрежен в этой области.