Linux 中 Apache + htpasswd 综合指南

54 阅读2分钟

Apache + .hpasswd Directory Protection

保护您的 Web 目录是 Web 服务器的一个关键方面,而 htpasswd 是实现这一点的重要工具。

了解 htpasswd

htpasswd 命令是一个用于创建和更新用户数据库的实用程序,用于 web 服务器(如 Apache)的基本身份验证。该工具允许您创建密码文件,添加用户,修改密码,删除用户,同时加密存储的密码。

安装 htpasswd

htpasswd 命令是 Apache HTTP Server 包的一部分。

For Debian/Ubuntu

sudo apt-get update 
sudo apt-get install apache2-utils

For CentOS/RHEL

sudo yum install httpd-tools

For Fedora

sudo dnf install httpd-tools

基本语法和选项

htpasswd 命令的基本语法如下:

htpasswd [options] password-file username

一些常见的选项包括:

  • -c: 创建新的密码文件
  • -n: 在标准输出中显示结果,而不更新密码文件
  • -b: 使用命令行提供密码,而不是提示密码
  • -D: 从密码文件中删除指定用户
  • -m: 对密码使用 MD5 Hash (大多数系统默认)

创建和管理密码文件

创建新的密码文件

htpasswd -c /path/to/your/.htpasswd username

将新用户添加到现有密码文件中

htpasswd /path/to/your/.htpasswd new_username

更新用户密码

htpasswd /path/to/your/.htpasswd existing_username

删除用户

htpasswd -D /path/to/your/.htpasswd username_to_delete

实际示例

为新用户创建一个新的密码文件

htpasswd -c /etc/apache2/.htpasswd john

使用预定义密码添加新用户

htpasswd -b /etc/apache2/.htpasswd jane mysecretpassword

配置 Apache 身份验证

要配置 Apache 使用 .htpasswd 文件进行身份验证,在站点配置文件或 .htaccess 文件中添加如下行:

AuthType Basic
AuthName "Restricted Area"
AuthUserFile /path/to/your/.htpasswd
Require valid-user

注意事项

  • 确保 .htpasswd 的文件权限受到限制,以防止未经授权的访问。
  • 将 .htpasswd 文件保存在 web 服务器的文档根目录之外,以避免将其暴露给用户。
  • 定期检查你的密码文件中过期或未使用的帐户。
  • 为每个用户使用强大且唯一的密码。

我的开源项目

酷瓜云课堂-在线教育解决方案