Использование su в скрипте Shell - PullRequest
0 голосов
/ 17 августа 2010

Я пишу сценарий оболочки, в котором при условии, что сценарий изменит пользователя как su - xxx, а затем он должен выполнить некоторые команды / сценарии и должен оставаться в системе для этого пользователя / сессии для взаимодействия с пользователем. Когда пользователь вводит команду exit, он должен выйти из этой сессии и вернуться к сценарию.

Я пытался использовать su-xxx -c "команды", но он завершает сеанс после выполнения команд. Я хочу остаться в этом сеансе после выполнения команд, пользователь должен выйти вручную (введите exit), чтобы закрыть этот сеанс и вернуться к сценарию.

Подойдет любая подсказка ..

Заранее спасибо .... за предложение ..

Ответы [ 2 ]

0 голосов
/ 17 августа 2010

Вероятно, самый простой способ - запустить bash как последнюю команду в вашем списке команд.

0 голосов
/ 17 августа 2010

Что означает «должен оставаться авторизованным для этого пользователя / сеанса для взаимодействия с пользователем»? Вы хотите дать пользователю обычную подсказку оболочки, чтобы он мог набирать команды?

Для этого вам нужно запустить оболочку отдельно. Попробуйте:

#!/bin/bash
echo Doing stuff...
echo Starting shell. Type "exit" when done.
sudo su - -c bash
echo Thanks for playing!

Это запустит суб-оболочку для пользователя. Если дополнительная оболочка завершается (обычно, когда пользователь вводит команду exit / Ctrl-D), сценарий продолжается.

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