2012-05-21 124 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

相關問題