Articles
Root Cron Won ' t Executar script (permissão negada)
On Fevereiro 15, 2021 by adminEu editei minha guia cron raiz para periodicamente execute um script localizado na pasta de um usuário específico usando este comando:
sudo crontab -e
Quando o cron executa o script, esta é a saída:
sh: 1: /home/user/Location/Of/Script: Permission denied
Achei que o cron raiz tivesse permissão para fazer qualquer coisa. Não tenho nenhum problema quando executo este script manualmente como root.
Eu li na documentação que mais informações de erro podem ser encontradas aqui:
sudo cat /var/log/syslog
Aqui está o que eu encontrei:
Jan 30 12:30:01 backup CRON[17702]: (CRON) info (No MTA installed, discarding output)
No entanto, eu acho que isso provavelmente não está relacionado ao problema de permissão negada.
Então, o que eu realmente preciso fazer?
Comentários
Resposta
Eu acho que seu script não é executável. Portanto, use o seguinte comando para fazê-lo:
chmod +x /home/user/Location/Of/Script
Ou, se você não for o proprietário desse script:
sudo chmod +x /home/user/Location/Of/Script
Comentários
- Portanto, para que o cron execute o script, ele deve ser executável, mas manualmente como o root não ' não precisa desse sinalizador, certo?
- Depende de como você executa o script manualmente. Se você executar o script usando
./Scipt
ou/home/user/Location/Of/Script
, ' não está ok. Geralmente, qualquer script deve ser executável. Consulte Como executar um script de shell no Linux . - Isso faz sentido, mas eu realmente tenho executado esse script manualmente o ./script maneira sem encontrar quaisquer problemas de permissão até que eu tentei cron. Obrigado pela sua ajuda.
/home/user/Location/Of/Script
? Por exemplo.la -l /home/user/Location/Of/Script
. A propósito, você precisa de um MTA instalado para uso interno normal, mesmo se você não estiver enviando / recebendo e-mail externamente. Eu ' estou surpreso que seu sistema ainda não o tenha instalado.