Подтвердить что ты не робот

Выполнить одиночную команду в оболочке script без sudo

У меня есть простая оболочка script, которая запускается с sudo, как это требует большинство из script, но одна из команд в script - это установка Homebrew, которая не может быть выполнена с помощью sudo..

Итак, мой вопрос заключается в выполнении оболочки script с sudo, как я могу выполнять подкоманды в качестве текущего пользователя, а затем продолжить оставшуюся часть script с помощью sudo.

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

4b9b3361

Ответ 1

Самый простой способ - запустить подкоманду через sudo из script. Идентификатор пользователя для запуска можно получить с помощью $SUDO_USER (посмотрите на результат sudo env):

sudo -u $SUDO_USER ./exec_as_normal_user.sh

Ответ 2

Создайте оболочку с помощью

sudo -u $USER_NAME bash

и выполните оболочку script, вызвав,

./program.sh