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


目录
相关文章
|
Oracle 关系型数据库 Linux
Linux下设置用户密码
设置用户的密码使用passwd命令
147 0
|
Linux Shell 数据安全/隐私保护
linux用户相关操作,linux创建添加新用户 删除用户 ,更改用户 ,设置用户密码等等
linux用户相关操作,linux创建添加新用户 删除用户 ,更改用户 ,设置用户密码等等目录 创建用户  查看所有用户信息 id命令查看用户信息:  说明: 设置密码 3用户名切换用户 修改用户信息 扩展: 删除附加组 删除用户 总结   创建用户 eg:useradd -m jia -g...
1512 0
|
13天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
100 6
|
14天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
55 3
|
14天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
45 2
|
22天前
|
缓存 监控 Linux
|
25天前
|
Linux Shell 数据安全/隐私保护
|
26天前
|
域名解析 网络协议 安全
|
9天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
38 3
|
2月前
|
运维 监控 网络协议