Введите пароль в поле пароля терминала без клавиатуры

У меня есть несколько временных учетных записей на моем ПК, которые я использую для тестирования, и я переключаюсь между ними очень часто. Скажем, один из них – 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