2015-08-22 118 views
2

我的nginx根文件夹/usr/share/nginx/html归root:root所有,但我需要用我的用户mark来添加/编辑/删除文件。另外,我正在使用PHP和fastcgi(php-fpm),我需要将文件上传到特定目录/usr/share/nginx/html/userfiles。我现在的配置是这样如下:Linux权限/拥有PHP-FPM的nginx根文件夹的所有者

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无法打开/编辑/删除这些文件)。我该如何解决它?任何建议更好的配置?

+0

'sudo groupadd webupload && sudo usermod -a -G webupload www-data && sudo usermod -a -G webupload mark && sudo chgrp -R webupload/usr/share/nginx/html/userfiles;'? – Siguza

+0

@Siguza谢谢你,但它不能正常工作,因为我可以在php日志文件中看到权限被拒绝... – Mark

回答

1

通过拥有一个通用组,您可以共享文件访问权限,但是您创建的文件和目录 必须属于该组,并且可以读写该组。

由PHP创建的文件我假设将在组www数据中,但可能没有组写入权限,除非您更改/etc/init/php-fpm.conf中的umask。添加一行:

umask 0002 

如果您的ID在其组中包含www数据,您将能够编辑该文件。

如果您创建了一个文件,它将不会在组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它。

+0

谢谢你有关于我的配置以提高安全性或其他方面的任何其他建议吗? – Mark

+0

上传文件时,请务必删除所有字符,但从提供的文件名中删除字母数字。切勿让它们可执行。检查最大上传文件大小的限制,由php强加。 – meuh

相关问题