Назад | Перейти на главную страницу

Корневое задание cron не может читать файл из / root /

У меня есть задание cron в crontab root, определенное следующим образом:

0 1 * * * /usr/local/bin/tarsnap-backup-script > /tmp/tarsnapcron.txt 2> /tmp/tarsnapcron.err

Скрипт представляет собой скрипт на Python, который выполняет tarsnap, который читает ключ из /root/tarsnap.key. Этот ключ принадлежит пользователю root и chmod 400.

Если я запускаю сценарий из оболочки bash, он выполняется без ошибок. Однако в cron я получаю исключение python, напечатанное на tarsnapcron.err:

could not change directory to "/root": Permission denied

В чем разница между запуском этого скрипта как root в bash и запустив его из rootcrontab? Почему последний не может читать из /root?

У меня была та же проблема, и решение было предоставить права корневой группе:

chmod 440 /root/backup.key

После этого cron смог прочитать файл, и сценарий резервного копирования запустился без сбоев.