Tengo un daemon que se inicia como root (por lo que puede vincularse a puertos bajos). Después de la inicialización, me gustaría que deje caer los privilegios de root por razones de seguridad.Oprimir privilegios de root
¿Alguien me puede señalar en un código correcto conocido en C que hará esto?
He leído las páginas man, he visto varias implementaciones de esto en diferentes aplicaciones, y todas son diferentes, y algunas de ellas son realmente complejas. Este es un código relacionado con la seguridad, y realmente no quiero reinventar los mismos errores que otras personas están cometiendo. Lo que estoy buscando es una mejor práctica, una buena biblioteca portátil conocida que pueda usar sabiendo que lo hará bien. ¿Existe tal cosa?
Como referencia: Estoy comenzando como root; Necesito cambiar para ejecutar bajo otro uid y gid; Necesito tener los grupos suplementarios configurados correctamente; No necesito volver a privilegios de root después.
Esto varía bastante entre unixes, ¿hay alguno en particular? Si necesita una solución "portátil", va a ser un desastre, y es mejor que no acepte, por ejemplo, la función permanently_set_uid() de OpenSSH - en el uidswap.c archivo – nos