Shell修改密码为原密码

  密码到期后更改密码为原密码,服务器多时工作量巨大,编写脚本完成。

  登陆后修改提示符为: doraemon# 方便expect匹配

  修改LANG=C,提示为英文防止干扰:

  

#!/usr/bin/expect

###############################################################
# 连接远程主机
proc do_login {passwd} {
    set timeout 10
    set done 1
    set timeout_case 0
    set ps1 {PS1="doraemon#";export PS1}
    while {$done<3} {
        expect {
            *assword* {
                send $passwd\r
                incr done
            }
            \[$%>#] {
                set done 5
                send $ps1\r\r
                break
            }
            timeout {
                set done 1
                switch -- $timeout_case {
                    1 { send_user "try again ...\n" }
                    2 { exit 2
                        expect eof
                    }
                }
                incr timeout_case
            }
        }
    }
    if {$done==3} {
        exit 3
        expect eof
    }
}
###############################################################
# 执行命令
proc exec_cmd {cmd} {
    expect -re "doraemon#$"
    send_user "\$cmd: $cmd\n"
    send $cmd\r
}
###############################################################
# 退出
proc logout {} {
    expect -re "doraemon#$"
    send exit\r
    expect eof
}
###############################################################
# 执行命令
proc change_pass {curr cmd} {
    expect {
        -re "current|existing|exist|old|Old"
        {
            send $curr\r
            exp_continue
        }
        -re "New|new"
        {
            send $cmd\r
            exp_continue
        }
        -re "successfully|uthentication|changed"
        {
            send \r
        }
    }
}
###############################################################
if {$argc < 4} {
    send_user "Usage:$argv0 user pass ip newpass\n"
    exit 1
}
set user [lindex $argv 0]
set pass [lindex $argv 1]
set ip [lindex $argv 2]
set new [lindex $argv 3]
set pass_1 {1pqz!PAZ}
set pass_2 {[email protected]}
set pass_3 {3hwd#HWC}
set pass_4 {4zxv$ZXV}
set pass_5 {5nmb%NMB}
spawn ssh -o StrictHostKeyChecking=no -l $user $ip
do_login $pass
exec_cmd "LANG=C;export LANG"

exec_cmd passwd
change_pass $pass $pass_1
exec_cmd passwd
change_pass $pass_1 $pass_2
exec_cmd passwd
change_pass $pass_2 $pass_3
exec_cmd passwd
change_pass $pass_3 $pass_4
exec_cmd passwd
change_pass $pass_4 $pass_5
exec_cmd passwd
change_pass $pass_5 $new

logout
时间: 2024-07-31 19:47:07

Shell修改密码为原密码的相关文章

修改WAMP中mysql的密码(原密码是空)

WAMP安装好后,mysql密码是为空的,那么要如何修改呢?其实很简单,通过几条指令就行了,下面我就一步步来操作. 首先,通过WAMP打开mysql控制台. 提示输入密码,因为现在是空,所以直接按回车. 然后输入“use mysql”,意思是使用mysql这个数据库,提示“Database changed”就行. 然后输入要修改的密码的sql语句“update user set password=PASSWORD('里面输入你要设置的密码') where user='root';”,注意,sql

用shell脚本编写ssh直接修改目标服务器的密码以及ssh的应用

1.在生成环境中经常要修改服务器的密码,以保证安全,可以用shell编写脚本. 用ssh直接修改对方服务器的密码可以用ssh 用户名@登录IP 后跟命令就可以实现,但是需要管理员输入密码后才能操作,为了不让管理员手动进行输入所以用expect解决此方案,由于expect是单独的命令在/bin/bash是无法使用的,所以必须要嵌套使用,<<代表以什么结尾,EOF代表以EOF结尾,spawn输入登录的命令行,expect为期待着问什么,send代表发送需要的内容,\r代表为回车符. 1台服务器修改

CentOS6.5下通过Shell修改MySQL初始密码,开启远程登录,授权远程登录用户

CentOS6.5下通过Shell修改MySQL初始密码,开启远程登录,授权远程登录用户: 最近在写一个自动化部署的Shell脚本,需要通过Shell修改MySQL初始密码,开启远程登录,授权远程登录用户, 经过一番查找和实验,得到以下几个命令,给大家分享一下: 修改初始密码:mysqladmin -uroot -pvyCE2UwSaqx3xofR password "123456" 开启远程登录,授权远程登录用户:mysql -uroot -proot -e "grant

mac下修改mysql-root密码-各种权限问题解决

官方资料:http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html#resetting-permissions-unix 还有一个值得参考的mysql安装,与python-mysql安装博客http://hearrain.com/2011/01/498 据官方文档说, For example, if you run the server using the mysql login account, you should l

Mysql修改和破解登录密码(详)

Mysql修改或破解登录密码 一.重置MySQL管理密码 跳过授权表启动MySQL服务程序 这一步主要利用mysqld的 --skip-grant-tables选项,具体操作时可选择不同方式,但本质上是一样的.以下提供三种方式,任选其中一种都可以. 方式1(推荐),执行mysql脚本起服务,末尾加 --skip-grant-tables 参数: [[email protected] ~]# service mysql stop  服务关闭 [[email protected] ~]# servi

win pe 修改xp系统开机密码方法

今天使用win pe 修改了xp系统的密码,有三种方法 一 .  最终找到了一个方法,这个方法只能改写密码,也就是说会留下痕迹,如下: 1.使用的工具:FbinstTool v1.50 FbinstTool_格式化_初始化u盘.rar 2,软件下载后,安装后,进行设置,如下图: 此时已经插上了u盘,并且,这一步就是对u盘进行格式化和设置 3,第二步设置: 如下图: 弄完后,u盘初始化即可,然后是把这些解压后的软件复制到u盘上: 这些软件,你可以在如下网址上下载: http://ishare.ia

linux单用户模式修改root密码和grub密码设定

linux管理员在接管新服务器的时候,有一个常见的问题就是root密码的重置.如root密码长时间不用,或者接管一个陌生的服务器,需要用到单用户模式来重置root的密码. 以下内容是虚拟机VMware11下的centos 6.6版本的介绍: 一.单用户模式修改root密码: 1. 开机显示3s内按任意键,进入选择模式,随便按一个键: 2. 根据提示,点字母e进入编辑模式. 3. 光标选中第二项,再点字母e. 4. 进入编辑模式,在最后面加空格,输入1 .s .S都可以,然后点击回车.再根据后续的

安装xampp之后如何建立远程登录用户并修改登录方式和密码

其实xampp作为开发环是非常好用的,但是很少人将其用作生产环境,主要还是它的安全性较低,很多默认设置都存在安全漏洞,但是实际上使用xampp在Linux下面进行配置确实是很节省时间的一件事(如果你的系统较小,安全性要求不高的话,并且时间要求比较紧迫),我觉得可以用它作为一个临时运行环境,只不过在安装之后要进行一些相应的修改.这里主要讲一下安装xampp之后如何建立远程登录路用户并修改登录方式和密码. 在Linux下面解压xampp之后即可使用,这里我们将其解压在根目录下面的opt目录下,这时在

使用mysqladmin命令修改MySQL密码与忘记密码

修改密码: 1.例如你的 root用户现在没有密码,你希望的密码修改为123456,那么命令是: mysqladmin -u root password 123456 2.如果你的root现在有密码了(123456),那么修改密码为abcdef的命令是: mysqladmin -u root -p password abcdef 注意,命令回车后会问你旧密码,输入旧密码123456之后命令完成,密码修改成功. 3.如果你的root现在有密码了(123456),那么修改密码为abcdef的命令是: