我正在使用一些javascript向我的网络服务器上的/var/www/cgi-bin
中的python脚本发送一个帖子请求,然后在这个python脚本中我想将图像文件保存到我的html文件夹中,以便以后可以被检索。
位于/var/www/html
,但现在我知道如何执行此操作的唯一方法是将python脚本设置为chmod 777
,我不想这样做。
那么我怎样才能保存我使用javascript从网页上获取的文件,然后通过POST通过javascript发送到服务器?
目前,当我这样做时,我收到一条错误消息,指出python没有保存权限,因为它的chmod是755
。
我这里是python代码,我知道它的工作原理错误就是说我没有权限写这个文件
fh = open("/var/www/html/logo.png", "wb")
fh.write(photo.decode('base64'))
fh.close()
答案 0 :(得分:10)
如果您不想将该目录的权限更改为777
,则可以将目录的所有者更改为您的HTTP服务器用户,然后您的网络应用程序的用户就可以将文件写入该目录,因为它们具有该目录的rwx - 7
权限。
要做到这一点,通过(因为您使用Apache作为您的Web服务器,请记住以root身份登录):
chown -R apache:apache /var/www/cgi-bin/
请注意,只有用户apache
和root
有rwx
到该目录,其他人rx
。
这个命令意味着:
chown - change the owner of the directory
-R - operate on files and directories recursively
apache:apache - apache user, apache group
/var/www/cgi-bin/ - the directory
尝试man chown
命令查看chown
的手册页并了解详情here's a online version。
如果您需要更改它,我认为该目录的默认用户是root
。所以登录为root
,然后运行命令:
chown -R root:root /var/www/cgi-bin/
我们解决了问题in chat room。
答案 1 :(得分:0)
错误消息直接指示运行python服务器的角色/使用没有对该文件夹的写访问权。您需要分配角色或Web服务器用户。确保只提供写访问权限而不是写入+执行权限。