【问题标题】:htaccess users with different privilegeshtaccess 具有不同权限的用户
【发布时间】:2011-10-08 10:13:34
【问题描述】:

我正在尝试使用 htacess 实现以下目标:

** 管理员用户 **

/dir  <= has access to directory listing or parent dir
/dir/subdir-n  <= has access to directory listing of any sub-dir

** 客户端用户 **

/dir  <= DOES NOT have access to directory listing or parent dir (preferably Directory Index that points to a blank index.html file)
/dir/subdir-n  <= has access to directory listing of any sub-dir

基本上,我们希望我们的管理员能够看到所有具有管理员登录名的子目录列表,而我们的个人客户只能看到他们的目录,我们将与他们通信,但所有的登录名都相同。

【问题讨论】:

    标签: .htaccess .htpasswd multiple-users


    【解决方案1】:

    这应该可以通过不同子目录的不同 htpasswd 文件来实现。

    对于 adminuser,您需要创建一个 login:pw 对,在 /dir 中,您需要来自文件的 auth 用户,该文件只有您的 adminuser login:pw。

    对于 clientuser,您为该用户创建一个 login:pw 对,并将 adminuser login:pw 对附加到该目录的同一 .htpasswd 文件的新行中。

    这样,您的管理员用户可以查看所有目录,而客户端用户只能查看自己的目录。

    为了澄清,这里是您拥有的文件:

    /dir
    /subdiruser1
    /subdiruser1/.htaccess
    ...
    /.htaccess
    /.htpasswdadmin
    /.htpasswduser1
    

    在 .htpasswdadmin 中只有一行:

    admin:weofj2p8jöeoif2p84

    在 .htpasswduser1 中有两行:

    user1:we2pr832urp823rpup
    admin:weofj2p8jöeoif2p84
    

    请注意,您的 htpasswd 文件可以是任何名称,但最好以 .ht 开头,因为许多 apache 配置会阻止 Web 访问此类文件名。此外,您不应该像我的示例一样,让您的 .htpasswd 文件在 webroot 中可访问,而应将它们保存在无法从 Web 访问的文件夹中。最后一点:显然您看到了它的局限性,当需要更改或添加新的管理员密码时,您需要将该 login:pw 对添加到所有子目录 .htpasswd 文件中。

    如果有人对此有更好的解决方案,我会很好奇。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多