Como executar os comandos do SUDO… no cronjobs no Ubuntu 16.04?

2

Existem certos comandos de terminal que só podem ser executados como usuário root. Se tentarmos executá-las sem a sudo palavra-chave, elas falharão com o erro Permission denied . Um exemplo seria um comando para criar um diretório / pasta em determinados locais.

Eu preciso executar um desses comandos como parte de um trabalho cron no meu Ubuntu 16.04. Normalmente eu poderia executar o comando com a palavra-chave sudo no terminal e eu seria solicitado a digitar a senha do usuário root e, em seguida, o comando seria executado com êxito.

Mas agora que preciso inserir esse comando como parte de uma tarefa cron no meu arquivo crontab , como faço isso? Como executo esse comando como parte de um cronjob?

    
por Shy 20.08.2017 / 13:53

2 respostas

3

Basta executar o usuário crontab -e como usuário root . Isso executaria seu comando com a permissão root e não há necessidade de adicionar sudo antes.

No entanto, você não pode se logar com o usuário root e você precisa executar o seu trabalho como cron job você deve especificar o caminho completo no arquivo cron:

 $ * * * * * /usr/bin/sudo /your/command

Além disso, você pode adicionar NOPASSWD na frente do seu comando no arquivo /etc/sudoers para executar o comando como root , mas sem senha.

    
por Ali Ghasempour 20.08.2017 / 14:11
2

Outra opção é colocá-lo no crontab em todo o sistema em /etc/crontab (ou em um arquivo em /etc/cron.d ), em que você pode especificar o usuário em que cada tarefa é executada:

* * * * * root mkdir /foo/bar
    
por fkraiem 20.08.2017 / 14:55