我有一个包含以下指令的apache配置。它适用于具有多个项目的trac环境,每个项目包含允许访问的不同用户集。
我想使用通配符只允许已定义的组访问此环境,如何才能这样做?目前我的配置允许所有用户:
<LocationMatch "/private/[^/]+/login">
AuthType Basic
AuthName "Trac"
AuthUserFile /home/auth/private.access.user
Require valid-user
</LocationMatch>
但我希望它能读到:
<LocationMatch "/private/[^/]+/login">
AuthType Basic
AuthName "Trac"
AuthUserFile /home/auth/private.access.user
Require Group [^/]
</LocationMatch>
这可能吗?
答案 0 :(得分:0)
我会做的是以下......
<LocationMatch "/private/[^/]+/login">
AuthType Basic
AuthName "Trac"
AuthUserFile /home/auth/private.access.user
AuthGroupFile /home/auth/private.access.groups
Require Group group1 group2
</LocationMatch>
组文件/home/auth/private.access.groups只是一个简单的文本(ascii)文件,例如它可能如下所示:
group1: john barry
group2: frank jeremy
我不确定它是否可以在Require Group指令中使用正则表达式(我怀疑它们是),我总是命名组认证文件中列出的组的特定名称。
答案 1 :(得分:0)
使用Trac,我发现允许访问Apache配置中的每个人更容易,然后使用Trac的帐户管理器插件(http://trac-hacks.org/wiki/AccountManagerPlugin)来控制对每个项目的Trac实例的访问。撤消来自“匿名”用户的所有权限,来自group2的用户将无法对group1的Trac实例执行任何操作,除非看到错误页面并被提示登录。