Ejecutar procesos secundarios como un usuario diferente de un proceso de Python de larga ejecución

Tengo un proceso de Python demonizado y de larga ejecución que utiliza un subproceso para generar nuevos procesos secundarios cuando ocurren ciertos eventos. El proceso de larga ejecución es iniciado por un usuario con privilegios de superusuario. Necesito que los procesos secundarios que genera se ejecuten como un usuario diferente (por ejemplo, "nadie") mientras se conservan los privilegios de superusuario para el proceso principal.

Actualmente estoy usando

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

Pero esto parece pesado y no muere muy limpiamente.

¿Hay una manera de lograr esto programáticamente en lugar de usar su? Estoy viendo los métodos os.set * uid, pero el documento en la versión estándar de Python es bastante escaso en esa área.

Respuestas a la pregunta(4)

Su respuesta a la pregunta