Ausführen von Kind-Prozessen als anderer Benutzer aus einem lange Laufenden Python-Prozess

Habe ich eine lange laufen, daemonisierte Python-Prozess, der verwendet Teilprozess, um zu laichen neue Kind-Prozesse, wenn bestimmte Ereignisse auftreten. Der lange andauernde Prozess wird gestartet, indem ein Benutzer mit super-user-Privilegien. Ich brauche die Kind-Prozesse erzeugt, um als ein anderer Benutzer ausgeführt (z.B., "niemand") unter Beibehaltung der super-user-Berechtigungen für den übergeordneten Prozess.

Ich bin derzeit mit

su -m nobody -c <program to execute as a child>

aber das scheint Schwergewicht und nicht sterben sehr sauber.

Gibt es eine Möglichkeit, dies zu erreichen programmgesteuert anstelle von su? Ich freu mich auf die os.set*uid-Methoden, aber der doc in der Python-std-lib ist ziemlich spärlich in diesem Bereich.

Schreibe einen Kommentar