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
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
wxly:$apr1$PkB0SZse$iZeKC3qrRGp080ySit04E1

一个需求实例:

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

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

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

脚本内容依次如下:

用户名和密码文件如下:

cat user
cdw
ywj
zjf
mfj
dsx
dsl
tx1

expect脚本内容如下:

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

需要执行的shell脚本如下:

cat exce.sh
#!/bin/bash
if [ -e passwd ]; then
echo -e "\033[32;1m The file is exiting \033[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 ] && echo -e "\033[32;2m add the account successfully!\033[0m"
sleep
done

htpasswd命令的使用的更多相关文章

  1. Apache htpasswd命令用法详解

    一. 基础 htpasswd建立和更新存储用户名.密码的文本文件, 用于对HTTP用户的basic认证. # /usr/local/apache/bin/htpasswd –help Usage: h ...

  2. htpasswd命令

    htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名.域和用户基本认证的密码文件. 语法 htpasswd(选项)(参数) 选项 -c:创建一个加密文件:-n:不更新加密 ...

  3. htpasswd 命令详解

    htpasswd参数 -c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容. -n 不更新passwordfile,直接显示密码 -m 使用MD5加密(默 ...

  4. nginx用户认证与htpasswd命令

    最近在搭建ELK,然后ELK的kibana界面想添加一个访问限制,看到kibana有个插件x-pack,本来想用用,发现是收费的,就放弃了,然后就想着想配置下nginx的认证访问来实现简单的访问登陆. ...

  5. httpd htpasswd命令

    apache httpd系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html htpasswd用于为指定用户生成基于网页用户身份认证的密码,由h ...

  6. Apache htpasswd命令

    一.简介 htpasswd是apache的一个工具,该工具主要用于建立和更新存储用户名.密码的文本文件,主要用于对基于http用户的认证. 二.语法 Usage: htpasswd [-cimBdps ...

  7. 烂泥:apache密码生成工具htpasswd的应用

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 1. htpasswd的作用与安装 2. htpasswd命令详解 3. htpasswd的实例 4. htpasswd的应用 一.htpasswd的作 ...

  8. apache htpasswd.exe创建密码

    一.使用apache htpasswd.exe创建密码文件,命令请看PHP推荐教程:apache htpasswd命令用法详解 apache htpasswd命令用法实例 1.如何利用htpasswd ...

  9. htpasswd 详解

    Apache htpasswd命令用法详解 htpasswd建立和更新存储用户名.密码的文本文件, 用于对HTTP用户的basic认证. # /usr/local/apache/bin/htpassw ...

随机推荐

  1. 蓝桥杯 - 数字排列(今有7对数字) - [两种不同的DFS思路]

    今有7对数字:两个1,两个2,两个3,...两个7,把它们排成一行.要求,两个1间有1个其它数字,两个2间有2个其它数字,以此类推,两个7之间有7个其它数字.如下就是一个符合要求的排列: 171264 ...

  2. Spark 数据源

    一.mysql作为数据源 import org.apache.spark.sql.{DataFrame, Dataset, Row, SparkSession} /** * mysql作为数据源 * ...

  3. CH0201 费解的开关 枚举

    正解:枚举 解题报告: 入门傻逼题,思维难度不高代码量极小,非常适合上手 然后傻逼的我第二次看这道题的时候依然没想到解法:D 没有办法,就想着写个笔记好歹记录一下以后多复习几次就记着了趴qwq 就是, ...

  4. CentOS 7显卡驱动问题

    CentOS 7 KDE桌面安装后有时会出现nouveau 驱动问题,导致系统不定时死机或者重启,那么这时只能禁用nouveau 1. 在配置文件中禁用nouveauvi /etc/modprobe. ...

  5. python基础班-淘宝-目录.txt

    卷 TOSHIBA EXT 的文件夹 PATH 列表卷序列号为 AE86-8E8DF:.│ python基础班-淘宝-目录.txt│ ├─1-1 Linux基础│ ├─01-课程简介│ │ 01-课程 ...

  6. sql server字符串中怎么添加换行?

    换行/回车,可以使用CHAR函数处理,比如: 1 insert into tbtest (text) values ('abc' + char(13)+char(10) + 'def') 主要还是要看 ...

  7. mysql 内置功能 存储过程 删除存储过程

    删除存储过程 drop procedure proc_name;

  8. 【剑指offer】变态跳台阶

    一.题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 二.思路: f(n)=f(n-1)+f(n-2)+...+f(0),f(1) ...

  9. Spark将计算结果写入到Mysql中

    今天主要来谈谈如何将Spark计算的结果写入到Mysql或者其他的关系型数据库里面.其实方式也很简单,代码如下: package scala import java.sql.{DriverManage ...

  10. 2.keras实现-->深度学习用于文本和序列

    1.将文本数据预处理为有用的数据表示 将文本分割成单词(token),并将每一个单词转换为一个向量 将文本分割成单字符(token),并将每一个字符转换为一个向量 提取单词或字符的n-gram(tok ...