我在 CentOS 7 上运行 Apache 2.4.6-93。我需要的是:每个用户都应该有自己的主目录(通过 UserDir 实现),但目录需要密码保护。一个用户应该不能看到另一个用户的目录。
我可以通过这种方式使用 AD 设置身份验证:
<Directory "/mnt/shared/apache_userdir/*/private_html">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
AuthName "Please Login"
AuthBasicProvider ldap
AuthType Basic
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeIsDN On
AuthLDAPURL ldap://x.x.x.x:389/DC=example,DC=org?sAMAccountName?sub?(objectClass=*)
AuthLDAPBindDN CN=binduser,OU=someou,OU=anotherou,DC=example,DC=org
AuthLDAPBindPassword somepassword
Require ldap-group CN=group-test-1-,OU=someou,OU=anotherou,DC=example,DC=org
这是有效的。用户可以使用https://example.com/~username访问他们的主目录
但是身份验证指向一个硬编码的组(在本例中为:group-test-1)。作为该组成员的任何用户都将访问其他用户目录。我也可以使用 对某些用户进行硬编码Require ldap-user foobar
,但我希望这个要求对于访问该网站的用户来说是动态的。
就像是:Require ldap-user %username
有没有办法在 URL 中获取用户名并将其用作此参数的变量?
谢谢。
请参阅DirectoryMatch,其中有一个与此非常相似的示例。您需要 Apache 2.4.8 或更高版本才能工作。