apache基本身份验证

apache基本身份验证

我已为网站上的目录之一启用基本身份验证。该代码已添加到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/passwdand 。/etc/groupAuthUserFileAuthGroupFile

我相信您需要创建单独的文件(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 加密。

相关内容