2015-12-06 74 views
0

我作出一個POST請求給一個Python腳本,然後我想保存圖像文件到服務器,在這裏的HTML文件夾是我在做什麼保存文件的Python - IO錯誤權限被拒絕

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

但後來我得到這個錯誤,IOError: [Errno 13] Permission denied:我發現它意味着這個文件有權限保存圖像,我可以通過執行chmod到777來解決它,但這是危險和不好的,所以我怎麼能保存文件但不讓任何人編輯該文件?

感謝

回答

1

您既可以更改權限或運行該腳本具有正確權限的用戶。我沒有看到很多其他的選擇。您可以讓腳本編輯權限,編寫權限,然後將權限更改回來,儘管它仍然可以編輯一段時間,而這看起來似乎是一個糟糕的主意。該腳本可能因某種原因失敗,並保留允許任何人編輯的權限。編輯:如果你可以改變你應該能寫的權限,使我的最後一個想法毫無意義。

+0

感謝您的回覆,我打電話給一些JavaScript的帖子請求腳本,所以如何設置用戶? – spenf10

+0

對不起,我沒有使用javascript的經驗。我添加了一個JavaScript標記。希望有人會前來幫忙 – Shatnerz

0

它可能顯得有些複雜,但我建議您可能要調查/ etc/sudoers文件。
出於您的目的,您可以使用名爲sudoersCmnd_Alias的腳本將文件創建到您具有/ tmp權限,然後move/var/www/html/images/的位置。
您仍然需要使用sudo來啓用Cmnd_Alias腳本,但是如果您聲明瞭NOPASSWD,那麼它應該只是在不詢問密碼sudo的情況下運行。

始終可以訪問使用visudo
該文件中的條目的一個例子的/etc/sudoesrs文件:

# 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發出,而不要求輸入密碼。