Root cron 作业无法从 /root/ 读取文件

Root cron 作业无法从 /root/ 读取文件

我在 root 的 crontab 中有一个 cron 作业,定义如下:

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

该脚本是一个执行的 Python 脚本tarsnap,它从中读取密钥/root/tarsnap.key。此密钥由 root 和 chmod 400 拥有。

如果我从 bash shell 运行该脚本,它会执行而不会出现错误。但是,在 cron 下,我得到了一个打印到的 python 异常tarsnapcron.err

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

root在 bash 中运行此脚本与从 的 crontab 运行此脚本有何区别root?为什么后者无法从 读取/root

答案1

我遇到了同样的问题,解决方案是授予 root 组权限:

chmod 440 /root/backup.key

此后,cron 能够读取该文件,并且备份脚本可以完美运行。

相关内容