Как войти в систему как другой пользователь, а затем выйти из скрипта bash? - PullRequest
4 голосов
/ 29 марта 2010

Мне нужно написать скрипт bash, чтобы сделать что-то от имени другого пользователя, а затем вернуться к первоначальному пользователю ...

Предположим, я запускаю следующее как root:

#!/bin/bash
USER=zaraza
su - "${USER}"
#do some stuff as zaraza
________ #here I should logout zaraza
#continue doing things as root

В консоли я должен написать "выход", но в bash это ключевое слово, и оно выходит из скрипта ...

Заранее спасибо,

Ответы [ 4 ]

5 голосов
/ 29 марта 2010

Используйте su -c. Со страницы руководства:

 su man -c catman
        Runs the command catman as user man.  You will be asked for man's
        password unless your real UID is 0.
3 голосов
/ 29 марта 2010

Самый простой способ - сделать материал, который должен запускаться от имени другого пользователя, отдельным скриптом и вызвать его с параметром -c в su, например, su -c otherscript userid.

Вы можете сделать это как "здесь сценарий" с << EOF, но я никогда не пробовал.

0 голосов
/ 29 марта 2010

Это сделает это.

su - $ {username} -c /path/to/the/shellscript.sh

0 голосов
/ 29 марта 2010

Вы также можете использовать sudo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...