我已为网站上的目录之一启用基本身份验证。该代码已添加到httpd.conf
文件中。用户和密码已添加到/etc/passwd
文件中。已在 中输入相同的路径httpd.conf
。检查所有模块(即 basic、auth、rewrite 等)是否已加载到 apache 中。
问题 - 一旦我尝试访问网站(互联网)上的文件夹,就会出现身份验证弹出窗口,但是当我填写用户名和密码时,它不会进一步继续,并一次又一次地显示弹出窗口,而无法访问目录。
的代码httpd.conf
<Directory "/srv/www/htdocs/.....">
AllowOverride AuthConfig
AuthType Basic
AuthName "Restricted Files"
# (Following line optional)
AuthBasicProvider file
AuthUserFile "/etc/passwd"
# AuthGroupFile "/etc/group"
Require valid-user
</Directory>
答案1
我很确定您不想在and指令中使用/etc/passwd
and 。/etc/group
AuthUserFile
AuthGroupFile
我相信您需要创建单独的文件(AuthUserFile
使用命令创建和维护文件htpasswd
)。
如果您想让 Apache 使用普通系统帐户进行身份验证,那么您需要查看使用 PAM 之类的身份验证模块(我发现这但我不知道它是否有什么好处 - 我从未使用过它)。
答案2
正如默里建议的那样,您可以创建另一个文件(不是/etc/passwd
),然后作为此处描述,您可以按照以下步骤创建基本身份验证用户:
htpasswd -c /path/to/your/file username
这将提示您输入密码,该密码将被加密并保存到上面定义的文件中。笔记如果您想创建其他用户(多个),您需要记住省略该-c
参数:
htpasswd /path/to/your/file username
否则您的文件将被重新创建,并且您将覆盖之前添加的用户
htpasswd --help
-c 创建一个新文件。
此外,请考虑您可以决定使用哪种加密算法进行密码加密:
-m 强制对密码进行 MD5 加密。
-d 强制对密码进行 CRYPT 加密(默认)。
-p 不加密密码(明文)。
-s 强制对密码进行 SHA 加密。