Como é difícil acertar, sugiro remover o SUID em seu código. Altere seu código C para usar sudo
. Usando o sudo, os aspectos mais difíceis de obter uma programação segura do sistema são feitos.
Depois, você pode construir cuidadosamente uma configuração sudo, usando o visudo, que faz o mínimo necessário para executar a tarefa e restringir isso aos usuários / grupos necessários. Depois de configurar o sudo, peça a alguém que não seja você para testá-lo e tentar quebrar as restrições pretendidas.