La razón por la que un autor de software usaría suid / guid es porque algunas funciones del programa requieren acceso de root. Tomemos por ejemplo la utilidad ping. Para hacer toda esa comunicación ICMP, se necesita un socket en bruto. Abrir un socket en bruto requiere privilegios de root. Por lo tanto, el programa se construye como un binario suid / guid, comienza por abrir el socket sin formato y, inmediatamente después, deja de lado los privilegios de suid y guid.
La ejecución de este tipo de programas está bien siempre que pueda confiar en las personas o en la organización que escribió el programa; por ejemplo, puede confiar en la utilidad de ping que viene con una distribución importante de Linux o Unix. Si tiene el código fuente, puede leerlo usted mismo.
Los procesos auxiliares dedicados se ejecutan como root y tienen los mismos problemas de confianza que los binarios suid / guid. Mira quién escribió el ayudante y / o lee el código.