Centos 7.4.1708 시스템에서 Puppeteer를 사용해야하지만 SELinux를 Enforcecing으로 설정하면 AVC 오류가 발생합니다.
내가 실행하면 sudo cat /var/log/messages
내가 얻을 :
SELinux is preventing /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome from search access on the directory /sys/fs/cgroup/cpuset.
***** Plugin restorecon_source (99.5 confidence) suggests *****************
If you want to fix the label.
/var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome default label should be httpd_sys_content_t.
Then you can run restorecon.
Do
# /sbin/restorecon -v /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome
같은 메시지가 6 ~ 7 번 나타날 수 있습니다.
그래도 위의 작업을 시도하면 restorecon이 파일의 컨텍스트를 설정하지 않습니다.
정책 설정 (루트로) :
semanage fcontext -a -t httpd_sys_content_t '/var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome'
정책 확인 : 표시
matchpathcon /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome
:
/var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome system_u:object_r:httpd_sys_content_t:s0
좋아 보이지만 ...
파일에 새 컨텍스트를 설정하십시오.
/sbin/restorecon -v /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome
restorecon
작동하지 않습니다. 사용하더라도 오류가 발생하지 않습니다 -vv
. 또한 강제 restorecon
로 시도했지만 -F
작동하지 않습니다.
현재 컨텍스트 파일은 다음과 같습니다
ls -Z /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome
.
-rwxrwxrwx. root root system_u:object_r:nfs_t:s0 /var/www/html/node_modules/puppeteer/.local-chromium/linux-549031/chrome-linux/chrome
현재 컨텍스트는 Vagrant running virtual box nfs_t
와 동기화 된 폴더를 사용하기 때문 nfs
입니다. Windows 호스트를 사용하여 두 가지 방법으로 동기화하지 않기 때문에 smb로 변경할 수 없습니다.
이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 나는 거의 이틀 동안 그것을했습니다.
참고 : SELinux를 Permissive로 설정하면 Puppeteer / Chromium이 문제없이 실행됩니다.
감사 :)
편집 : 또한로 httpd_use_nfs
설정했다고 언급해야 합니다 on
.
여기 내 모든 SELinux 부울의 pastebin이 있습니다.
편집 2 :
@ HBruijn의 조언을 사용하여 정의 된 컨텍스트로 마운트하려고하지만 오류가 발생합니다.
AS 루트 명령 :
mount 10.0.0.1:/C/Users/Lee/Desktop/www /var/www -o context="system_u:object_r:httpd_sys_content_t:s0"
오류:
mount.nfs: requested NFS version or transport protocol is not supported
서버 10.0.0.1
는의 개인 서버 설정입니다 vagrantfile
.
config.vm.network "private_network", ip: "10.0.0.0"
내보내기 경로는 Vagrant가 vagrant up
예 를 들어 폴더를 마운트 할 때 사용하는 경로와 동일합니다 10.0.0.1:/C/path/to/directory
.
어떤 아이디어 ??
httpd_use_nfs --> on
. 이미 가지고 있음을 언급하지 않았습니다 . OP를 편집하겠습니다.