Php 处理来自文件服务器和web服务器的不同用户

Php 处理来自文件服务器和web服务器的不同用户,php,nginx,sftp,Php,Nginx,Sftp,我有一个debian环境,php fpm作为用户www数据在nginx后面运行。我通过sftp以其他用户(user1)帐户上传文件 现在我遇到了权限冲突的问题,因为有些文件的所有者是www数据,有些文件的所有者是user1,我想知道如何解决这个问题 我应该吗 为此用户创建自己的php fpm池,或 www数据的用户是否可以访问user1文件,反之亦然 是否可以将上传文件的用户自动更改为www数据 这可以通过在这两个不同的用户之间共享同一组来实现。Nginx可以在某个用户和组下运行,目录权限可以

我有一个debian环境,php fpm作为用户www数据在nginx后面运行。我通过sftp以其他用户(user1)帐户上传文件

现在我遇到了权限冲突的问题,因为有些文件的所有者是www数据,有些文件的所有者是user1,我想知道如何解决这个问题

我应该吗

  • 为此用户创建自己的php fpm池,或
  • www数据的用户是否可以访问user1文件,反之亦然
  • 是否可以将上传文件的用户自动更改为www数据

这可以通过在这两个不同的用户之间共享同一组来实现。Nginx可以在某个用户和组下运行,目录权限可以在该组内传播权限

有很多变化。最简单的方法是将user1放入www数据组(假设www数据用户有自己的www数据组):

请记住,php和nginx不需要进行不同的配置,请通过www数据用户进行设置

更新:


Setuid可以提供相同的功能,而无需担心user1的许多组。请参阅此处的更多详细信息:

这可以通过在这两个不同的用户之间共享同一组来实现。Nginx可以在某个用户和组下运行,目录权限可以在该组内传播权限

有很多变化。最简单的方法是将user1放入www数据组(假设www数据用户有自己的www数据组):

请记住,php和nginx不需要进行不同的配置,请通过www数据用户进行设置

更新:


Setuid可以提供相同的功能,而无需担心user1的许多组。请参阅此处的更多详细信息:

使用www数据作为默认组很重要,还是应该使用
usermod-a-G www-data-user1
?我认为,useradd创建了一个新用户,因为SSH(sftp)、Nginx和PHP-FPM都在同一个www数据组下运行(不同的用户无关紧要),访问将被共享。如果user1将有另一个默认组,则创建的文件(通过SSH复制)将具有不同的组权限。但是setuid也可以做到这一点,而不用担心组。使用www数据作为默认组很重要,还是应该使用
usermod-a-G www-data-user1
?我认为,useradd创建了一个新用户,因为SSH(sftp)、Nginx和PHP-FPM都在同一个www数据组下运行(不同的用户无关紧要),访问将被共享。如果user1将有另一个默认组,则创建的文件(通过SSH复制)将具有不同的组权限。但是setuid也可以做到这一点,而不用担心组
useradd -g www-data user1   # make www-data group default for this user
id user1                    # you will see this user has a different default group