Possiedo un daemon che viene avviato come root (in modo che possa eseguire il binding alle porte basse). Dopo l'inizializzazione mi piacerebbe moltissimo lasciarlo cadere i privilegi di root per ragioni di sicurezza.Eliminazione dei privilegi di root
Qualcuno può indicarmi un noto come corretto codice in C che lo farà?
Ho letto le pagine man, ho esaminato varie implementazioni di questo in diverse applicazioni, e sono tutte diverse, e alcune sono davvero complesse. Questo è un codice relativo alla sicurezza e non voglio reinventare gli stessi errori che stanno facendo gli altri. Quello che sto cercando è una buona pratica, una buona conoscenza, una funzione di libreria portatile che posso usare sapendo che andrà bene. Esiste una cosa del genere?
Per riferimento: sto iniziando come root; Ho bisogno di cambiare per correre con un diverso uid e gid; Ho bisogno di avere i gruppi supplementari impostati correttamente; Non ho bisogno di tornare ai privilegi di root in seguito.
Questo varia un po 'tra gli unix - ce ne sono alcuni in particolare? Se hai bisogno di una soluzione "portatile", sarà complicato, e ti conviene afferrare per es. la funzione permanently_set_uid() di OpenSSH - in uidswap.c file – nos