通过Apache访问网络摄像头的权限

时间:2017-05-14 11:45:22

标签: apache permissions cgi

我正在尝试通过网络摄像头捕获图像并将其显示在网页上但我得到了#34;权限被拒绝错误"

我正在使用以下用户/组运行apache / etc / apache2 / envvars:

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

在html代码中我有请求:

myRequest.open("GET", "/cgi-bin/getImage1.cgi", true);
myRequest.send();

在/ usr / lib / cgi-bin中我有文件:getImage1.cgi

#!/bin/bash
rm image1.jpg
fswebcam -r 640x400 --no-banner --deinterlace -q -d /dev/video0 --jpeg 95 image1.jpg

文件和目录权限为:

In /usr/lib          drwxrwxrwx  2 root     www-data   4096 May 14 19:37 cgi-bin
In /usr/lib/cgi-bin  -rwxr-xr-x  1 www-data www-data   115  May 14 18:51 getImage1.cgi
In /dev              crw-rw----+ 1 root     video      81,0 May 14 18:02 video0

用户www-data是以下群组的成员:

$ id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data),44(video)

当我运行网页时,我收到以下错误代码:

rm: cannot remove 'image1.jpg': No such file or directory
Error opening device: /dev/video0
open: Permission denied
Unable to find a source module that can read /dev/video0.
End of script output before headers: getImage1.cgi, 

错误意味着它正在执行脚本,但用户没有足够的权限来访问/ dev / video0。 apache用户应该是www-data,它是www-data和video group的成员,因此它应该可以访问/ usr / lib / cgi-bin目录,getImage1.cgi文件和/ dev / video0网络摄像头

如果我从控制台执行脚本,它运行正常。

如果有人能提出建议,我将不胜感激。

0 个答案:

没有答案