在我的Django应用程序中,我想上传并执行一个bash脚本。上传没问题,但脚本没有执行。我在/ home / ubuntu0 / example / tmp上传文件。我已经改变了这个的主人 在运行Django应用程序之前,目录到web-data,以便上传肯定会成功。像这样:
sudo chown -R web-data:web-data /home/ubuntu0/exampl/tmp
我启动了Django应用程序,如上所述,上传成功。但是,上传的bash脚本的权限是只读的。这就是为什么在调用之前:
os.system(<uploaded_bash_script_filename>)
在apps的views.py的uploadAndExecute函数中,我插入了:
os.chmod(<uploaded_bash_script_filename>, 777)
第一。但是,脚本没有执行,当我检查上传的bash脚本的权限时,它仍然是只读的。我确实尝试使用子进程模块来更改权限并执行脚本:
subprocess.call(['sudo', 'chmod', '777', <uploaded_bash_script_filename>])
subprocess.call(['sudo', <uploaded_bash_script_filename>])
但是在chmod部分,我有一个'没有这样的文件或目录'错误。似乎子进程模块无法看到上传的bash脚本,尽管它确实存在(通过浏览/ ls)。
我将如何解决这个问题?任何想法都非常感谢。 提前谢谢!