首页 > 代码库 > Linux 中httpd基于文件的用户的访问控制和CGI

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