Se você garantiu acesso suficiente ao script e tomou precauções sensatas, executar algo a partir do root crontab não costuma ser um risco de segurança.
Mas não execute um script como root que um usuário não raiz possa editar ou sobrescrever. Isso se aplica a tarefas executadas a partir do cron, bem como de forma interativa.
Se esse script incluir outros arquivos, o mesmo se aplica a eles também.
Em caso de dúvida, use sempre o princípio do menor privilégio. Se você ainda não tiver certeza, poderá sempre fazer perguntas específicas em fóruns e no IRC.
Existe (quase) sempre uma maneira de executar algo como um usuário não raiz. Se tudo mais falhar usando sudo para limitar um usuário a comandos específicos, também limita o potencial de causar dano.
Assim, com o exemplo que você deu de fazer o backup de / etc / apache2 / sites-available, esse arquivo é legível por qualquer pessoa, o que implica que é o acesso ao destino que é gravável apenas pelo root.
Você pode corrigir isso por
- crie um grupo chamado backupadmins (por exemplo)
- define o grupo no diretório de destino como backupadmins
- adiciona um usuário chamado backupuser (por exemplo)
- adicione o usuário backupuser ao grupo backupadmins.
- torna o diretório gravável pelo grupo backupadmins
- execute o cron job a partir do crontab do backupuser.