2010-04-01 55 views
4

我有一個包含不同客戶網站的多站點Drupal-6安裝。Drupal針對「不受信任」管理員的高級ACL

在每個網站上,都有一個「管理員」角色,主要包括客戶的帳戶。 我們希望爲這個特權用戶提供儘可能多的權限,但這可能會導致僅使用Drupal核心權限管理系統的安全漏洞。

要避免的主要問題是客戶帳戶能夠在服務器上運行PHP代碼(這就像在www服務器上登錄一樣,因爲www-data用戶聽起來很糟糕)。

爲了避免這種情況,僅僅爲該角色拒絕PHP代碼評估是不夠的。由於管理員角色必須具有管理用戶的權限,因此他還可以更改用戶#1的密碼並以superadmin身份登錄站點。

第二個目標是還否認了一些「混亂」的管理頁面(如模塊選擇)而不是其他(如網站信息配置或主題選擇等)

我發現User One模塊這似乎解決了第一個問題,但我不知道如何解決第二個問題。我發現了一些模塊,但似乎沒有人適合..似乎大多數ACL被認爲是保護內容,而不是網站本身,就好像網站管理員永遠是服務器所有者本身一樣。

回答

0

我只是寫了PermMill模塊修復過大的權限問題。

的代碼不是官方drupal.org CVS還,但即將推出..

我希望這個模塊可能是別人誰達到這個問題非常有用。

[更新] 2010-04-15 19:30 +0200:我剛上傳了代碼到CVS,第一個6.x-1.x-dev的tarball明天大約凌晨0點出來GMT ..

1

我覺得你的痛苦 - 相當多的管理功能是不夠精細關於訪問控制選項,雖然有解決一個或多個特定的缺點很多模塊,我還沒有找到通用模塊這。

這就是說,考慮到你的多站點設置,你可能想仔細看看Domain Access module及其多個'後代'。雖然主要目的是在不同的域上運行一組共享網站,共享一些內容,同時保持其他內容域的特定,但它也包含許多調整來協助組織和管理這樣的設置。所以它可能提供您正在尋找的一些功能。但要注意的是 - 這個模塊非常複雜,我只會建議使用它,只要它適合您的設置,而不是隻獲得一兩個ACL功能。

0

從角色中刪除管理用戶,以便他們不能更改密碼。鼓勵用戶進行密碼重置。

至於分配用戶角色,可以使用角色委託模塊,對於節點發布,可以使用「覆蓋節點選項」模塊。

http://drupal.org/project/role_delegation

http://drupal.org/project/override_node_options

第二個模塊將讓你刪除「管理節點的權限,從角色中移除了很多「越軌權力」。

+0

我使用的是role_delegation模塊,因此管理員沒有「管理權限」權限。但他需要'管理用戶'來創建/刪除用戶。我用user_one模塊解決了用戶#1的密碼更改問題,現在我正在尋找一種方法來部分化對* site *本身的管理權限,而不僅僅是內容..(即管理員應具有管理所有內容,更改主題和站點信息,但不更改模塊選擇..) – redShadow 2010-04-01 14:24:10

+0

這可能會很棘手。 – Kevin 2010-04-01 14:27:19

0

您可以從modules目錄中刪除php模塊。只要你不使用任何PHP頁面,它可以被刪除。

+1

..當然..但是 1.(這不是一個很乾淨的方法) 2.它不能解決其他安全問題.. 我認爲更好的解決方案,我發現ATM是刪除大多數特權和寫一個具有有限權限/易於使用的界面的臨時管理面板.. – redShadow 2010-04-05 12:25:19