• 用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。 

  • 相关阅读:
    selector
    Shape 属性解释
    Button 自定义图片,代码绘制样式,添加音效的方法
    android中得到颜色,图片资源的方式
    EditText 中文文档
    EditText 限制输入,自定义样式,监听输入的字符,自动换行
    TextView字体,行距,html格式,超链接,对大长度的设定
    TextView 中文文档
    Eclipse 汉化的和修改字体的方法
    让Android SDK Manager正常更新的办法
  • 原文地址:https://www.cnblogs.com/zhrngM/p/13041048.html
Copyright © 2020-2023  润新知