Как войти в систему под другим пользователем внутри скрипта оболочки и выполнить набор команд?

Как войти в систему под другим пользователем внутри скрипта оболочки и выполнить набор команд?

Мне необходимо войти в систему как другой пользователь, для чего требуется аутентификация по паролю, и выполнить некоторые команды от имени этого пользователя внутри скрипта оболочки, который я запускаю из своей учетной записи.

пример: user1 выполняет скрипт. Требование — войти как user2, используя пароль, и выполнить набор команд, используя один скрипт оболочки.

решение1

Вы можете воспользоваться несколькими способами:

  1. Используя su. Через su вы можете выполнить команду следующим образом:

su user -c "command"

или

su - user -c "command"

разница в том, что когда у вас есть dash, вы получите среду целевого пользователя. С этой командой вас попросят ввести пароль целевого пользователя

  1. С использованием sudo:

sudo -u user "command"

С помощью этой команды вы можете выполнить ее с паролем или без него (ваш пароль)

  1. С использованием ssh:

С помощью ssh вы можете выполнить команду с паролем для пользователя, паролем для ключа (если есть)

ssh user@localhost "command"

P.S. Есть и другие возможные методы, которые редко возможны, например rsh.

решение2

Использование команды su [username]позволяет вам выполнить команду в контексте этого пользователя из текущего местоположения. Использование следующей команды su - [username]переключает вас в домашний каталог этого пользователя. Если вы опустите имя пользователя, вы переключитесь на root.

Связанный контент