e联盟服务器密码修改,使用chpasswd命令批量修改系统用户密码

chpasswd命令工作原理:

从系统的标准输入读入用户的名称和口令,并利用这些信息来更新系统上已存在的用户的口令!

语法:

1:# echo 用户名:密码 | chpasswd

2:# chpasswd < doiido.txt

相关参数:

-e :如果使用了-e选项,口令将只能以加密的方式传递

-e, --encrypted  supplied passwords are encrypted

如果未使用-e选项,口令将按明文的形式传递

注意事项

1:用户名必须是系统上已存在的用户

2:普通用户没有使用这个指令的权限

3:如果输入文件是按非加密方式传递的话,请对该文件进行适当的加密。

4:指令文件不能有空行

实例

1、直接修改centos用户的密码为centos1

# echo centos:centos1 |chpasswd

2、使用password.txt里面的用户名密码批量修改相应用户的密码

2.1:首先建立指令文件password.txt(txt文件格式为[username:passwd])

# vi password.txt

test1:redhat123

test2:redhat123

2.2:将password.txt的内容传输到chpasswd指令来修改相应用户的密码

# chpasswd < password.txt

3、让普通用户使用chpasswd

默认普通用户是没有chpasswd的权限,但是可以通过修改命令文件权限来修改

# chmod 4755 /usr/sbin/chpasswd

这样普通用户就可以使用chpasswd来修改密码

4、批量远程修改服务器密码

比如利用saltstack或者ansible批量修改受控端服务器密码

首先要配置服务端与客户端的ssh无密码登录认证,然后批量修改

一个简单的shell脚本:

cat alter_pwd.sh

#!/bin/bash

ips=`cat server_name.cfg`

for ip in $ips

do

ssh  $ip  "echo 'root:123456798' |chpasswd"

if [ $? -eq 0 ]

then

echo -e "$ip's password updated \033[32m successful.\033[0m"

else

echo -e "$ip's password updated \033[31m failed!!!\033[0m"

fi

done

注:server_name.cfg 文件中是受控段服务器IP地址(一行一个IP)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值