htpasswd命令的使用

htpasswd的基本用法

htpasswd是Apache服務器中生成用戶認證的一個工具,僅說明htpasswd的用法:web

htpasswd參數shell

-c 建立passwdfile.若是passwdfile 已經存在,那麼它會從新寫入並刪去原有內容.
-n 不更新passwordfile,直接顯示密碼
-m 使用MD5加密(默認)
-d 使用CRYPT加密(默認)
-p 使用普通文本格式的密碼
-s 使用SHA加密
-b 命令行中一併輸入用戶名和密碼而不是根據提示輸入密碼,能夠看見明文,不須要交互
-D 刪除指定的用戶bash

#建立密碼文件,建立用戶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

腳本內容依次以下:spa

用戶名和密碼文件以下:命令行

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

expect腳本內容以下:code

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\r"
expect "password:"
send "passwd\r"
expect eof

須要執行的shell腳本以下:blog

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 0 ] && echo -e "\033[32;2m add the account successfully!\033[0m"
    sleep 2
done 
相關文章
相關標籤/搜索