权限是我在
Linux上困惑了一段时间的事情.因此,在我的Nginx和
PHP-FPM实例与用户和组一起运行时:
www-data
例如,文件将与用户和组www-data一起上传.现在,由于我在我的Web应用程序中设置权限(0440),我无法使用普通帐户通过ssh登录以下载这些文件.这不能改变.
我正在考虑更改我的Nginx和PHP实例来保留组,但是将它们更改为在我的用户名下运行.
在这里处理权限的正确方法是什么?谢谢.
解决方法
这是如何工作的:
当您通过FTP / SSH登录并上传文件时,将使用您的权限创建它们.
可能你的webroot是世界可写的(0777),这是不安全的 – 系统中的每个用户都可以在那里写东西. PHP以不同的用户权限运行(它们在PHP-FPM配置中指定,而不是Nginx配置),并且由于目录是全局可写的,PHP用户(www-data)也可以在那里写.但此文件的所有者是www-data,而不是您的帐户.它们是文件系统权限级别中的2个不同帐户.
当您通过FTP / SSH登录并上传文件时,将使用您的权限创建它们.
可能你的webroot是世界可写的(0777),这是不安全的 – 系统中的每个用户都可以在那里写东西. PHP以不同的用户权限运行(它们在PHP-FPM配置中指定,而不是Nginx配置),并且由于目录是全局可写的,PHP用户(www-data)也可以在那里写.但此文件的所有者是www-data,而不是您的帐户.它们是文件系统权限级别中的2个不同帐户.
我建议你创建具有最少权限的专用用户,这将拥有webroot目录,并将用于FTP / SSH上传,并将运行PHP.
您应该更改PHP-FPM配置,在工作部分中有用户输入和Nginx配置,因此您可以使您的网站文件不具有世界可读性和更安全性.