Debian/Linux 组权限未按预期工作
-
12-12-2019 - |
题
我正在从事 BOINC 项目。
我有两个用户:boincadm 和 www-data(用于 apache)。两者都属于 boinc 组
www-data : boinc www-data boincadm
boincadm : boinc adm dialout fax cdrom floppy tape audio dip www-data video plugdev netdev bluetooth lpadmin fuse scanner sambashare subversion
我有一个在/home/home/boincadm/projects/myproject/所有文件和文件夹中创建的BOINC项目:BoinCADM拥有:boinc 并拥有 rwxrwx--- 权限。
问题是 www-data 用户无法访问文件,这会导致多个错误,例如:
警告:require_once(../inc/db.inc):无法打开流:/home/boincadm/projects/myproject/html/user/index.php 中的权限被拒绝
致命错误:需要_一次():无法打开 /home/boincadm/projects/myproject/html/user/index 中所需的“../inc/db.inc”(include_path='.:/usr/share/php:/usr/share/pear')。 php
要不就
无法访问文件 XXX
在日志中..
如果我将 grant rwx 更改为“其他”(777),它会起作用。
我的问题是,为什么组权限不能按我的预期工作?有任何想法吗?
我不是 Linux 专家,因此我可能会错过一些东西。
解决方案 2
我是这样解决的:
首先我读到了这个:关联在某些时候这篇文章提到了文件 /etc/group
存储有关组的信息的时间。
我打开这个文件并提到,尽管我之前采取了行动,但没有 www-data
在团体中 boinc
. 。和不 www-data
在团体中 boincadm
反之亦然。这很奇怪!奇怪的是,我已使用以下命令将这些用户添加到 boinc 组中 usermod
命令并确保该组对于双方来说都是主要的。而且指挥 groups <username>
显示他们在组中 boinc
.
所以现在的问题是: 为什么会发生这样的事?
通过修改3行解决了这个问题:
boinc:x:1111:boincadm, www-data
boincadm:x:1112:boincadm, www-data
www-data:x:1113:www-data, boincadm
我需要全部 3 行才能使其工作。希望它对某人有帮助。我仍然想了解为什么该文件 /etc/group
使用时没有自动修改 usermod
. 。如果是的话,为什么 grops 显示正确的结果。
其他提示
这是一种可能性:
www-data
有主要组 www-data
;其余的是 补充组.
服务器进程拥有正确的用户(通过 setresuid
或类似)和主要组(通过 setresgid
或类似),但缺乏其他补充组(没有 initgroups
或类似)。
如果是这种情况,您有以下几种选择:将文件所有权更改为主组,更改服务器运行的组,或修复服务器以包括所有补充组。