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
。