当前位置 : 主页 > 操作系统 > centos >

批量修改linux用户密码脚本

来源:互联网 收集:自由互联 发布时间:2022-06-20
  最近要批量修改linux os用户的密码,修改完并且保存下来,密码的规则最好是数字、小写字母、大写字母和特殊符号中的三种,并且长度要够,从而提高用户的安全性和系统的安全

  最近要批量修改linux os用户的密码,修改完并且保存下来,密码的规则最好是数字、小写字母、大写字母和特殊符号中的三种,并且长度要够,从而提高用户的安全性和系统的安全性。网上找了批量修改用户的脚本,发现密码的规则和长度不符合,然后自己写了一个,并加了逻辑判断,脚本如下。

for i in `cat list`;do ipadd=`echo $i | awk -F "[:]" '{print $1}'` user=`echo $i | awk -F "[:]" '{print $2}'` PASS=$(tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1|head -c 16) success=success_user.txt fail=fail_user.txt tmp_result=tmp.txt ssh -o ConnectTimeout=5 $ipadd "echo $ipadd $user" if [ $? -eq 0 ];then ssh $ipadd "echo $PASS |passwd --stdin $user &>/dev/null" ssh $ipadd "chage -l $user|grep 'Last password change'|awk '{print \$NF}'" >$tmp_result if [ $(cat ${tmp_result}) -eq 2021 ];then echo "$ipadd $user $PASS" >> $success else echo "$ipadd $user $PASS" >> $fail fi else echo "$ipadd $user" >> ./login_fail_list fi done

    简要说明:    1. 密码修改结果展示:

[root@localhost ~]# tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1|head -c 16 aZDvwrT8zg2JsXcU

 2. 脚本加入的逻辑说明:      前台展示,加超时登录判断

ssh -o ConnectTimeout=5 $ipadd "echo $ipadd $user"

  外层的if语句是判断ip是否登录成功,如果登录失败则将登录失败的ip保存在login_fail_list文件中;若登录成功,密码的修改结果保存在success_user.txt,脚本只做了简单的逻辑判断,可按需修改。     3. ip和用户以冒号分割保存在list文件中,如下:

192.168.0.141:zhanghai 192.168.0.141:apche 192.168.0.141:nginx
上一篇:Kubernetes集群实践(10)滚动更新和回滚
下一篇:没有了
网友评论