编写文件时拒绝Python CGI脚本权限

时间:2015-11-10 02:58:51

标签: python io permissions cgi

我在/ Library / WebServer / CGI-Executables中有一个名为test.cgi的python脚本。我在/ Library / WebServer / Documents中有一个index.html文件。我的html文件包含一个发布到CGI脚本的表单,并且工作正常。当我的脚本尝试写入文件时,我收到以下错误:

enter image description here

我指定的输出目录并不重要,我得到相同的错误消息。我已经尝试更改cgi-bin文件夹和脚本的权限,但这也不起作用。有什么建议吗?

2 个答案:

答案 0 :(得分:7)

在Linux上,Web服务器通常作为非特权用户和组运行。通常用户= www-data和group = www-data,但这取​​决于您的设置。 CGI继承了这个用户和组。

要将文件创建为www-data,您需要确保该目录对该用户是可写的。

一种常见的方法是确保目录在www-data组中并且可写。以下命令是一个示例:

$ chgrp www-data /Users/user/Documents/pictures
$ chmod g+rwx /Users/user/Documents/pictures

只有当您自己加入www-data(或root)组时才会有效。

您可能希望使该目录中的现有文件可写:

$ chgrp www-data /Users/user/Documents/pictures/*
$ chmod g+rw /Users/user/Documents/pictures/*

您还需要检查www-data是否可以访问/ Users / user / Documents / pictures上方的所有目录。所以chgrp / chmod也是如果他们不对所有人开放的。

答案 1 :(得分:1)

看起来你在/Users/user/Documents/pictures/lol.jpg的某个时候没有写权限 - 你应该相应地修改权限(同时考虑到安全隐患)