Автоматизация в Shell Script Terminal - PullRequest
0 голосов
/ 16 сентября 2011

Боже мой! Я перепробовал все о ожидать . То, что я хочу сделать, это создать скрипт для автоматизации ввода пароля при смене пользователя root в терминале. Мой код выглядит так

expect -i
spawn sudo pmset schedule sleep "{query}" expect { Password: send "password\r" }; interact;    
exit

результат

expect1.1> spawn sudo pmset schedule sleep "06/19/11 23:40:00" expect { Password: echo  "lovegun\r" }; interact; exit
spawn sudo pmset schedule sleep 06/19/11 23:40:00 expect  Password: send "password\r" 
Password:

Я застрял в пароле: Может кто-нибудь посмотреть на мой код? Что не так с этим.

expect -c '
  proc abort {} {
    puts "You have Authenticated\n"
    exit 1
  }
  spawn sudo pmset schedule sleep "{query}"
  expect {
    Password:        { send "password\n" }
    default          abort
  }
  puts "Finished OK\n"
'

Наконец я нашел ответ

1 Ответ

2 голосов
/ 16 сентября 2011

Если вы хотите, чтобы ваш пароль был похоронен в ожидаемом скрипте, вы можете либо 1) изменить pmset для запуска set-user-id, чтобы вам не приходилось использовать sudo, либо 2) предоставить себе доступ NOPASSWD кsudo, поэтому вам не нужно вводить пароль.В любом случае вам не придется хранить пароль в файле.

...