zoukankan      html  css  js  c++  java
  • 用expect 修改linux系统用户密码

    #!/usr/bin/expect
    
    set OLDPWD [lindex $argv 0]
    set NEWPWD [lindex $argv 1]
    
    # spawn /usr/bin/echo $OLDPWD
    # spawn /usr/bin/echo $NEWPWD
    spawn /usr/bin/passwd
    expect "(current) UNIX password*" 
    send "$OLDPWD
    "
    expect "Enter new UNIX password*" 
    send "$NEWPWD
    "
    expect "Retype new UNIX password*"
    send "$NEWPWD
    "
    
    interact

    系统用的是CentOS 7.5;

    先安装expect

    # yum install -y expect

    # which expect

    /usr/bin/expect

    脚本执行方式:

    模仿无root权限,重置用户自己的密码:

    $ /usr/bin/expect tt.sh 原密码 新密码

    在一台机器上运行脚本,通过记录IP,用户名,原密码,新密码的中间文件passwd.txt,来批量重置接管环境的密码,尤其是在某些没有root用户权限的情况下,通过中间文件的方式不会有重置了一个密码但是自己忘记了或者重置的密码与自己记录的密码不一致的情况。脚本待更新,大致是通过expect和awk实现的。

    首先呢,我们需要生成一堆越复杂越好的密码。怎么用脚本生成呢。

    参考:https://www.cnblogs.com/dadonggg/p/8477655.html

    # 生成24位随机密码,urandom 真是特别好用,会比 # date +%s |sha256sum |base64 |head -c 10 ;echo 这个命令好用,因为如果用脚本的话,输入的时间参数相差无几,使用相同的加密方式会有大量相似的密码生成,实用性就不够了,除非再用一个特殊的方法获得随机字符作为输入。

    # </dev/urandom tr -dc '1234567890abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()_+<>?,./' | head -c24; echo

    脚本编写重定向到文件,然后用脚本再重新生成一个和 IP、用户名、原密码 一一对应的一个文件,便于记录修改后的密码,及记录资产台账。

    批量重置的前提,需要重置密码的系统都需要先安装 expect。 

  • 相关阅读:
    mark::开源绘图工具graphviz
    bzoj1013球形空间产生器sphere 高斯消元(有系统差的写法
    背包专题练习
    仿射加密与S-DES加密算法的实现
    1178:成绩排序
    1177:奇数单增序列
    1176:谁考了第k名
    1311:【例2.5】求逆序对
    1310:【例2.2】车厢重组
    1175:除以13
  • 原文地址:https://www.cnblogs.com/zhrngM/p/13041048.html
Copyright © 2011-2022 走看看