如何设置crontab权限以便apache可读

时间:2013-08-13 16:48:08

标签: apache unix cron

我有一个django应用程序,应该读取和写入crontab。但是,如果我用这个创建文件:

sudo su www-data
crontab -e

我可以看到:

# ls -la
total 12
drwx-wx--T 2 root     crontab 4096 Aug 13 16:28 .
drwxr-xr-x 5 root     root    4096 May  1  2012 ..
-rw------- 1 www-data crontab  202 Aug 13 16:28 www-data

但是django仍然无法读取和写入该文件。如果我使用sudo切换到www-data用户,则无法编辑该文件。如何正确设置权限?

1 个答案:

答案 0 :(得分:2)

出于正当的理由,你不被允许阅读该目录。

但是你可以:

  1. 使用crontab -l
  2. 阅读文件
  3. 将crontab替换为crontab /path/to/file/which/will/replace/it
  4. 一个可行的解决方案是:

    1. 将当前crontab -l存储在某个临时文件中。
    2. 您是否对该临时文件进行了修改
    3. 使用crontab /path/to/tempfile
    4. 安装该临时文件

      原因在于man cron

        

      不允许用户编辑该目录下的文件          直接确保只有系统允许的用户才能运行周期性任务才能添加它们,只有语法正确的crontabs才会被写入          那里。这是通过使目录只能由crontab组写入并配置crontab命令并为其设置setgid出价来实施的。          特定群体。