2014-10-09 373 views
1

我在运行ubuntu 14的服务器上安装了ffmpeg。我的烧瓶应用项目根目录位于/ var/www/project/ 我能够上传文件,我的python脚本能够写新文件,但是当我在我的脚本中运行ffmpeg时,它会给予权限被拒绝。 还运行在终端下面的行发生在这两种情况下虽然用户拥有权限,但ffmpeg权限被拒绝

ffmpeg -i path/to/inputfile /path/to/outputfile & ps aux | grep ffmpeg 

gives the user running the process is "ubuntu" which has write access to the project folder and its subfolders. As i told you other python script run by user "ubuntu" is able to create file. 

权限被拒绝错误(python脚本,直接在终端)

更新: 也期待在与权限的混乱,有一种方式我可以从/ home/ubuntu /项目而不是/ var/www/project运行应用程序。我正在使用mod_wsgi和Apache作为我的flask-app。

回答

0

现在我已经添加了sudo,它工作正常,但我不确定运行ffmpeg,因为sudo会导致任何安全问题。任何人请澄清这一点。

cmd='sudo ffmpeg -i '+f_name+' -acodec '+job['audio_ff']+' -b:a '+job['audio_bps']+'k -  b:v '+job['video_bps']+'k -s '+job['res_width']+'x'+job['res_height']+' '+new_file 

p=subprocess.Popen(shlex.split(cmd),stdout=subprocess.PIPE) 
0

由您的应用程序创建的文件驻留在var/www/project中,如果要读取/访问它们,则需要管理员权限。如果不使用sudo,则无法访问受管理的受保护文件。

您可以更改您的应用程序创建的文件的权利,通过的ffmpeg没有sudo访问或更改所有权与CHOWN您的用户名..

你检查,如果你的ffmpeg的可执行文件对所有的权限用户?

+0

我已经将整个项目文件夹的所有权以递归方式更改为一个组,并将运行该应用程序的用户添加到该组中。整个文件夹归新组所有。它仍然拒绝许可。 – 2014-10-11 09:14:13