【问题标题】:Linux Permissions And PHP - GroupsLinux 权限和 PHP - 组
【发布时间】:2014-08-22 04:56:30
【问题描述】:

这是 Linux/PHP 权限的一个方面,它总是让我感到困惑,我不知道如何解决它。

我需要允许我的 PHP 脚本更新“user1”拥有的“phone-guide.json”。

PHP 在我的网络服务器上作为 www-data 运行。

<?php exec('whoami'); ?> // outputs 'www-data'

在 etc/group 中,“user1”是“www-data”组的一部分,反之亦然。

如果“www-data”与“user1”在同一组中,则以“www-data”身份运行的 PHP 脚本应该能够更新/更改/修改电话指南。 json 文件,因为它也是具有 (rwx) 组权限的“user1”组的一部分......对吗?

但是,我的 PHP 脚本无法更新 phone-guide.json 文件直到我将 phone-guide.json 的所有权和组更改为 www-data:www-data ...然后一切正常。

虽然 775 (rwxrwxr-x) 权限的全部目的是让属于同一组的任何用户都可以读取/写入/执行文件 (rwx)。

【问题讨论】:

  • 你不是把组和用户搞混了吗?
  • 就目前而言,您的 phone-guide.json 属于 user1 组。您需要根据 Marek 的回答进行更改。

标签: php linux permissions


【解决方案1】:

您需要将phone-guide.json的群组更改为www-data

chgrp www-data phone-guide.json

【讨论】:

    【解决方案2】:

    在 Linux 中文件属于一个用户和一个组。默认情况下,您的文件属于您的用户名,您的用户名也是它所属的组。现在,仅仅因为两个用户属于同一个组并不会授予 user1 读取、写入或修改 user2 文件的权限。现在,如果文件属于该组,则该组的任何成员都可以修改文件。

    例如,

    • foo.txt 属于用户 user1 和组 user1
    • user1 属于组栏
    • user2 属于组栏
    • user2 没有相应的组权限来修改 foo.txt

    现在,另一个例子:

    • foo.txt 属于用户 user1 和组 bar
    • user1 属于组栏
    • user2 属于组栏
    • user1 和 user2 都可以执行组权限允许的任何操作

    因此,为了使 www-data 能够更新 phone-guide.json 文件,phone-guide.json 必须属于 www-data 组。为此,请按照 @Marek 的建议 chgrp www-data phone-guide.json

    【讨论】:

      猜你喜欢
      • 2012-12-17
      • 1970-01-01
      • 2013-06-15
      • 2015-07-16
      • 2014-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多