美文网首页LinuxLinux
Linux服务器集群批量修改密码

Linux服务器集群批量修改密码

作者: 刘小白DOER | 来源:发表于2021-05-18 15:35 被阅读0次

        笔者以前写过linux集群配置免密—局域网中服务器群配置ssh免密。为了完成等保测评的定期修改密码的要求,今天在此基础上来做Linux服务器集群批量修改密码。

        在正式开始之前,学习以下chpasswd和passwd工具的使用方法。

    一、chpasswd

        chpasswd命令是批量更新用户口令的工具,是把一个文件内容重新定向添加到/etc/shadow中。

        1、echo root:passwd | chpasswd  。

        直接修改root用户的密码为passwd 。

        2、chpasswd < chpass.txt  。

        使用chpass.txt里面的用户名密码批量修改相应用户的密码。txt文件中的格式如下,和上面的方式一样,以冒号:来区分用户名和密码。

      user1:MYPASS1

      user2:MYPASS2

        需要注意的是chpasswd工具使用者是root,需要root用户才能执行。chpasswd权限是755,所有用户都有执行权限,但是在执行时会提示 chpasswd:无法锁定 /etc/passwd 。这是因为访问一些只有root用户才有权访问的文件,那么其他用户可能因为权限不够还是不能使用。

        chpasswd快速方便的修改多个用户密码,但是明文密码写在文件里仍然显得不够安全。

    二、passwd

        passwd命令用来更改使用者的密码。

        echo password | passwd --stdin mycentos

        输入的指令能被别人通过history或者其他方式捕获,密码同时含有单引号和双引号,那么则无法通过这种方法修改。而且其它的一些发行版(如Debian/Suse)所提供的passwd并不支持--stdin这个参数。

        批量修改密码脚本multi_chpasswd.sh。

    此脚本的前提是服务器集群以及配置了免密,详情参考笔者配置ssh免密的文章。

    #!/bin/bash

    #修改root用户密码:echo #root:helloboy | chpasswd

    GCOLOR="\e[47;32m ------ [OK] \e[0m"

    WCOLOR="\e[43;31m ------ [BAD] \e[0m"

    if [ $# -ne 2 ] ; then

      echo "Usage: $0 <nodes_files> <cmd_line>"

      exit

    fi

    for i in `cat $1 | grep -v ^# | grep -v ^$`

    do

        echo  $i

        node=$i

        ssh -l root $node "$2"

        if [ $? -eq 0 ]

        then

            echo -e "Node:$i doing is $GCOLOR"

        else

            echo -e "Node:$i doing is $WCOLOR"

        fi

    done

        使用方法:./multi_do.sh  chpass.txt  "echo root:helloboy | chpasswd"

        在实际运用中,可以只保留执行错误的信息显示,或者将执行信息存入log文件中保存。

    chpasswd命令是批量更新用户口令的工具,是把一个文件内容重新定向添加到/etc/shadow中

    来自: http://lnmp.ailinux.net/chpasswd

    passwd命令用来更改使用者的密码

    相关文章

      网友评论

        本文标题:Linux服务器集群批量修改密码

        本文链接:https://www.haomeiwen.com/subject/exaejltx.html