shell应用之批量添加用户实例

字数 125阅读 136

这里要实现功能介绍
*读取一个用户列表文件
*给列表中的用户添加随机密码需要包含大小写字符和数字
*保存对应的用户和密码文件
*这些用户属于同个用户组

1、列表文件

[root@mail ~]# cat listuser.txt 
andy
tom
ailis
wate
job
eils

2、这里我们用mkpasswd 命令生成,没有这个命令安装以下
expect这个包

[root@mail ~]# mkpasswd -d 3 -l 13 -s 0 -C 2
Ppkvy0pOwg6m1

3、给用户设定密码或修改密码

第一种 echo -e "123123\n123123\n" | passwd root  #>echo-e 是接收特殊符号,\n是换换行
第二种 echo -e "123123" |passwd --stdin root

脚本实例1

#!/bin/bash 
if [ $# -eq 0 ] ;then
        echo "input file path"
        exit 1
fi

if [ ! -f $1 ] ;then
        echo "input file name"
        exit 1
fi

while read aa ;do
        pd=`mkpasswd -l 12 -s 0`
        useradd $aa
        echo $pd |passwd --stdin $aa
        echo "$aa \and\ $pd" >> user_passwd.txt
done < $1

[root@mail sbin]# sh mkku.sh /home/rrad/listuser.txt 
更改用户 andy 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 tom 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 ailis 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 wate 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 job 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 eils 的密码 。
passwd:所有的身份验证令牌已经成功更新。

[rrad@mail ~]$ cat listuser.txt 
andy
tom
ailis
wate
job
eils
[rrad@mail ~]$ 

脚本实例2

[root@mail sbin]# cat user.sh 
#!/bin/bash
if ! which mkpasswd &> /dev/null
then
    echo "need mkpasswd"
    yum install -y expect
fi

for i in `seq -w 1 10`
do 
    pd=`mkpasswd -l 12 -C 6 -d 3 -s 0`
    echo "add_$i"
    useradd add_$i
    echo $pd |passwd --stdin add_$i
    echo "add_$i  :  $pd" >> ./user_passwd
done
[root@mail sbin]# cat user_passwd 
add_01  :  PR5jBW1GdiH4
add_02  :  uwM2LD4ZQF8l
add_03  :  k1KTLuKc8G2Q
add_04  :  B06lMOOikL7N
add_05  :  1ex68WCNKWJe
add_06  :  HK8CWV0eA3sy
add_07  :  MvE23Q9BUeiD
add_08  :  9vLY6FzLGgZ8
add_09  :  TCuV13VZEs9l
add_10  :  6KUVPv5cB8yA

-----END----

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
  • pdf下载地址:Java面试宝典 第一章内容介绍 20 第二章JavaSE基础 21 一、Java面向对象 21 ...
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...