Я предполагаю, что у пользователя user1 нет пароля -less доступ к sudo, правильно? Если это так, вы можете использовать команду runuser.
runuser -l user2 -c 'whoami'
Вы можете просто использовать su / sudo, если у вас настроены разрешения sudo.
su - user2 -c 'whoami'
Однако я предполагаю, что у вас нет sudo без пароля и / или у вас может не быть пароля для пользователя user2. Вы можете сделать сложную задачу, сгенерировав пару ключей RSA для пользователя user1, а затем добавив ключ id_rsa.pub в файл $ HOME / .ssh / authorized_keys пользователя2, чтобы включить аутентификацию с открытым ключом RSA, а затем использовать SSH, чтобы сделать это без пароля.
От имени пользователя user1 выполните следующее: ssh keygen Просто нажмите клавишу ввода в запросах Затем выполните следующее, чтобы добавить ключ автоматически (вы можете сделать это вручную, чтобы). Если вы используете эту команду, вам понадобится пароль пользователя user2 только в первый раз.
ssh-copy-id -i $ HOME / .ssh / id_rsa.pub user2 @ hostname
Если это сработает, вы сможете войти в систему как user1, затем запустите ssh user2 @ localhost для входа как user2 без пароля. Убедитесь, что в / etc / ssh / sshd_config на сервере включена аутентификация PublicKey.
Затем для удаленного выполнения команды вы можете запустить что-то вроде:
ssh user2 @ localhost "remote-command1; remote-command2"