写入权限即使在777之后也被拒绝

时间:2014-05-12 17:09:40

标签: python cgi permission-denied

我正在运行一个python CGI脚本,它必须在目录位置创建一个视频。

平台:Ubuntu 14.04 64-bit

Python版本:2.7.6

该脚本由用户运行:www-data

我有一个目录mydirmydir的权限为777(递归)。该目录由用户拥有:www-data和组www-data。 Python脚本在mydir的子目录中创建一个新目录,但是引发了异常:

IOError: [Errno 13] Permission denied: 'path/to/file.ext'

我观察到创建的新目录令人惊讶地具有以下状态:

drwxrwxr-x 3 me   me   4096 <Timestamp> newdir

当我之前检查过程时,www-data正在运行该进程,但现在该文件夹归我登录的当前用户所有。 (由'me'表示)。 此外,除了检查其他权限r-x之外,所有权限都已设置。没有书面许可。这证明了提出的例外。

我尝试os.umask(0000)以及os.chmod('mydir',0777)。第一个没有任何影响。第二个,我不知道有什么权限。有人可以帮忙吗这个问题真的很烦人。我在这里缺少什么?

注意:python文件按如下方式触发:cronjob调用PHP文件,经过一些处理,然后向Python发送一个帖子请求脚本。

编辑:如果@MattDMo的解决方案有效,请告诉我(我不会测试它,因为我改变了我的方法)。如果有人发现它有效,我会将其标记为已接受。

1 个答案:

答案 0 :(得分:1)

看起来你需要做的就是编辑你的crontab并添加www-data作为用户:

*/5 * * * * www-data php call_python.php

这也可以通过使用crontab选项运行-u从命令行完成,该选项指定要更改crontab的用户的名称:

sudo crontab -u www-data -e