【问题标题】:Drupal advanced ACLs for "untrusted" administrators用于“不受信任”管理员的 Drupal 高级 ACL
【发布时间】:2010-04-01 08:22:52
【问题描述】:

我有一个包含不同客户网站的多站点 Drupal-6 安装。

在每个站点上,都有一个“管理员”角色,主要包括客户的帐户。 我们希望为这个特权用户提供尽可能多的权限,但这可能会导致仅使用 Drupal Core 权限管理系统的安全漏洞。

要避免的主要事情是客户帐户能够在服务器上运行 PHP 代码(这就像以 www-data 用户身份登录服务器......听起来很糟糕)。

为避免这种情况,拒绝对该角色进行 PHP 代码评估是不够的。由于管理员角色必须具有管理用户的权限,因此他还可以更改用户 #1 的密码并以超级管理员身份登录网站。

第二个目标是也拒绝一些“令人困惑”的管理页面(例如模块选择),而不是其他页面(例如站点信息配置或主题选择等)

我发现User One 模块似乎可以解决第一个问题,但我不知道如何解决第二个问题。我发现了一些模块,但似乎没有一个适合.. 似乎大多数 ACL 被认为是保护 内容,而不是网站本身,好像网站管理员永远是服务器所有者本身..

【问题讨论】:

    标签: drupal drupal-6


    【解决方案1】:

    我感受到您的痛苦 - 很多管理功能在访问控制选项方面不够精细,虽然有许多模块可以解决一个或多个特定缺点,但我还没有找到 通用模块。

    也就是说,鉴于您的多站点设置,您可能需要仔细查看Domain Access module 及其多个“后代”。虽然主要旨在在不同域上运行一组附属站点,这些站点共享一些内容,同时保持其他内容域的特定性,但它还包含许多调整以帮助组织和管理这样的设置。所以它可以提供您正在寻找的一些功能。但请注意 - 该模块非常复杂,我只建议在适合您的设置时使用它,而不是仅仅获得一两个 ACL 功能。

    【讨论】:

      【解决方案2】:

      从角色中删除管理员用户,这样他们就无法更改密码。鼓励用户进行密码重置。

      至于分配用户角色,您可以使用角色委派模块,对于节点发布,可以使用覆盖节点选项模块。

      http://drupal.org/project/role_delegation

      http://drupal.org/project/override_node_options

      第二个模块将让您删除“管理节点”权限,从角色中删除很多“过度权力”。

      【讨论】:

      • 我正在使用 role_delegation 模块,因此管理员没有“管理权限”权限。但他需要“管理用户”来创建/删除用户。我修复了 user_one 模块的用户 #1 密码更改问题,现在我正在寻找一种方法来部分化对 site 本身的管理权限,而不仅仅是内容..(即管理员应该有权管理所有内容,更改主题和站点信息,但不能更改模块选择..)
      【解决方案3】:

      您可以从模块目录中删除 php 模块。只要您不使用任何 php 页面,就可以将其删除。

      【讨论】:

      • ..当然..但是1.(这不是一个非常干净的方法)2.它不能解决其他安全问题..我认为我发现ATM更好的解决方案是删除大多数权限并编写一个具有有限权限/更易于使用的界面的临时管理面板..
      【解决方案4】:

      我刚刚编写了PermMill 模块来解决权限过大的问题。

      drupal.org 官方 CVS 上还没有该代码,但即将推出..

      我希望这个模块对遇到这个问题的其他人有用。

      [UPDATE] 2010-04-15 19:30 +0200:我刚刚将代码上传到 CVS,第一个 6.x-1.x-dev 压缩包将于明天发布格林威治标准时间上午 0:00..

      【讨论】:

        猜你喜欢
        • 2017-03-12
        • 2020-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多