Основная проблема: необходимо во время сеанса expect переключение в root-а.
Вот кусок кода который я использую:
Код: Выделить всё
#!/usr/bin/expect -f
#
# For example:
# ./this password ip scriptname
#
set prompt "(%|#|\\\$) $"
set password [lrange $argv 0 0]
set ipaddr [lrange $argv 1 1]
set scriptname [lrange $argv 2 2]
set timeout -1
#Шпионим за SSH
spawn ssh admin@$ipaddr $scriptname
#Как только увидим ?assword даем $password
expect "*?assword:*" {send -- "$password\r"}А вот так я пытался перейти на root-а:
Код: Выделить всё
spawn su -l
expect "*?assword:*" {send -- "$passwordssh\r"}При этом ввод комманды su не перехватывается expect-ом
На всех серверах не установлен expect и нет такой возможности.
Вопрос: что я должен дописать чтобы стать root-ом на серверах а уже потом запустить скрипт?