处理来自文件和网络服务器的不同用户
Handle different users from file and web-server
我有一个 debian 环境,在 nginx 后面有 php-fpm 运行 作为用户 www-data。我通过 sftp 以其他用户 (user1) 帐户上传文件。
现在我遇到了权限冲突的问题,因为有些文件的所有者是 www-data 而有些文件的所有者是 user1,我想知道如何解决这个问题。
我应该
- 为此用户创建自己的 php-fpm 池或
- 来自 www-data 的用户是否可以访问 user1 文件,反之亦然或
- 是否可以自动将上传文件的用户更改为www-data
这可以通过在这两个不同的用户之间共享同一个组来实现。 Nginx可以运行在某个用户和某个组下,目录权限可以在该组内分散权限。
有很多变化。最简单的是将user1放入www-data组(假设www-data用户有自己的www-data组):
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
请记住 php 和 nginx 不需要进行不同的配置,让它们通过 www-data 用户进行设置。
更新:
Setuid 可以提供相同的功能,而不必担心 user1 的许多组。在此处查看更多详细信息:https://en.m.wikipedia.org/wiki/Setgid
我有一个 debian 环境,在 nginx 后面有 php-fpm 运行 作为用户 www-data。我通过 sftp 以其他用户 (user1) 帐户上传文件。
现在我遇到了权限冲突的问题,因为有些文件的所有者是 www-data 而有些文件的所有者是 user1,我想知道如何解决这个问题。
我应该
- 为此用户创建自己的 php-fpm 池或
- 来自 www-data 的用户是否可以访问 user1 文件,反之亦然或
- 是否可以自动将上传文件的用户更改为www-data
这可以通过在这两个不同的用户之间共享同一个组来实现。 Nginx可以运行在某个用户和某个组下,目录权限可以在该组内分散权限。
有很多变化。最简单的是将user1放入www-data组(假设www-data用户有自己的www-data组):
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
请记住 php 和 nginx 不需要进行不同的配置,让它们通过 www-data 用户进行设置。
更新:
Setuid 可以提供相同的功能,而不必担心 user1 的许多组。在此处查看更多详细信息:https://en.m.wikipedia.org/wiki/Setgid