linux系统批量修改用户密码

简介:

脚本目的:批量修改linux系统用户密码

条件:必须是修改的用户是root,因为只有root才有权限使用passwd命令

说明:先把IP、用户、密码、端口信息写到old_info文件中,脚本从这个文件读取对应的信息,利用expect免交互登陆系统。将随机生成的8位密码修改为root用户新密码。然后将新密码保存到net_info文件中。


1
2
3
4
5
# cat old_info 
#     ip     user    passwd    port
#------------------------------------------------
192.168.18.217  root    123456     22
192.168.18.218  root    123456     22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# cat change_pass.sh
#!/bin/bash
 
OLD_INFO=~ /old_info
NEW_INFO=~ /new_info
for  IP  in  ` awk  '/^[^#]/{print $1}'  $OLD_INFO`;  do
     USER=` awk  - v  I=$IP  '{if(I==$1)print $2}'  $OLD_INFO`
     PASS=` awk  - v  I=$IP  '{if(I==$1)print $3}'  $OLD_INFO`
     PORT=` awk  - v  I=$IP  '{if(I==$1)print $4}'  $OLD_INFO`
     NEW_PASS=`mkpasswd -l 8`
     echo  "$IP   $USER   $NEW_PASS       $PORT"  >> $NEW_INFO
expect -c "
     spawn  ssh  -p$PORT $USER@$IP
     set  timeout 2
     expect {
         \"( yes /no )\" {send \" yes \r\";exp_continue}
         \"password:\" {send \"$PASS\r\";exp_continue}
         \"$USER@*\" {send \" echo  \'$NEW_PASS\' | passwd  --stdin $USER\r  exit \r\";exp_continue}
         #\"$USER@*\"  {send \"df -h\r exit\r\";exp_continue}
     }"
done
1
2
3
# cat new_info 
192.168.18.217  root    n8wX3mU%        22
192.168.18.218  root    c87;ZnnL        22


本文转自 李振良OK 51CTO博客,原文链接:http://blog.51cto.com/lizhenliang/1674791,如需转载请自行联系原作者

目录
打赏
0
0
0
0
265
分享
相关文章
Linux系统之su命令的基本使用
Linux系统之su命令的基本使用
32 1
Linux系统之su命令的基本使用
|
18天前
|
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
96 27
|
21天前
|
Linux系统ext4磁盘扩容实践指南
这个过程就像是给你的房子建一个新的储物间。你需要先找到空地(创建新的分区),然后建造储物间(格式化为ext4文件系统),最后将储物间添加到你的房子中(将新的分区添加到文件系统中)。完成这些步骤后,你就有了一个更大的储物空间。
91 10
|
2月前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
119 24
Linux系统之whereis命令的基本使用
|
1月前
|
Linux系统中如何查看CPU信息
本文介绍了查看CPU核心信息的方法,包括使用`lscpu`命令和读取`/proc/cpuinfo`文件。`lscpu`能快速提供逻辑CPU数量、物理核心数、插槽数等基本信息;而`/proc/cpuinfo`则包含更详细的配置数据,如核心ID和处理器编号。此外,还介绍了如何通过`lscpu`和`dmidecode`命令获取CPU型号、制造商及序列号,并解释了CPU频率与缓存大小的相关信息。最后,详细解析了`lscpu`命令输出的各项参数含义,帮助用户更好地理解CPU的具体配置。
110 8
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
|
23天前
|
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
60 0
安装【银河麒麟V10】linux系统--并挂载镜像
安装【银河麒麟V10】linux系统--并挂载镜像
3302 0
卸载、下载、安装mysql(Linux系统centos7)
卸载、下载、安装mysql(Linux系统centos7)
299 0
|
6月前
|
手把手教会你安装Linux系统
手把手教会你安装Linux系统
138 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等