Em vez de um shell script setuid, considere ativar um script específico com sudo
.
Mesmo que seja usado com mais frequência, sudo
não está restrito a "permitir que alguém execute qualquer programa como root". Você pode facilmente configurar "usuário A, B e C estão autorizados a executar apenas este script em particular como root" em /etc/sudoers
. Veja man sudoers
para detalhes.
Não há realmente uma vantagem de usar sudo
em vez de um script setuid, exceto que em sistemas em que scripts setuid são completamente desativados por razões de segurança, a segunda alternativa simplesmente não funciona. Você ainda pode escrever um binário setuid personalizado, mas inserir uma linha em sudoers
é mais simples, rápido e fácil de alterar mais tarde quando você deseja adicionar ou remover usuários.