Eu tive o mesmo problema e a solução foi conceder direitos de grupo raiz:
chmod 440 /root/backup.key
Depois disso, o cron conseguiu ler o arquivo e o script de backup foi executado sem problemas.
Eu tenho um cron job no crontab do root definido assim:
0 1 * * * /usr/local/bin/tarsnap-backup-script > /tmp/tarsnapcron.txt 2> /tmp/tarsnapcron.err
O script é um script python que executa tarsnap
, que lê a chave de /root/tarsnap.key
. Essa chave é de propriedade de root e chmod 400.
Se eu executar o script a partir do bash shell, ele será executado sem erros. No entanto, no cron, recebo uma exceção do python impressa em tarsnapcron.err
:
could not change directory to "/root": Permission denied
Qual é a diferença entre executar este script como root
no bash e executá-lo a partir do crontab de root
? Por que o último não pode ler de /root
?
Eu tive o mesmo problema e a solução foi conceder direitos de grupo raiz:
chmod 440 /root/backup.key
Depois disso, o cron conseguiu ler o arquivo e o script de backup foi executado sem problemas.
Tags permissions cron