利用expect交互批量修改普通用户过期密码
利用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交互批量修改普通用户过期密码的更多相关文章
- Shell 批量修改主机 用户密码
问题:132.121.114 和 132.121.118 网段共 48 台主机未添加基础监控,但是 wh 账户不能登录 需进行批量修改密码操作. 目前情况:op1对上述48台机器设备均能免密登录. 操 ...
- Linux学习之CentOS(二十二)--单用户模式下修改Root用户的密码
在上一篇随笔里面详细讲解了Linux系统的启动过程 (Linux学习之CentOS(二十一)--Linux系统启动详解),我们知道Linux系统的启动级别一共有6种级别,通过 /etc/inittab ...
- SYSDBA身份登陆时可以修改其他用户的密码
在以SYSDBA身份登陆时可以修改其他用户的密码,比如:SQL> alter user user01 identified by user10;用户已更改.这个是把USER01用户密码修改为US ...
- linux中如何用root去修改其他用户的密码
linux中如何用root去修改其他用户的密码 昨天linux实验课,我有很多自己想摸索的东西.今天周五,本是下午一二节是编译的实验,可强烈的欲望让我今早就来实验室了,摸索吧,碰到了这个问题.... ...
- 清理oracle的用户中的日志垃圾以及修改sys用户的密码
清理oracle的用户中的日志垃圾1.进入:/opt/oracle/product/11g/network/admin目录2.注释掉listener.ora文件中的TRACE_LEVEL_LISTEN ...
- shell批量修改mysql用户密码
需求 现在有这么一个需求, 需要大批量修改用户的密码, 需要注意的规则是: 必须添加的字符: *$#sjdKw% 用户名的第一位+*$#sjdKw%+用户名的最后一位,比如用户名chenglee,密码 ...
- [OS] 如何在远程机器上用ctrl+alt+del键修改登录用户的密码
远程登录某台机器,想修改当前登录用户的密码,系统提示按Ctrl+Alt+Del,在出现的界面里修改密码 但我一按这三个键,是在我本地客户机生效,而不是在远程服务器. 答案 : 向远程桌面发送Ctrl+ ...
- linux修改root用户登陆密码
如果不是以root用户登录的,请先切换到root用户下, 执行命令:su root 然后按提示输入root用户的密码. 英文系统: [root@localhost ~]# passwd Changin ...
- Oracle 批量修改某个用户下表的表空间
说明:一般来说要修改表的表空间需要同时修改表的表空间和其对应的索引表空间,并且在修改含有BOLB字段的表的表空间时又不一样,具体请参考末尾的链接 思路:拼凑一个满足条件的批处理查询语句,将查询的结果复 ...
- Python利用os模块批量修改文件名
初学Python.随笔记录自己的小练习. 通过查阅资料os模块中rename和renames都可以做到 他们的区别为.rename:只能修改文件名 renames:可以修改文件名,还可以修改文件上 ...
随机推荐
- Access 时间查询 与 SQL SERVER 不一样的几个地方
最近用到了ACCESS 数据库 ,与之前用SQL SERVER 还是有点区别的. 1. 时间 之间 用 # 连接 如下: public static string GetUserInfo(stri ...
- (0313) ICer,root 权限密码
2020
- gird 布局控制元素都显示在一行
gird 布局控制元素都显示在一行 <ul class="list"> <li v-for="(li, index) in list" :ke ...
- python快速制作可视化报表
- save an excel csv to a github csv file
:%s/\t/,/g
- Debian 迁移到新硬盘
老硬盘 A,新硬盘 B,先把B分好区,做好格式化. 准备虚拟机一台,Linux LiveCD光盘或者可用的Linux虚拟机系统,把硬盘A B 映射成虚拟机可以使用的硬盘文件,根据LiveCD新建相应的 ...
- c++游戏编程(1)开发环境与工具函数
c++游戏编程(1)开发环境与工具函数 文章目录 c++游戏编程(1)开发环境与工具函数 前言 1.开发工具 2.工具函数 2.1 windows.h 2.1.1 _mkdir() 2.1.2 _rm ...
- centos7的密码安全策略加固
centos7操作系统 在CentOS 7上实现密码复杂度策略设置 一.使用login.defs文件 解析:/etc/login.defs 是设置新建用户帐号限制的文件.该文件里的配置对root用户无 ...
- Intel oneAPI 环境变量设置
因工作需要,需要在linux系统配置多个不同环境的库,需要使用environment-modules工具管理环境变量,为保持配置方法的一致性,也使用modulefile文件加载Intel oneAPI ...
- P8872 [传智杯 #5 初赛] D-莲子的物理热力学
题目链接:P8872 [传智杯 #5 初赛] D-莲子的物理热力学 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 参考了题解,自己在这再写一遍 假设数组有序且经过m次操作后的数组最 ...