保存文件Python - 拒绝IOError权限

时间:2015-12-06 03:12:58

标签: javascript python image http chmod

我正在向python脚本发帖请求,然后我想将图像文件保存到服务器,在html文件夹中这就是我正在做的事情

fh = open("/var/www/html/images/logo.png", "wb")
fh.write(image_data.decode('base64'))
fh.close()

但是我得到了这个错误,IOError: [Errno 13] Permission denied:我发现这意味着这个文件doest有权保存图像,我可以通过chmod到777来绕过它,但那是危险和坏,所以我怎么能保存文件但不让任何人编辑文件?

由于

2 个答案:

答案 0 :(得分:1)

您可以更改权限或以具有正确权限的用户身份运行脚本。我没有看到很多其他选择。你可以让你的脚本编辑权限,写入,然后更改权限,虽然它仍然可以暂时编辑,这似乎是一个坏主意。该脚本可能由于某种原因而失败,并保留允许任何人编辑的权限。编辑:如果您可以更改您应该能够写的权限,那么我的上一个想法就毫无意义。

答案 1 :(得分:0)

它可能看起来有点令人费解,但我建议您可能要调查/ etc / sudoers文件。
出于您的目的,您可以使用名为move /var/www/html/images/的脚本在某个地方创建文件,使其具有/ tmp等权限,然后sudoers将其创建为Cmnd_Alias
您仍然需要使用Cmnd_Alias来调用sudo脚本,但如果您已使用NOPASSWD声明它,那么它应该可以在不要求sudo密码的情况下运行。

始终使用/etc/sudoesrs来访问visudo文件 该文件中条目的示例:

# Cmnd alias specification
Cmnd_Alias WEB  = /home/test.s

然后在文件中:

# User privilege specification
root    ALL=(ALL:ALL) ALL
rolf    ALL=(ALL:ALL) NOPASSWD:WEB

使用此功能,/home/test.sh将执行用户rolf设置的任务,例如在命令行/tmp时将文件从/var/www/html/images/移动到sudo /home/test.sh发出1}},无需输入密码。