这是Linux / PHP权限的一个方面,总是让我兴奋,我不明白如何解决它。
我需要允许我的PHP脚本更新' phone-guide.json'由< user1'。
拥有
PHP在我的网络服务器上作为www-data运行。
<?php exec('whoami'); ?> // outputs 'www-data'
在etc / group中,&#39; user1&#39;是www-data&#39;的一部分。小组,反之亦然。
如果&#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)。
答案 0 :(得分:1)
您需要将phone-guide.json
组更改为www-data
:
chgrp www-data phone-guide.json
答案 1 :(得分:0)
在Linux文件中属于用户和组。默认情况下,您的文件属于您的用户名,您的用户名也是其所属的组。现在,仅仅因为两个用户属于同一个组,就不会授予user1读取,写入或修改user2文件的权限。现在,如果文件属于该组,则该组的任何成员都可以修改这些文件。
例如,
现在,另一个例子:
因此,为了使www-data能够更新phone-guide.json文件,phone-guide.json必须属于www-data组。要做到这一点,请执行@Marek建议的chgrp www-data phone-guide.json
。