Я подключаюсь к серверу через PuTTY следующим образом:

putty.exe -ssh user@host -pw password -noagent -m commands.txt

После этого я должен использовать:

su someUser

Будет запрошен пароль - я поместил его в command.txt, но он не работает.

Как я могу автоматизировать команду su (включая пароль) в одной строке, которую я могу поместить в command.txt? Или, может быть, есть другой подход?

Я не хочу использовать sudo или execute и все. Я пробовал с:

echo password | su someUser

Однако трубопроводы таким способом не работали.

3 ответа3

2

Вы можете отключить вопросы о пароле, добавив строку, специфичную для скрипта / программы, в файле / etc / sudoers: yourusername ALL =(ALL) NOPASSWD: / usr / local / bin / what

0

Почему ты не хочешь использовать sudo? su всегда запрашивает пароль, используя возможности терминала, поэтому вам нужно создать псевдотерминал для связи с ним. expect могу сделать это для вас.

Тем не менее, я думаю, что "правильный" способ решить эту проблему - использовать исполняемый файл suid, принадлежащий конкретному пользователю, или, что еще лучше, использовать правильно настроенный sudo .

0

Для вас жизненно важно использовать su и сохранить пароль в файл? Если не использовать другой подход, потому что:

$ su << LOL
> secretpassword
> LOL
su: must be run from a terminal

$ echo secretpassword|su - 
su: must be run from a terminal

Вы бы лучше с ssh keys: Quck введение ssh-keys

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .