Il motivo per cui un autore del software usa suid / guid è perché alcune funzioni del programma richiedono l'accesso come root. Prendiamo ad esempio l'utilità ping. Per fare tutta quella comunicazione ICMP, è necessario un socket raw. L'apertura di un socket raw richiede i privilegi di root. Quindi, il programma è costruito come un binario suid / guid, inizia aprendo il socket raw e subito dopo elimina i privilegi suid e guid.
L'esecuzione di questo tipo di programmi va bene fintanto che puoi fidarti delle persone o dell'organizzazione che ha scritto il programma - ad esempio puoi fidarti dell'utilità ping che viene fornita con una distribuzione Linux o Unix importante. Se hai il codice sorgente puoi leggerlo da solo.
I processi di helper dedicati vengono eseguiti come root e hanno gli stessi problemi di trust dei binari suid / guid. Guarda chi ha scritto l'helper e / o leggi il codice.