我正在向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
来绕过它,但那是危险和坏,所以我怎么能保存文件但不让任何人编辑文件?
由于
答案 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}},无需输入密码。