以sudo用户身份登录时出现问题

问题描述 投票:0回答:1

这是脚本sample.expect:

#!/usr/bin/expect
spawn ssh -t USER@HOST "sudo su "
expect "USER@HOST's password:"
send "password\r"
expect "$ "
expect "[sudo] password for USER:"
send "password\r"
expect "$ "
puts "USER [exec whoami]"
interact


-bash-4.1$ expect sample.expect`enter code here`
spawn ssh -t USER@HOST sudo su root
FIPS integrity verification test failed.
USER@HOST's password:
[sudo] password for USER: invalid command name "sudo"
    while executing
"sudo"
    invoked from within
"expect "[sudo] password for USER:""
    (file "sample.expect" line 6)
-bash-4.1$

期望以sudo用户身份登录主机。 USER获取问题[sudo]密码:无效命令名称“sudo”执行“sudo”时从“expect”[sudo]密码中调用USER:“”(文件“sample.expect”第6行)。

linux expect sudo
1个回答
0
投票
expect "[sudo] password for USER:"

它使用方括号,这是Tcl的命令替换机制。您必须转义前导括号,或使用Tcl的非插值引号:其中一个

expect "\[sudo] password for USER:"
# or
expect {[sudo] password for USER:}
© www.soinside.com 2019 - 2024. All rights reserved.