linux's docs

22.2.0: 访问控制-htpasswd


0. 命令介绍

命令:htpasswd
简介:apache安装后自带的命令,用来管理认证文件
语法:

  • 创建密码文件
    htpasswd -c /path/to/密码文件 用户名

  • 增加用户及密码
    htpasswd -m /path/to/密码文件 用户名

参数:

  • -c - 创建密码文件
  • -m - MD5密码加密,默认选项

用法示例:

## 创建密码文件,并增加用户admin及设置密码
# htpasswd -c /usr/local/apache2/password/.htpasswd admin

## 查看密码文件,默认密码用MD5加密
# cat /usr/local/apache2/password/.htpasswd
admin:$apr1$ngsrvu8T$T3/vvtZ8.opDDcf1j52/3.

## 增加test1用户
# htpasswd /usr/local/apache2/password/.htpasswd test1
# cat /usr/local/apache2/password/.htpasswd
admin:$apr1$ngsrvu8T$T3/vvtZ8.opDDcf1j52/3.
test1:$apr1$TEllHY/c$o9HEch5uyK52G7.uuVarE.

1. 访问特定目录时使用htpasswd增加用户认证

配置目录访问限制

<Directory /usr/local/apache2/htdocs/admin>
    AllowOverride AuthConfig
    AuthName "admin auth"
    AuthType Basic
    AuthUserFile /usr/local/apache2/password/.htpasswd
    Require valid-user
</Directory>

配置解释

AllowOverride
 - None
 - AuthConfig
# 可使用如下这些配置
# (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, etc.).

AuthName "admin auth" - 访问限制时的提示字符串
AuthType Basic -
 - none,
 - basic(采用mod_auth_basic模块),
 - Digest(采用mod_auth_digest模块)
 - Form (采用 mod_auth_form模块)
AuthUserFile - 指定密码文件
require - valid-user 只有有效用户才可以访问

2. 扩展

扩展链接http://httpd.apache.org/docs/current/howto/htaccess.html

Contents