Se você garantiu o acesso suficiente ao script e tomou precauções sensatas, executar algo do roots crontab geralmente não é um risco à segurança.
Mas não execute um script como root que um usuário não root possa editar ou substituir. Isso se aplica aos trabalhos executados a partir do cron, bem como interativamente.
Se esse script incluir outros arquivos, o mesmo se aplicará 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, sempre poderá fazer perguntas específicas nos fóruns e no IRC.
Sempre existe (quase) uma maneira de executar algo como um usuário não root. Se tudo mais falhar, o uso do sudo para limitar um usuário a comandos específicos também limitará o potencial de causar danos.
Portanto, com o exemplo que você deu do backup de / etc / apache2 / sites-available, esse arquivo é legível por padrão por qualquer pessoa, o que implica que é o acesso ao destino que pode ser gravado somente pela raiz.
Você poderia consertar isso
- crie um grupo chamado backupadmins (por exemplo)
- defina o grupo no diretório de destino para backupadmins
- adicione um usuário chamado backupuser (por exemplo)
- adicione o usuário backupuser ao grupo backupadmins.
- torne o diretório gravável pelo grupo backupadmins
- execute o trabalho cron a partir do crontab do backupuser.
Depende do que os scripts estão fazendo. Se eles estão fazendo o backup das coisas, provavelmente é bom que sejam root - se um usuário mal-intencionado substituir esses scripts, você provavelmente terá problemas maiores.
Se eles fazem coisas estúpidas, como a execução de arquivos encontrados em diretórios, ou qualquer coisa que possa ser influenciada pelo conteúdo dos diretórios da Web, você provavelmente precisará procurar alternativas.
fonte
Milhões de trabalhos cron em todo o mundo estão sendo executados como raiz todos os dias (ou em qualquer período que eles estejam programados para executar).
O importante é que as permissões adequadas sejam definidas. Se você estiver executando algo que pode ser gravado por todos, um usuário ou processo malicioso pode mudar o que está fazendo.
Os trabalhos do Cron são executados pelo proprietário do crontab, em geral. Um usuário crontab pode estar dentro,
/var/spool/cron/crontabs/username
por exemplo. Cronjobs que se encontram em/etc/crontab
,/etc/cron.d/
ou/etc/cron.hourly
(diária, semanal, mensal) vai ser executado por raiz. É importante que a propriedade e as permissões também estejam corretas para esses arquivos crontab.fonte