NGinx和PHP应该运行的用户是什么?

Modified on: Tue, 20 Aug 2019 08:00:02 +0800

权限是让我在Linux上困惑一段时间的事情。因此,当我的NGinx和PHP-FPM实例与用户和组一起运行时:

  

WWW的数据

这是标准吗?当我遇到文件上传时,我遇到了麻烦。

示例,文件将与用户和组www-data一起上传。现在,由于我在我的Web应用程序中设置权限(0440),我无法使用普通帐户通过ssh登录以下载这些文件。这不能改变。

我正在考虑更改我的nginx和php实例以保留该组,但将其更改为在我的用户名下运行。

这里处理权限的正确方法是什么?谢谢。

最佳答案

这是如何工作的:
当您通过FTP / SSH登录并上传文件时,将使用您的权限创建它们。
可能你的webroot是世界可写的(0777),这是不安全的 - 系统中的每个用户都可以在那里写东西。 PHP以不同的用户权限运行(它们在PHP-FPM配置中指定,而不是nginx配置),并且由于目录是全局可写的,PHP用户(www-data)也可以在那里写。但此文件的所有者是www-data,而不是您的帐户。它们是文件系统权限级别中的2个不同帐户。

我建议您创建具有最少权限的专用用户,这将拥有webroot目录并将用于FTP / SSH上载并将运行php。
您应该更改PHP-FPM配置,在工作区中有用户输入和NGINX配置,这样您就可以使您的网站文件不具有世界可读性和更安全性。

不要使用特权(sudo功能,写权限外部docroot)用户运行PHP,这可能会导致服务器安全性受损。

作者:Kristaps

相关问答

添加新评论