У меня есть несколько временных учетных записей на моем ПК, которые я использую для тестирования, и я переключаюсь между ними очень часто. Скажем, один из них – test
а другой – test1
. Я работаю над test
и мне нужно пройти test1
. Обычно я бы сделал su - test1
который вернет поле Password:
пароль для test1
. Затем введите пароль и нажмите Enter
. Есть ли способ сохранить пароль в переменной pass
и pass
его командой su
для выхода из поля Password:
😕
Примечание. Я знаю об угрозе безопасности, связанной с ее использованием с помощью su
и сохранении пароля в переменной. Я не беспокоюсь о них, так как это всего лишь несколько временных учетных записей.
su
isatty(3)
чтобы убедиться, что STDIN на самом деле относится к TTY.
Таким образом, вы не можете использовать любую переменную для передачи пароля в su
через STDIN.
Итак, я прочитал ответ heemayl и был придирчивым. Затем я заметил предложение Ульриха Шварца о том, чтобы сделать это с помощью ssh
. sshpass
ли какое-нибудь чтение ssh
и наткнулся на что-то, называемое sshpass
Он берет пароль и вводит команду ssh. Я бы просмотрел документацию о дыре / man.
Решите мою проблему: предположив мой password
для test1
1tset
, команда для моей проблемы будет: sshpass -p '1tset' ssh test1@host