如何以个人用户身份运行PHP,特别是包括文件访问权限
应用程序按用户生成数据。每个用户都具有唯一的用户id和关联的唯一文件权限。用户文件存储在各个目录中,每个目录上都有相关的用户权限 这些要求是通过门户(假设是PHP)为单个用户提供仅对用户文件的安全访问。正在考虑的设计是模仿门户环境中的目录结构和权限。如果可以以用户身份运行PHP,则可以使用系统权限访问安全性。(这将把安全实现的范围限制在登录过程而不是应用程序。) 问题:是否可以以用户身份运行PHP并假定用户文件权限如何以个人用户身份运行PHP,特别是包括文件访问权限,php,security,file-permissions,Php,Security,File Permissions,应用程序按用户生成数据。每个用户都具有唯一的用户id和关联的唯一文件权限。用户文件存储在各个目录中,每个目录上都有相关的用户权限 这些要求是通过门户(假设是PHP)为单个用户提供仅对用户文件的安全访问。正在考虑的设计是模仿门户环境中的目录结构和权限。如果可以以用户身份运行PHP,则可以使用系统权限访问安全性。(这将把安全实现的范围限制在登录过程而不是应用程序。) 问题:是否可以以用户身份运行PHP并假定用户文件权限 研究发现了一些类似的问题,但不是作为单个用户运行PHP的直接问题 有几种解决方案
研究发现了一些类似的问题,但不是作为单个用户运行PHP的直接问题 有几种解决方案,从最好的到最坏的:
- 只有在用户数量较少且固定的情况下才是最佳选择,否则将成为配置/管理的噩梦
- 基本上是共享主机
- 基本上是#2,但没有第一部分,这实际上使它更复杂
TL;DR:除非您正在设置每用户虚拟主机/站点/应用程序。将文件存储在docroot之外,并使用选项#2通过PHP进行访问。如果有人发现你以root用户身份运行PHP,你的日子会很不好过。有几种解决方案,从最好的到最坏的:
- 只有在用户数量较少且固定的情况下才是最佳选择,否则将成为配置/管理的噩梦
- 基本上是共享主机
- 基本上是#2,但没有第一部分,这实际上使它更复杂
TL;DR:除非您正在设置每用户虚拟主机/站点/应用程序。将文件存储在docroot之外,并使用选项#2通过PHP进行访问。如果有人发现你以root用户身份运行PHP,你会很难过。最终应用程序将不得不访问所有用户的文件,对吗?应用程序必须运行以接收请求,并且只有基于请求才能知道它应该是什么用户。所以这里有一个基本的不匹配。虽然你可以通过大量的向后弯曲来拼凑一些东西,但这远远不是一种自然的适应。你可以尝试,但我同意你将面临一场艰苦的战斗。最终应用程序将必须访问所有用户的文件,对吗?应用程序必须运行以接收请求,并且只有基于请求才能知道它应该是什么用户。所以这里有一个基本的不匹配。虽然你可以用鹅卵石