一:通过登陆远程root修改密码
通过远程登陆修改netseek用户
密码为52netseek
echo "52netseek" | ssh -l root 192.168.1.112 passwd --stdin netseek
二: 通过expect脚本
登陆普通用户修改自己的密码.
#!/usr/bin/expect
#@brief to change user password by ssh remote machine
proc usage {funcname} {
puts "Usage: "
puts " $funcname <host> <username> <newpasswd> -user <userpasswd>"
puts " $funcname <host> <username> <newpasswd> -root <rootpasswd>"
}
# check param
if { $argc != 5 } {
usage $argv0
exit 1
}
# get param
set host [lindex $argv 0]
set username [lindex $argv 1]
set newpasswd [lindex $argv 2]
set loginname "root"
if { [string compare [lindex $argv 3] "-user"] == 0 } {
set loginname $username
}
set passwd [lindex $argv 4]
puts "$host $username $newpasswd $loginname $passwd"
spawn ssh -l $loginname $host
expect {
"*(yes/no)*" { send "yes\r"; set sshkey 1 }
"*assword:*" { send "$passwd\r"; set sshkey 0 }
if sshkey == 1 {
expect "*password:*"
send "$passwd\r"
}
}
expect "*#"
if { [string compare $loginname "root"] == 0 } {
#send "echo \"$username:$newpasswd\" | chpasswd\r"
send "echo \"$newpasswd\" | passwd --stdin \"$username\"\r"
} else {
send "passwd\r"
expect {
"*current*assword:" {send "$passwd\r"}
"passwd: Authentication token manipulation error" {exit}
}
expect "New*assword:"
send "$newpasswd\r"
expect "Retype*assword:"
send "$newpasswd\r"
}
expect "*#"
send "exit\r"
用法:
Usage:
./exp.sh <host> <username> <newpasswd> -user <userpasswd>
./exp.sh 192.168.1.112 netseek 52netseekabc -user 52linux
tone
分享到:
相关推荐
本文档主要介绍如何使用 Expect 脚本来批量修改远程 Linux 服务器的密码。该方法可以快速地对多台服务器进行密码修改,并且可以实现自动化操作。 知识点: 1. Expect 脚本的使用:Expect 是一个非常强大的工具,...
接下来,我们可以编写一个bash脚本来读取包含远程服务器IP地址的文件(如`ip_list.txt`),然后通过`expect`来自动登录并修改每个服务器的root密码。脚本的大致结构如下: ```bash #!/bin/bash for IP in $(cat /...
参考expect4j的交互式操作方式控制输入输出流实现批量执行多条shell命令同时支持切换用户输入密码提权执行命令输入密码等操作 有完整的测试用例,便于理解 模板化执行命令示例 [$]send[su - root] [Password:]...
需要对服务器进行批量的修改root密码,还要在每台服务器新建一个用户,如果一个一个登到的服务器上进行修改的话,估计一个下午又没有了,首先想到的是我最喜欢的php,其中有个ssh2 模块,不得不承认用php 来处理这样...
1. 自动化SSH登录:编写 Expect 脚本,模拟输入用户名和密码,自动连接到远程服务器,执行命令或传输文件。 2. 批量执行命令:对于需要在多台设备上执行相同命令的情况,可以通过 Expect 脚本批量处理,提高工作...
- **非交互式程序的控制**:即使是对交互依赖极高的程序,如密码修改或远程登录,Expect也能实现自动化控制,无需人工干预。 - **速度与安全考量**:尽管Expect提供了强大的功能,但在性能和安全性方面也需谨慎。...
比如,当需要批量更改服务器上的用户密码时,可以使用 `expect` 来自动完成这一过程,同时确保密码的一致性和安全性。此外,还可以利用 `expect` 来进行各种一致性检查,比如确认所有服务器上的配置是否一致。 ####...
在这个例子中,`spawn`命令启动SSH连接,`expect`等待特定字符串(如"password:"),然后`send`命令发送用户密码,以此类推,直到脚本执行完毕。 总的来说,expect5.45.3是Linux系统管理员和自动化工程师的得力助手...
`expect`是一个强大的自动化交互式程序的工具,它能够模拟用户与命令行的交互,使得我们可以通过脚本批量执行远程命令和脚本。在本文中,我们将深入探讨如何在`CentOS`中利用`expect`进行批量远程操作。 首先,确保...
它能够模拟用户与远程系统的交互过程,例如通过FTP进行文件传输、通过Telnet登录到远程服务器发布文章,甚至可以用于对网络设备如交换机或路由器进行配置管理。 #### 二、Expect的功能特性 ##### 1. **FTP自动化**...
1. **密码更改**:利用`expect`可以自动执行密码更改流程,适用于批量更新用户密码的情况。 - 示例脚本可能包括获取当前密码、验证新密码规则、输入新密码等步骤。 - 可以在脚本中加入逻辑判断,确保密码强度符合...
- **远程登录与文件传输:** 当需要频繁登录远程服务器或进行文件传输时,使用 Expect 可以避免每次输入相同的用户名和密码。 - **密码更改:** 在批量更改多个系统账户的密码时,Expect 脚本可以自动完成整个过程。...
1. **密码更改**:例如,使用`passwd`命令更改密码时,该命令会提示用户输入新密码。由于传统shell无法有效地与这类命令进行交互,因此难以编写一个能够自动化整个过程的脚本。 2. **数据传输**:在使用`uucp`等...
3. **脚本解析**:以下是一个更加复杂的示例,用于更改用户 chavez 的登录 Shell 至 `/bin/tcsh`: ```bash #!/usr/bin/expect # 更改登录 Shell 至 tcsh set user [lindex $argv 0] spawn chsh $user expect...
例如,你可以用Expect编写一个脚本来自动更改大量用户的密码,或者定期备份远程服务器的数据。 总之,Expect是一个强大的工具,结合TCL语言,可以实现复杂和灵活的自动化任务。在Linux环境中,通过RPM包管理器进行...
例如,可以使用`user`模块的`password`参数来更改密码,或者使用`command`模块执行如`passwd`命令。 `mnt`目录可能包含了挂载点,如果在 Ansible 的任务中涉及到文件系统的操作,如挂载网络存储设备,那么这个目录...
- **第 27 行**: 更改新创建用户的密码。 - **第 39 行**: 添加用户到 Samba 服务。 ##### 2.3 注意事项 - **参数处理**: `$argc` 和 `$argv` 用于处理命令行参数。 - **spawn 命令**: 根据实际情况调整 `spawn` ...
在Linux系统管理中,修改用户密码是一项常见的任务。本文主要探讨了两种方法——交互式和非交互式修改用户密码,并提供了一个使用脚本自动化这一过程的示例。 1. **交互式修改用户密码**: 使用`passwd`命令是交互...
3.支持修改用户密码、切换用户的密码、Root密码 4.支持日志记录操作指令、屏幕输出 5.支持断线重连。因为是单进程单线程的,所以有可能执行到后面的机器SSH连接已断开。 --- 1.语言字符需要zh_CN.UTF-8 2.需要Perl ...