Linux权限和PHP - 组

时间:2014-07-01 15:02:03

标签: php linux permissions

这是Linux / PHP权限的一个方面,总是让我兴奋,我不明白如何解决它。

我需要允许我的PHP脚本更新' phone-guide.json'由< user1'。

拥有

enter image description here

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

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

在etc / group中,&#39; user1&#39;是www-data&#39;的一部分。小组,反之亦然。

enter image description here

如果&#39; www-data&#39;与&#39; user1&#39;位于同一组中,这是一个运行为&www; www-data&#39;的PHP脚本。 应该能够更新/更改/修改phone-guide.json文件,因为它也是&#39; user1&#39;组(rwx)组权限...正确吗?

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

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

2 个答案:

答案 0 :(得分:1)

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

chgrp www-data phone-guide.json

答案 1 :(得分:0)

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

例如,

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

现在,另一个例子:

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

因此,为了使www-data能够更新phone-guide.json文件,phone-guide.json必须属于www-data组。要做到这一点,请执行@Marek建议的chgrp www-data phone-guide.json