A conta root é necessária nos servidores, com certeza, mas eu prefiro conceder direitos de sudo, especialmente quando há vários usuários na máquina, e isso por vários motivos:
- Eu não uso o sudo apenas para conceder TODOS os direitos para TODOS os comandos, mas também para conceder direitos específicos como um usuário específico para comandos específicos.
- Ao atribuir usuários a grupos funcionais, posso gerenciar seus direitos com esses grupos em sudoers, em vez de gerenciar usuários individualmente.
- acessos sudo são registrados no auth.log por padrão, incluindo quais usuários usaram sudo a qualquer momento.
- sudo permite gerenciar a configuração de várias máquinas com um arquivo.
- cada usuário mantém sua própria senha, portanto, não há necessidade de alterar a senha raiz quando um usuário sai.
Quanto a gerenciá-lo com scripts, novas versões do sudo suportam inclusões, mas eu prefiro usar fantoches e definir classes que concatenem o conteúdo dos sudoers.
O Puppet também pode ser associado a Augeas para gerenciar seu arquivo sudoers.