【问题标题】:Cron BAD FILE MODE vs permission deniedCron BAD FILE MODE vs 权限被拒绝
【发布时间】:2016-08-06 16:41:19
【问题描述】:

我有一个cron 工作来备份我的数据库:

➜  ~ crontab -l
@daily /etc/cron.d/pg_backup.sh

不过,设置适当的权限有问题。

当我有:

➜  ~ ls -l /etc/cron.d/pg_backup.sh
-rwxr-xr--. 1 root root 1359 Apr 14 21:39 /etc/cron.d/pg_backup.sh

然后检查grep "pg_backup.sh" /var/log/cron,我明白了:

localhost crond[11881]: (root) BAD FILE MODE (/etc/cron.d/pg_backup.sh)

但是,当我将pg_backup.sh 修改为:

chmod 644 pg_backup.sh

它禁用警告:

localhost CROND[11064]: (root) CMD (/etc/cron.d/pg_backup.sh)

但我明白

➜  ~ cat /var/mail/root
# ...
/bin/sh: /etc/cron.d/pg_backup.sh: Permission denied

那么合适的文件权限是什么?

【问题讨论】:

    标签: unix cron centos


    【解决方案1】:

    问题是您已将要执行的脚本安装在/etc/cron.d 目录中。该目录用于 crontab 文件,而不是 shell 命令。 (查看该目录中的现有文件。)

    crond 中有一个检查,该目录中的任何文件除了所有者(必须是root)之外的任何人都不能读取或写入,并且任何人都不能执行。因此,您必须将权限更改为 600,或者更严格的权限,以避免该消息 - 然后,如您所见,您将无法执行该脚本。

    相反,将脚本放在其他地方并更新您的 crontab:

    @daily /some/other/directory/pg_backup.sh
    

    【讨论】:

      猜你喜欢
      • 2020-04-30
      • 2020-05-25
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      • 2016-05-18
      • 2021-12-31
      • 1970-01-01
      相关资源
      最近更新 更多