【问题标题】:Handle different users from file and web-server处理来自文件和网络服务器的不同用户
【发布时间】:2015-07-10 18:09:56
【问题描述】:

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

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

我应该

  • 为该用户创建一个自己的 php-fpm 池或
  • 是否有可能来自 www-data 的用户可以访问 user1 文件,反之亦然,或者
  • 是否可以自动将上传文件的用户更改为www-data

【问题讨论】:

    标签: php nginx sftp


    【解决方案1】:

    这可以通过在这 2 个不同的用户之间共享同一个组来实现。 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

    【讨论】:

    • 使用 www-data 作为默认组是否重要,还是应该使用usermod -a -G www-data user1?我以为,useradd 创建了一个新用户
    • 由于 SSH (sftp)、Nginx 和 PHP-FPM 都在同一个 www-data 组下运行(不同的用户无关紧要),访问将被共享。如果您的 user1 将有另一个默认组,则创建的文件(通过 SSH 复制)将具有不同的组权限。但是 setuid 可以做同样的事情而不必担心组
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    相关资源
    最近更新 更多