Как отправить пароль sudo в сценарии оболочки

574
ercey

Мой сценарий оболочки (без EXPECT, и это невозможно) запускает сценарий оболочки, выдавая себя за другого пользователя. Допустим, следующий скрипт назван toto1.shи запускается с именем пользователя MYUSERNAME1.

#!/bin/sh su - MYUSERNAME2 ./app/sh/toto2.sh 

Мой скрипт останавливается, запрашивая пароль ...

Как я могу отправить пароль для MYUSERNAME2?

1
Рассмотрите возможность установки sudo без пароля для этого конкретного случая. simlev 6 лет назад 0
Не могу, секретный вопрос. Я действительно застрял с командой su ercey 6 лет назад 0
Вы не можете запустить или запланировать скрипт как `root`? simlev 6 лет назад 0
У меня нет прав, скрипт вызывается внешним приложением, которое не должно иметь полных прав ... ercey 6 лет назад 0
Проще говоря, я могу использовать только команду su ercey 6 лет назад 0
Как правило, лучше избегать записи пароля внутри скриптов. simlev 6 лет назад 0
i know it, but this is my last solution ... how can I do it? ercey 6 лет назад 0
Подождите минутку ... у вас нет `sudo`? simlev 6 лет назад 0
мой администратор, чтобы добавить пользователя в sudoers ercey 6 лет назад 0
Твой ответ мне не понятен: у тебя есть `sudo`? simlev 6 лет назад 0
да у меня есть судо ercey 6 лет назад 0

1 ответ на вопрос

0
simlev

Если у вас есть в sudoналичии, решение уже размещено в ряде из мест :

echo <password> | sudo -S -u <user> <command> 

От man sudo:

-S, --stdin Записать подсказку к стандартной ошибке и прочитать пароль из стандартного ввода вместо использования терминального устройства. За паролем должен следовать символ новой строки.

Похожие вопросы