我试图让apache运行一个bash脚本,该脚本使用ffmpeg从mp4流中获取快照。我得到一个"输入/输出"阻止ffmpeg访问端口80的错误。
我已经获得了运行ffmpeg的apache,它似乎在端口访问时被阻止了。
我认为它是一个selinux权限问题,其中ffmpeg需要特殊权限才能在apache运行时访问端口80(或任何端口)。
脚本从命令行运行良好,它只是远程启动它就死了。
感谢您的帮助!
sudo semanage port -l | grep http_port http_port_t tcp 80,81,443,488,8008,8009,8443,9000 pegasus_http_port_t tcp 5988
ls -Z / usr / bin / ffmpeg -rwxr-XR-X。 root root system_u:object_r:bin_t:s0 / usr / bin / ffmpeg
来自var / log / audit / audit.log:
type = AVC msg = audit(1502245154.609:23912):avc:拒绝{name_connect}表示pid = 12043 comm =" ffmpeg" dest = 80 scontext = system_u:system_r:httpd_sys_script_t:s0 tcontext = system_u:object_r:http_port_t:s0 tclass = tcp_socket
type = SYSCALL msg = audit(1502245154.609:23912):arch = c000003e syscall = 42 success = no exit = -13 a0 = 3 a1 = 1775f00 a2 = 10 a3 = 7ffd7a6af0d0 items = 0 ppid = 12041 pid = 12043 auid = 4294967295 uid = 48 gid = 48 euid = 48 suid = 48 fsuid = 48 egid = 48 sgid = 48 fsgid = 48 tty =(none)ses = 4294967295 comm =" ffmpeg" EXE ="在/ usr /斌/ ffmpeg的" subj = system_u:system_r:httpd_sys_script_t:s0 key =(null)
运行Red Hat Enterprise Linux 7.4
答案 0 :(得分:1)
使用https://wiki.centos.org/HowTos/SELinux#head-faa96b3fdd922004cdb988c1989e56191c257c01
解决创建特定于访问要求的策略 - 文档中的步骤7