2016-08-14 2 views
0

일부 내용을 제공하기 위해 기본 업그레이드 VM을 설정하는 데 문제가 있습니다. Nginx는 내 프로젝트 폴더의 인덱스를 제공 할 수있는 권한이 없다고 말하고 있습니다. 프로젝트 디렉토리에 대해 777에 대한 모든 사용 권한을 설정하고 Nginx 사용자를 방랑자로 변경하려고했습니다.403 권한이 거부되었습니다. nginx, vagrant, centos

나는 확실하지 오전하지만이 서버에서 사용하고 /var/log/audit/audit.log의 행은 다음과 같이가 될 때 분명히 주위를 읽고 SELinux가이 문제의 원인이 될 수 있습니다

type=AVC msg=audit(1471185070.388:854): avc: denied { getattr } for pid=4653 comm="nginx" path="/var/www/project/index.html" dev="0:37" ino=12161210 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:nfs_t:s0 tclass=file 

내의 nginx 구성은 다음과 같습니다

server { 
    listen 80 default_server; 
    server_name knifesprinter.local; 
    index index.html; 

    location /{ 
     root /var/www/project; 
     autoindex on; 
    } 

    error_page 404    /404.html; 
    location = /404.html { 
    root /usr/share/nginx/html; 
    } 

    error_page 500 502 503 504 /50x.html; 
    location = /50x.html { 
     root /usr/share/nginx/html; 
    } 
} 

/var/www/project에 대한 모든 권한이 허용됩니다. 누군가 거래가 여기에 있는지 압니까? 설치하기 전에 Nginx를 사용하기 전에 CentOS 7에는 설치하지 않았습니다.

답변

1

Yip, 확실히 SELinux 문제입니다. 제발, 시행을 0으로 설정하여 SELinux를 비활성화하지 마십시오 제발 audit2allow을 사용하여 Nginx 액세스를 허용 할 수 있습니다. 그러면 semodule을 사용하여 적용 할 수있는 정책이 생성됩니다. 다음을 root으로 실행해야합니다. 명령을 sudo 할 수는 있지만 semodule과 관련된 문제가 발생합니다.

첫째, 시스템이 audit2allow이없는 경우 :

grep httpd /var/log/audit/audit.log | audit2allow -M mypol 

그런 다음 적용 정책 :

semodule -i mypol.pp 

그것은 지적 보람을

yum install policycoreutils-python 

다음으로, 정책을 만들 그 audit2allow 필요한 것보다 더 많은 액세스 권한을 부여 할 수 있습니다. 그것에 대해 안다면 어떤 경우에는 restorecon or chcon을 사용할 수도 있습니다.

이 정보가 도움이되기를 바랍니다.

+0

그래, grep http를 사용하는 것이 어떤 이유로 작동하지 않지만 페이지로드 후에 audit2allow -a -M을 사용해야 만했다는 느낌이 들지 않았습니다. – jwtea

+0

아, 알겠습니다. 그 점을 지적 해 주셔서 감사합니다. 미래에 유용 할 수 있습니다. –

관련 문제