我有一个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
用户,则无法编辑该文件。如何正确设置权限?
答案 0 :(得分:2)
出于正当的理由,你不被允许阅读该目录。
但是你可以:
crontab -l
crontab /path/to/file/which/will/replace/it
。一个可行的解决方案是:
crontab -l
存储在某个临时文件中。crontab /path/to/tempfile
原因在于man cron
:
不允许用户编辑该目录下的文件 直接确保只有系统允许的用户才能运行周期性任务才能添加它们,只有语法正确的crontabs才会被写入 那里。这是通过使目录只能由crontab组写入并配置crontab命令并为其设置setgid出价来实施的。 特定群体。