我正在从事 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 或类似)。

如果是这种情况,您有以下几种选择:将文件所有权更改为主组,更改服务器运行的组,或修复服务器以包括所有补充组。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top