Я знаю, что это глупый ответ и, возможно, не очень хорошо для вас, но как плохо, если вы просто...
cd /path/to/files/ && find. -type f | cut -c 3- >/tmp/temp.txt
tar czf foo.tgz -T /tmp/temp.txt
Можно ли использовать sudo
? Тогда вы могли бы сделать:
echo userBPassword | sudo -S -u userB whoami
Аналогичный вопрос:https://stackoverflow.com/questions/233217/how-to-pass-the-password-to-su-sudo-ssh-without-overriding-the-tty
Вы можете использовать ключи, чтобы избежать паролей. Создайте пару ключей как userB на вашем компьютере ec2 -скопируйте закрытый ключ на компьютер, с которого вы входите, и сохраните его в userA/.ssh/id _rsa _userB _ec2
Отредактируйте UserA/.ssh/config, чтобы добавить новую запись, например
Host ec2
Hostname my_ec2_instance
Port 22
User userB
IdentityFile ~/.ssh/id_rsa_userB_ec2
На компьютере ec2 добавьте открытый ключ в авторизованный файл ключей _. Затем вы должны просто войти в систему и изменить идентификатор на userB с помощью ssh ec2
, используя указанный выше псевдоним в файле конфигурации