利用expect交互批量修改普通用户过期密码

因为公司接了一个密码托管的活,有10000多台机器,系统有 openSUSE,SUSE,Ubuntu,centos,Oracle-Linux,

而且什么版本都有,不给root权限,密码已经过期很多,先用expect的方式把过期密码修改完成,在进行托管

#!/bin/bash
#Author:shsnc-****
#Time:2021-5-11
#Name:for_user.sh
#Version:V1.3
#Description:This is a password check script. >passwd.info
>passwd.error old_passwd=$1
new_passwd=$2
user=gziaas # 定义并发
thread=10
fifofile="/tmp/$$.fifo"
mkfifo $fifofile
exec 8<>${fifofile}
rm -f ${fifofile} for pid in `seq ${thread}`
do
echo >&8 done # 定义修改函数
function change_passwd_ssh(){
/usr/bin/expect << EOF
set timeout 20
spawn /usr/bin/ssh ${user}@$ip
expect {
"(yes/no)?" {send "yes\r";exp_continue}
"*assword:" {send "${old_passwd}\r";}
} expect {
"(current) UNIX password:" {send "${old_passwd}\r";}
"Old Password:" {send "${old_passwd}\r";}
} expect {
"New *assword:" {send "${new_passwd}\r";}
"Retype new password:" {send "$new_passwd\r";}
} expect {
"Retype new password:" {send "$new_passwd\r";}
} expect {
"Reenter New Password:" {send "$new_passwd\r";}
"Retype new password:" {send "$new_passwd\r";}
} send "exit\r"
expect eof EOF
} # 脚本主体 for ip in `cat ip_list.txt`
do
read -u 8
{
change_passwd_ssh $1 $2 1>>./passwd.info 2>>./passwd.error
if [ $? -eq 0 ];then
echo "${ip}" >>./successful.ip
else
echo "${ip}" >>./fail.ip
fi
echo >&8
}&
done
wait
exec 8>&-

利用expect交互批量修改普通用户过期密码的更多相关文章

  1. Shell 批量修改主机 用户密码

    问题:132.121.114 和 132.121.118 网段共 48 台主机未添加基础监控,但是 wh 账户不能登录 需进行批量修改密码操作. 目前情况:op1对上述48台机器设备均能免密登录. 操 ...

  2. Linux学习之CentOS(二十二)--单用户模式下修改Root用户的密码

    在上一篇随笔里面详细讲解了Linux系统的启动过程 (Linux学习之CentOS(二十一)--Linux系统启动详解),我们知道Linux系统的启动级别一共有6种级别,通过 /etc/inittab ...

  3. SYSDBA身份登陆时可以修改其他用户的密码

    在以SYSDBA身份登陆时可以修改其他用户的密码,比如:SQL> alter user user01 identified by user10;用户已更改.这个是把USER01用户密码修改为US ...

  4. linux中如何用root去修改其他用户的密码

    linux中如何用root去修改其他用户的密码 昨天linux实验课,我有很多自己想摸索的东西.今天周五,本是下午一二节是编译的实验,可强烈的欲望让我今早就来实验室了,摸索吧,碰到了这个问题....  ...

  5. 清理oracle的用户中的日志垃圾以及修改sys用户的密码

    清理oracle的用户中的日志垃圾1.进入:/opt/oracle/product/11g/network/admin目录2.注释掉listener.ora文件中的TRACE_LEVEL_LISTEN ...

  6. shell批量修改mysql用户密码

    需求 现在有这么一个需求, 需要大批量修改用户的密码, 需要注意的规则是: 必须添加的字符: *$#sjdKw% 用户名的第一位+*$#sjdKw%+用户名的最后一位,比如用户名chenglee,密码 ...

  7. [OS] 如何在远程机器上用ctrl+alt+del键修改登录用户的密码

    远程登录某台机器,想修改当前登录用户的密码,系统提示按Ctrl+Alt+Del,在出现的界面里修改密码 但我一按这三个键,是在我本地客户机生效,而不是在远程服务器. 答案 : 向远程桌面发送Ctrl+ ...

  8. linux修改root用户登陆密码

    如果不是以root用户登录的,请先切换到root用户下, 执行命令:su root 然后按提示输入root用户的密码. 英文系统: [root@localhost ~]# passwd Changin ...

  9. Oracle 批量修改某个用户下表的表空间

    说明:一般来说要修改表的表空间需要同时修改表的表空间和其对应的索引表空间,并且在修改含有BOLB字段的表的表空间时又不一样,具体请参考末尾的链接 思路:拼凑一个满足条件的批处理查询语句,将查询的结果复 ...

  10. Python利用os模块批量修改文件名

    初学Python.随笔记录自己的小练习. 通过查阅资料os模块中rename和renames都可以做到 他们的区别为.rename:只能修改文件名   renames:可以修改文件名,还可以修改文件上 ...

随机推荐

  1. 剑指 Offer II 动态规划

    088. 爬楼梯的最少成本 class Solution { public: int minCostClimbingStairs(vector<int>& cost) { int ...

  2. 达芬奇18.1.2安装包下载+软件详细破解安装教程(Win&Mac)

    DaVinci Resolve v18.1.2是一款在同一个软件工具中,将剪辑.调色.视觉特效.动态图形和音频后期制作融于一身的解决方案!它采用美观新颖的界面设计,易学易用,能让新手用户快速上手操作, ...

  3. Educational Codeforces Round 143 (Rated for Div

    Educational Codeforces Round 143 (Rated for Div. 2) Problem - B Ideal Point 给定n个线段区间\([l,r]\),我们定义\( ...

  4. 查找大文件-清理linux磁盘

    https://www.cnblogs.com/kerrycode/p/4391859.html find . -type f -size +800M  -print0 | xargs -0 du - ...

  5. windwos 系统打补丁后重启不了处理方案

    如果可以进入WinRE这个修复的高级选项,选择安全模式,是否可以进入,卸载最近安装的补丁,再重启看一下. 如果无法进入安全模式的话,那么选择cmd模式,使用下方命令.这通常会回退pending的upd ...

  6. 第三周day1

    第三周day1,星期一 所花时间(上课时间+练习时间):6h 代码量:110 博客量:2 所学到的知识:学了一些Map的相关知识,还有如何切割字符串,如何将字符串转换成字符数组str.toCharAr ...

  7. Linux修改主机名hostname

    红帽系: [root@f112 ~]# vi /etc/sysconfig/network # Created by anaconda # 加上一行 HOSTNAME=f111 [root@f112 ...

  8. FME视频教程

    FME视频教程 分为三种 10分钟 2011 2012

  9. SqlServer outer apply(cross apply)

    select * from baiduacg_cookies c cross apply (select top 1 * from product where AccountId=c.AccountI ...

  10. Vue 的生命周期 详细解析(使用场景等)

    Vue生命周期图: 一.生命周期图的解读 new Vue():首先需要创建一个 Vue的实例对象 Init Events & Lifecycle :初始化:生命周期.事件(如:v-once), ...