我的 nginx 根文件夹 /usr/share/nginx/html
归 root:root 所有,但我需要使用我的用户 mark
添加/编辑/删除文件。另外,我在 fastcgi (php-fpm) 中使用 PHP,我需要将文件上传到特定目录 /usr/share/nginx/html/userfiles
。我目前的配置如下:
sudo groupadd webdev;
sudo usermod -a -G webdev mark;
sudo chown root:webdev /usr/share/nginx/html;
sudo chmod 2775 /usr/share/nginx/html -R;
sudo chgrp -R www-data /usr/share/nginx/html/userfiles;
我发现了一些关于上传文件的问题(它们是在
/usr/share/nginx/html/userfiles
中正确创建的,但我的用户 mark
无法打开/编辑/删除这些文件)。我该如何解决?有什么更好的配置建议吗? 最佳答案
通过拥有一个公共(public)组来共享对文件的访问是正确的,但是文件和目录
您创建的必须属于该组并且还可以读/写到该组。
我假设由 PHP 创建的文件将在 www-data 组中,但除非您更改 /etc/init/php-fpm.conf
中的 umask,否则可能没有组写入权限。添加一行:
umask 0002
如果您的 id 在其组中有 www-data,您将能够编辑该文件。
如果你创建一个文件,它不会在 www-data 组中,但可能是你的
自己的组
mark
。因此,如果您希望 PHP 即 www-data 能够编辑它将您需要的文件对称地复制到
usermod -a -G mark www-data
,并确保您在创建时它们被读/写到组的文件(umask 2 和 check 或 chmod g+w)。
确保目录 userfiles 是 rwx 到组 www-data,或 chmod g+rwx 它。
关于php - 使用 PHP-FPM 的 nginx 根文件夹的 Linux 权限/所有者,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32157908/