简体   繁体   English

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

[英]issue in logging in as sudo user

here is the script sample.expect : 这是脚本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$

expecting to log into the host as sudo user. 期望以sudo用户身份登录主机。 but getting issue [sudo] password for USER: invalid command name "sudo" while executing "sudo" invoked from within "expect "[sudo] password for USER:"" (file "sample.expect" line 6). USER获取问题[sudo]密码:无效命令名称“sudo”执行“sudo”时从“expect”[sudo]密码中调用USER:“”(文件“sample.expect”第6行)。

expect "[sudo] password for USER:"

That uses square brackets, which are Tcl's mechanism for command substitition. 它使用方括号,这是Tcl的命令替代机制。 You have to either escape the leading bracket, or use Tcl's non-interpolating quotes: one of 您必须转义前导括号,或使用Tcl的非插值引号:其中一个

expect "\[sudo] password for USER:"
# or
expect {[sudo] password for USER:}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM