2012-05-21 70 views
2

我正在BOINC项目上工作。Debian/Linux组权限不工作,因为它们应该是

我有两个用户: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/boincadm /项目/ MyProject的/ 所有文件和文件夹有被boincadm拥有创建BOINC项目:BOINC,并有rwxrwx ---权限。

问题是www数据的用户无法访问到文件,这导致多个错误,如:

Warning: require_once(../inc/db.inc): failed to open stream: Permission denied in /home/boincadm/projects/myproject/html/user/index.php

Fatal error: require_once(): Failed opening required '../inc/db.inc' (include_path='.:/usr/share/php:/usr/share/pear') in /home/boincadm/projects/myproject/html/user/index.php

或只是

Can't access the file XXX

在日志

..

如果我改变授予rwx为“其他”(777)它的工作原理..

我的问题是,为什么不要gr oup权限按我的预期工作?有任何想法吗?

我不是Linux专家,因此我可能会错过一些东西。

+1

尝试以www数据登录并尝试手动访问这些文件。在路径的某个点,权限是错误的。 – scai

+0

我无法以此用户身份登录..也许它是系统或其他东西..这是安装apache2时创建的用户。 – bravik

+0

你可以执行“su www-data”。 – scai

回答

1

这是我如何解决它:

首先我读到这个的: link 在某些时候,磨片被保存有关组的信息这篇文章中提到的文件/etc/group

我打开了这个文件,并提到,尽管我之前的操作没有www-databoinc。而www-databoincadm与之相反。这很奇怪! 奇怪,因为我已经使用usermod命令将这些用户添加到了boinc组中,并确保此组对这两者都是主要的。 此外,命令groups <username>显示它们在组boinc

所以现在的问题是:为什么会发生这种情况?

问题解决了通过修改3条线路:

boinc:x:1111:boincadm, www-data 
boincadm:x:1112:boincadm, www-data 
www-data:x:1113:www-data, boincadm 

我所需要的所有3条线路,使其工作。希望它有助于某人。我仍然想知道为什么使用usermod时文件/etc/group未被自动修改。如果是的话,为什么grops显示正确的结果。

2

这里是一个可能性:

www-data具有主要组www-data;其余的是supplementary groups

服务器进程有合适的用户(由setresuid或类似的)和主要组(由setresgid或类似),但缺少其他补充组(没有initgroups或类似的)。

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

+0

我已经确定该组是主要的两个..我最终解决..但问题被修改...请参阅我自己的答案 – bravik

相关问题