
Мне необходимо войти в систему как другой пользователь, для чего требуется аутентификация по паролю, и выполнить некоторые команды от имени этого пользователя внутри скрипта оболочки, который я запускаю из своей учетной записи.
пример: user1 выполняет скрипт. Требование — войти как user2, используя пароль, и выполнить набор команд, используя один скрипт оболочки.
решение1
Вы можете воспользоваться несколькими способами:
- Используя
su
. Через su вы можете выполнить команду следующим образом:
su user -c "command"
или
su - user -c "command"
разница в том, что когда у вас есть dash, вы получите среду целевого пользователя. С этой командой вас попросят ввести пароль целевого пользователя
- С использованием
sudo
:
sudo -u user "command"
С помощью этой команды вы можете выполнить ее с паролем или без него (ваш пароль)
- С использованием
ssh
:
С помощью ssh вы можете выполнить команду с паролем для пользователя, паролем для ключа (если есть)
ssh user@localhost "command"
P.S. Есть и другие возможные методы, которые редко возможны, например rsh.
решение2
Использование команды su [username]
позволяет вам выполнить команду в контексте этого пользователя из текущего местоположения. Использование следующей команды su - [username]
переключает вас в домашний каталог этого пользователя. Если вы опустите имя пользователя, вы переключитесь на root.