Nginx dav:允许写入但不允许覆盖

Nginx dav:允许写入但不允许覆盖

我有一个 nginx 服务器使用 PUT 请求接受文件,例如:

dav_methods PUT;
create_full_put_path on;
dav_access group:rw all:r;

但我想只允许“写入”访问,而不是“覆盖”访问。我试过了dav_access user:r group:r all:r;,但它会创建没有写入权限的目录,所以create_full_put_path不再起作用了……

即使“dav_access”允许我在目录和文件上设置正确的权限,但 dav 似乎并不尊重它:我为 root:root 创建了一个模式为 600 的文件,并且我被允许覆盖它,nginx 将其修改为由 www-data:www-data 拥有并在其上设置 dav_access 权限:

# ls -lah test/
total 12K
drwxr-xr-x 2 www-data www-data 4.0K Jan 16 11:05 .
drwxr--r-- 8 www-data www-data 4.0K Jan 16 11:02 ..
-rw------- 1 root     root     2.6K Jan 16 11:05 test.py

[do the upload using curl]

# ls -lah test/
total 12K
drwxr-xr-x 2 www-data www-data 4.0K Jan 16 11:05 .
drwxr--r-- 8 www-data www-data 4.0K Jan 16 11:02 ..
-rw-r--r-- 1 www-data www-data 2.6K Jan 16 11:05 test

相关内容