zoukankan      html  css  js  c++  java
  • htpasswd命令的使用

    htpasswd的基本用法

    htpasswd是Apache服务器中生成用户认证的一个工具,仅说明htpasswd的用法:

    htpasswd参数

    -c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容.
    -n 不更新passwordfile,直接显示密码
    -m 使用MD5加密(默认)
    -d 使用CRYPT加密(默认)
    -p 使用普通文本格式的密码
    -s 使用SHA加密
    -b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互
    -D 删除指定的用户

    #创建密码文件,创建用户test
    [root@os1 ~]# htpasswd -c passwd test
    New password: 
    Re-type new password: 
    Adding password for user test
    [root@os1 ~]# cat passwd 
    test:$apr1$plhRTg52$UQMbT9r/hO2iRlM8E9y8/.
    [root@os1 ~]#
    
    ##命令行中输入用户名和密码 [root@os1
    ~]# htpasswd -cb passwd ceshi 123456 Adding password for user ceshi [root@os1 ~]# cat passwd ceshi:$apr1$1863a7z7$qiOe9pcK6x/G2a2TYjWoM0
    ###在原有的文件中添加用户 [root@os1
    ~]# htpasswd passwd test New password: Re-type new password: Adding password for user test [root@os1 ~]# cat passwd ceshi:$apr1$1863a7z7$qiOe9pcK6x/G2a2TYjWoM0 test:$apr1$0V/OaCvu$jLgbFOGrVLucReDgwiuto. [root@os1 ~]#
    #删除用户 [root@os1
    ~]# htpasswd -D passwd test Deleting password for user test [root@os1 ~]# cat passwd ceshi:$apr1$1863a7z7$qiOe9pcK6x/G2a2TYjWoM0 [root@os1 ~]# #直接在命令行显示用户名和密码 [root@os1 ~]# htpasswd -nb wxly 123456 wxly:$apr1$PkB0SZse$iZeKC3qrRGp080ySit04E1

    一个需求实例:

    有很多个用户,需要添加web的用户认证。

    这时候我们可以采用expect的方式进行,如下:

    [root@os1 htpassword]# tree
    .
    ├── exce.sh          #  执行的shell脚本
    ├── one.exp          #  进行自动交互的expect脚本
    ├── passwd           #  存放加密后密码的文件
    └── user             #  添加的用户名和密码
    
    0 directories, 4 files

    脚本内容依次如下:

    用户名和密码文件如下:

    cat user
    cdw 123456
    ywj 123456
    zjf 123456
    mfj 123456
    dsx 123456
    dsl 123456
    tx1 123456

    expect脚本内容如下:

    cat one.exp
    #!/usr/bin/expect  -f
    set name [lindex $argv 0]
    set passwd [lindex $argv 1]
    spawn /usr/bin/htpasswd -d passwd $name
    expect "password:"
    send "passwd
    "
    expect "password:"
    send "passwd
    "
    expect eof

    需要执行的shell脚本如下:

    cat exce.sh
    #!/bin/bash
    if [ -e passwd ]; then
        echo -e "33[32;1m The file is exiting 33[0m"
    else
        touch passwd # 创建存储密码的文件
    fi
    
    
    cat user | while read line
    do 
        name=$(echo $line | awk '{print $1}') # 提取用户名
        password=$(echo $line | awk '{print $2}') # 提取密码
        /usr/bin/expect one.exp $name $password # 执行expect脚本
        [ $? -eq 0 ] && echo -e "33[32;2m add the account successfully!33[0m"
        sleep 2
    done 
  • 相关阅读:
    jquery配合Bootstrap中的表单验证插件bootstrapValidator使用方法
    mysql限制update和delete必须加上where限制条件
    Node的express配置使用ejs模板
    mysql8用户管理
    c语言编译四大步
    windows系统安装gcc编译器----c/c++语言编译器
    c/c++语言开发工具Dev-cpp【推荐】
    c语言指针
    cmd切换代码页,切换字体,cmd不能输入中文
    windows8.1全角与半角切换快捷键
  • 原文地址:https://www.cnblogs.com/wxzhe/p/9019945.html
Copyright © 2011-2022 走看看