проблема при входе в систему как пользователь sudo - PullRequest
0 голосов
/ 29 марта 2019

вот сценарий 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.но при получении пароля [sudo] для ПОЛЬЗОВАТЕЛЯ: недопустимое имя команды "sudo" при выполнении "sudo", вызванного из "ожидаемого" [sudo] пароля для ПОЛЬЗОВАТЕЛЯ: "" (файл "sample.expect", строка 6).

1 Ответ

0 голосов
/ 29 марта 2019
expect "[sudo] password for USER:"

Это использует квадратные скобки, которые являются механизмом Tcl для подстановки команд.Вы должны либо избежать лидирующей скобки, либо использовать не интерполирующие кавычки Tcl: одну из

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