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