在Apache2中可以有两个密码文件吗?

在Apache2中可以有两个密码文件吗?,apache,apache2,basic-authentication,Apache,Apache2,Basic Authentication,在apache2/sites enabled/000默认配置文件中是否可以有两个AuthUserFile指令 <Location /repo/trac> AuthType Basic AuthName "Trac" AuthUserFile /etc/apache2/passfile1 AuthUserFile /etc/apache2/passfile2 Require valid-user </Lo

在apache2/sites enabled/000默认配置文件中是否可以有两个AuthUserFile指令

    <Location /repo/trac>
      AuthType Basic
      AuthName "Trac"
      AuthUserFile /etc/apache2/passfile1
      AuthUserFile /etc/apache2/passfile2
      Require valid-user
    </Location>

AuthType Basic
AuthName“Trac”
AuthUserFile/etc/apache2/passfile1
AuthUserFile/etc/apache2/passfile2
需要有效用户
我想要两种类型的用户的用户名/密码

  • 开发人员-可以访问SVN和Trac
  • NOM-只能访问Trac

我有两个选择:为Trac和Svn保留单独的密码文件并分别包含它们,或者在1中有2个密码文件。我将DEV放在其他NOM中,仅为Svn包含1个密码文件,并在Trac位置下包含两个密码文件。

您应该将所有内容移动到单个密码文件中,然后使用组控制对特定资源的访问。您可以创建
/etc/apache2/groups
,内容如下:

DEV: bob alice
NOM: norm fred bart
然后修改您的配置,使其如下所示:

<Location /repo/trac>
  AuthType Basic
  AuthName "Trac"
  AuthUserFile /etc/apache2/passfile
  AuthGroupFile /etc/apache2/groups
  Require group DEV NOM
</Location>

AuthType Basic
AuthName“Trac”
AuthUserFile/etc/apache2/passfile
AuthGroupFile/etc/apache2/groups
需要组开发名称
这将允许
DEV
NOM
组的成员访问此资源


如果您确实想使用多个密码文件,请参阅的文档,其中有一个例子可以做到这一点。

从文档中,您实际上可以拥有多个密码文件。诀窍是使用AuthnProviderAlias

将按顺序查询提供程序,直到提供程序找到所请求用户名的匹配项,此时唯一的提供程序将尝试检查密码。验证密码失败不会导致将控制权传递给后续提供程序


为什么要将它们放在不同的文件中?如果你陈述你的目标,可能会有更好的解决方案。我更新了问题,谢谢!你的观点是,不可能像我那样包含两个文件?我的观点是,如果你的目标是允许不同的人群访问不同的资源,那么你最好的解决方案就是使用专门为实现这一点而设计的设施……但是请看我的更新。我同意,使用群组方式更好:)
<AuthnProviderAlias file file1>
    AuthUserFile "/www/conf/passwords1"
</AuthnProviderAlias>

<AuthnProviderAlias file file2>   
    AuthUserFile "/www/conf/passwords2"
</AuthnProviderAlias>

<Directory "/var/web/pages/secure">
    AuthBasicProvider file1 file2
    AuthType Basic
    AuthName "Protected Area"
    Require valid-user
</Directory>