我有一个包含不同客户网站的多站点Drupal-6安装。
在每个网站上,都有一个“管理员”角色,主要包括客户的帐户。 我们希望为此特权用户提供尽可能多的权限,但这可能仅使用Drupal Core权限管理系统导致安全漏洞。
要避免的主要事情是客户帐户能够在服务器上运行PHP代码(就像在www-data用户身上登录服务器一样......听起来非常糟糕)。
为避免这种情况,仅拒绝对该角色进行PHP代码评估是不够的。由于管理员角色必须具有管理用户的权限,因此他还可以更改用户#1的密码并在站点中以superadmin身份登录。
第二个目标是拒绝一些“混乱”的管理页面(例如模块选择)而不拒绝其他(例如站点信息配置或主题选择等)。
我发现User One模块似乎解决了第一个问题,但我不知道如何解决第二个问题。我发现了一些模块,但似乎没有人适合..似乎大多数ACL被认为是保护内容,而不是网站本身,就好像网站管理员永远是服务器所有者本身..
答案 0 :(得分:1)
我感到很痛苦 - 相当多的管理功能对于访问控制选项都不够精细,虽然有很多模块可以解决一个或多个特定的缺点,但我还没有找到 一般模块。
也就是说,鉴于您的多站点设置,您可能需要仔细查看Domain Access module及其多个'后代'。虽然主要针对在不同域上运行一组联盟网站,这些网站共享一些内容,同时保持其他内容域特定,但它还包含许多调整,以帮助组织和管理这样的设置。所以可以提供您正在寻找的一些功能。但要注意 - 模块在复杂性方面相当野蛮,我只推荐使用它,如果它适合你的设置一般,而不是只获得一个或两个ACL功能。
答案 1 :(得分:0)
从角色中删除管理用户,以便他们无法更改密码。鼓励用户进行密码重置。
对于分配用户角色,您可以使用角色委派模块,对于节点发布,可以使用“覆盖节点选项”模块。
http://drupal.org/project/role_delegation
http://drupal.org/project/override_node_options
第二个模块将允许您删除“管理节点”权限,从角色中删除大量“超越权限”。
答案 2 :(得分:0)
您可以从modules目录中删除php模块。只要您不使用任何php页面,就可以将其删除。
答案 3 :(得分:0)
我刚刚编写了PermMill模块来修复过大的权限问题。
该代码尚未在官方drupal.org CVS上发布,但即将推出..
我希望这个模块对于达到这个问题的其他人有用。
[更新] 2010-04-15 19:30 +0200:我刚刚将代码上传到CVS,第一个6.x-1.x-dev tarball明天即将发布格林威治标准时间凌晨0点..