rename()(13: 권한 거부됨)에서 Nginx dav PUT 요청이 실패하는 문제를 해결하는 방법은 무엇입니까?

rename()(13: 권한 거부됨)에서 Nginx dav PUT 요청이 실패하는 문제를 해결하는 방법은 무엇입니까?

PUT기존 폴더의 루트에 있는 index.html 파일에 액세스하려고 하면 nginx가 다음과 같이 실패합니다.

[crit] 1181#0: *1 rename() "/opt/spool/nginx/client_temp/1/0000000001"
to "/opt/share/www/domain.tld/index.html-3hlCQ9iE" failed (13:
Permission denied), client: 1.2.3.9, server: host.domain.tld, request:
"PUT /www/domain.tld/index.html-3hlCQ9iE HTTP/1.1", host: "172.21.2.2"

환경

  • 저장소 nginx-extras에서 1.13.6-1을 사용합니다 entware-3x.
  • Padavan 펌웨어에서 실행됩니다.
  • $ grep www-rw /etc/passwd
    www-rw:x:1000:1001:Linux User,,,:/opt/share/www:/bin/sh
    
    $ grep www-w /etc/group
    www-w:x:1001:
    
    $ ls -l /opt/share/www
    drw-rw-r--    2 www-rw   www-w         4096 Feb  9 13:51 domain.tld
    
    $ ls -al /opt/share/www/domain.tld
    drw-rw-r--    2 www-rw   www-w         4096 Feb  9 13:51 .
    drwxr-xr-x    4 www-rw   www-w         4096 Feb  9 13:51 ..
    
    $ ls -l /opt/spool/nginx
    drwxrwxrwx    7 www-rw   root          4096 Feb  9 22:46 client_temp
    
    $ ls -l /opt/spool/nginx/client_temp
    drwx------    2 www-rw   www-w         4096 Feb  9 22:28 5
    
  • 고객:Cyberduck/6.3.3.27341

  • 클라이언트-사용자:www-rw

콘텐츠nginx.conf

user  www-rw www-w;
server {
    location /www {
        root                  /opt/share;

        client_body_temp_path /opt/spool/nginx/client_temp 1;
        dav_methods PUT DELETE MKCOL COPY MOVE;
        dav_ext_methods PROPFIND OPTIONS;
        # allow creating directories
        create_full_put_path  on;
        dav_access  user:rw  group:r  all:r;
        autoindex   on;
    }
}

반품

  • user nobody nogroup;
  • dav_access user:rw group:r all:r;
  • #autoindex ...
  • 클라이언트-사용자:admin

Nginx dav 권한 거부 오류를 해결하려면 권한에서 무엇을 수정해야 합니까?

답변1

$ ls -l /opt/share/www
drw-rw-r-- 2 www-rw www-w 4096 Feb 9 13:51 domain.tld

특별히 테스트하지는 않았지만... x거기에 권한을 추가(실행)합니다.

그건:

chmod 775 /opt/share/www/domain.tld

또는

chmod 755 /opt/share/www/domain.tld

x순진하게는 require(쓰기 권한)만 필요하다고 생각할 수 있는 일부 작업에 대해서는 디렉토리에 실행 권한이 필요합니다 w.

원천:2018년 2월 Nginx 메일링 리스트의 Francis Daly

관련 정보