Nginx 하위 디렉터리 권한 거부 문제를 해결하는 방법은 무엇입니까?

Nginx 하위 디렉터리 권한 거부 문제를 해결하는 방법은 무엇입니까?

저는 Fedora 29 서버를 사용하고 있습니다. SELinux가 시행 모드에 있습니다. Nginx가 루트 디렉터리 아래의 하위 디렉터리에서 문서를 제공하도록 하는 데 문제가 있습니다. 권한을 확인할 때 표시되는 내용에 비해 Nginx 로그 항목이 정확하지 않기 때문에 추가로 문제를 해결하는 방법을 알아야 합니다.

http://172.16.2.1/예를 들어 index.html, 하위 디렉터리의 문서에 액세스하면 403 http://172.16.2.1/ftc-data/오류가 발생합니다. error.log보여주다:

2019/03/27 08:45:24 [error] 18589#0: *5 directory index of "/var/www/html/ftc-data/"
is forbidden, client: 172.16.4.8, server: _, request: "GET /ftc-data/ HTTP/1.1",
host: "172.16.2.1"

권한 측면 에서는 /var/www/html문제가 없다고 생각합니다.

# ls -Al
total 64
...
-rw-r-----. 1 root nginx  7822 Mar 27 08:09 index.html
lrwxrwxrwx. 1 root nginx    22 Mar 27 07:57 ftc-data -> /var/ftc/ftc-data
...

다시 /var/www/html:

# ls -Al ftc-data/
total 98192
-rw-r-----. 1 root nginx 1411314 Mar 26 06:47 2019-01-28.csv
-rw-r-----. 1 root nginx 3105895 Mar 26 06:47 2019-01-29.csv
-rw-r-----. 1 root nginx 2782858 Mar 26 06:47 2019-01-30.csv
...

그리고:

# ls -Al /var/ftc/
total 4
drwxr-x---. 2 root nginx 4096 Mar 27 07:16 ftc-data

symlinks off존재하지 않습니다 nginx.conf. 서버가 다시 시작되었습니다 systemctl restart nginx. 또한 SELinux 태그를 실행 restorecon -r /var/www/하고 수정했습니다.restorecon -r /var/ftc/

다음에는 어디에서 검색해야 할지 모르겠습니다. 0777Stack Overflow의 개발자들 사이에서 인기가 있음에도 불구하고 이는 받아들여지는 답변이 아닙니다.

권한 문제를 추가로 해결하려면 어떻게 해야 합니까?


중요한 경우 파일을 가져오려고 하면 다음과 같은 http://172.16.2.1/ftc-data/2019-01-28.csv결과가 발생합니다.

2019/03/27 09:02:39 [error] 18589#0: *13 open() "/var/www/html/ftc-data/2019-01-28.csv"
failed (13: Permission denied), client: 172.16.4.8, server: _, request: "GET /ftc-data/2019-01-28.csv HTTP/1.1",
host: "172.16.2.1"

그리고:

# namei -l /var/ftc/
f: /var/ftc/
dr-xr-xr-x root root  /
drwxr-xr-x root root  var
drwxr-xr-x root nginx ftc

# namei -l /var/www/
f: /var/www/
dr-xr-xr-x root root  /
drwxr-xr-x root root  var
drwxr-x--- root nginx www

권한 문제가 없다고 확신합니다. 잘못된 것들도 있습니다.

답변1

언급했듯이 이는 SELinux 구성과 관련이 있을 가능성이 높습니다. 제안대로이것답변, 문제를 해결하려면 다음 명령을 실행하십시오.

chcon -R -t httpd_sys_content_t /var/ftc/

# ls -Zd /var/www/html/ /var/ftc/
              unconfined_u:object_r:var_t:s0 /var/ftc/
unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/

# chcon -R -t httpd_sys_content_t /var/ftc/

# ls -Zd /var/www/html/ /var/ftc/
unconfined_u:object_r:httpd_sys_content_t:s0 /var/ftc/
unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/

관련 정보