As tarefas do cron em arquivos '/etc/cron.d/' não devem conter 'sudo'?

1

Em /etc/cron.d/myjob , eu crio uma tarefa Cron de execução de um script bash e redireciono seu stdout e stderr para um arquivo de log. O script contém uma linha de sudo executando um comando.

No arquivo de log:

sudo: no tty present and no askpass program specified

Isso causa algum problema que precisa da minha atenção?

Eu queria saber se as tarefas do cron em /etc/cron.d/ arquivos não deveriam conter sudo ?

Obrigado.

    
por Tim 31.10.2018 / 00:56

1 resposta

8

"Suposto" é um julgamento.

Os comandos chamados de /etc/cron.d/ são executados como um usuário especificado ( root ou qualquer outro; ele é definido na linha cron). Então, normalmente, não há necessidade de sudo .

No entanto, se você fizer tiver um script que chame sudo , será necessário verificar se a entrada sudoers está correta. Em particular:

  • Verifique se a entrada está atribuída ao usuário que está executando o script (isso pode ser root )
  • Certifique-se de que a entrada tenha o atributo NOPASSWD definido para que possa ser executada sem que seja necessário inserir uma senha.

O erro que você está vendo é porque o comando sudo precisa de uma senha, mas não há terminal para fornecê-la.

Um script bem escrito detectaria se ele estava sendo executado com as permissões corretas e não chamaria sudo , mas há muitos scripts ruins: -)

    
por 31.10.2018 / 01:51

Tags