欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Linux命令之htpasswd命令

shiping1 的头像
<Directory /var/www/html>
AuthUserFile  /etc/httpd/conf.d/.zabbix.cc
AuthGroupFile /dev/null
AuthName      "Please Input Your Account Name and Password"
AuthType      Basic
Require valid-user
</Directory>

初次创建的时候使用

# htpasswd -c /etc/httpd/conf.d/.zabbix.cc 

追加用户

# htpasswd /etc/httpd/conf.d/.zabbix.cc 

密码的文字数,不要超过8个字。

因为默认是使用哈希函数CRYPT(默认选项-d),CRYPT会无视超过8个字的文字。

如要利用超过8个字以上的密码,使用-m选项(哈希函数MD5)。

使用-p选项的话,在写入文件时不会进行HASH。

原文链接:,转发请注明来源!

来自 http://www.zabbix.cc/technic/839/


Linux 中httpd基于文件的用户的访问控制和CGI
基于用户访问控制(这里控制的是整个页面控制) 
        用户认证类型: 
            基本认证:Basic 
            摘要认证:digest,是否明文还是密文的控制。

  
    虚拟用户:仅用于访问某服务和获取资源的凭证: 
        用户帐号密码存放位置:.htpasswd 这个文件用户名是明文的,密码是加密的。这个文件的名字也是你自己取的,一般我们不改动.htpasswd存放在httpd配置文件下即可  
               
实例:我们这里基于文件的认证(文件存放账户的账户和密码的认证) 
        (1)编辑配置文件为需要认证的目录做用户认证 
            </Directory "/var/www/ning/liang">-----指定要做认证的目录 
            Options none------不指定任何选项 
            AllowOverride AuthConfig-----允许覆盖,认证通常启用为AuthConfig,说明做认证相关的配置 
            AuthType Basic-----------指定认证类型 
            AuthName "admin area."-----对用户做说明的信息,就是输入密码让用户知道为什么做认证。 
            AuthBasicProvider file------指定认证机制是什么,默认为file(可以省略) 
            AuthUserfile /etc/httpd/conf/.htpasswd ------指定存放认证的用户和密码的文件。(需要我们自己创建) 
            Require valid-user-----------valid-uer符合条件的所有用户可以登入, 
            </Directory> 
            单独用户指定格式如:Require user ning hong----两用户之间用空格隔开


        (2)创建认证文件.htpasswd(这里的账户是明文的,密码是加密的,一般我们不手动编辑,用工具生成)
             生成认证文件的工具:    
                htpasswd 
                        -c:如果此文件事先不存在,则创建;注意:只能是在创建第一个用户时使用; 
                        -m:以md5的格式编码存储用户的密码信息 
                        -D:删除指定用户  
             #htpasswd -c -m /etc/httpd/conf/.htpasswd tom-----没有.htpasswd文件第一次创建用-c,-m加密,指定路径,后输入用户名 
                    New password: -----输入用户的密码 
                    Re-type new password: 
                    Adding password for user tom  
              #htpasswd -m /etc/httpd/conf/.htpasswd qing-------这里就不需要创建.htpasswd,直接添加即可。  
              #cat /etc/httpd/conf/.htpasswd 
                    tom:$apr1$o3HNsazw$rxcLVyixdNTnzOrGji3qD.------这里密码是用md5加密的。 
                    qing:$apr1$TLIArC5B$PFnEPKdDEMCXLRBbnnNIm.  
            # htpasswd -D /etc/httpd/conf/.htpasswd qing-----删除用户qing 
                    Deleting password for user qing  
               # cat /etc/httpd/conf/.htpasswd ----------查看下删除的结果 
                    tom:$apr1$o3HNsazw$rxcLVyixdNTnzOrGji3qD.

    
            (3)组文件认证 
                </Directory "/var/www/ning/liang">-----指定要做认证的目录 
                Options none------不指定任何选项 
                AllowOverride AuthConfig-----允许覆盖,认证通常启用为AuthConfig,说明做认证相关的配置 
                AuthType Basic-----------指定认证类型 
                AuthName "admin area."-----对用户做说明的信息,就是输入密码让用户知道为什么做认证。 
                AuthBasicProvider file------指定认证机制是什么,默认为file(可以省略) 
                AuthUserfile /etc/httpd/conf/.htpasswd ------指定存放认证的用户和密码的文件。(需要我们自己创建) 
                AuthGroupfile /etc/httpd/conf/.htgroup-------指定用户组文件(需要我们自己创建) 
                Require group test-----------指定组名 
                </Directory>

创建编辑组文件  
          组文件格式: 组名:user1 user2 user3  
#vim /etc/httpd/conf/.htgroup----创建.htgroup组认证文件内容如下  
        test: tom ning--------组名为test用户为tom、ning


            自己测试就可以:再次不做说明,注意浏览器生成记录。

浏览器:http://www.ning.com/liang

CGI脚本----通用网关接口 

    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"------------指定CGI别名 

     

  实例:在目录/cgi-bin/目录下创建ning.sh脚本(默认系统是支持bash解析的) 
        #!/bin/bash 
        # 
        cat << EOF 
        Content-Type: text/html

        <pre> 
        The hostname is : $(hostname). 
        The date is : $(date). 
        The IP is : $(ifconfig)

        </pre> 
        EOF

在浏览器上输入:172.16.3.20/cgi-bin/ning.sh

image

来自 http://wodemeng.blog.51cto.com/1384120/1538329

普通分类: