1

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

myFunction() {
    user=$1
    echo "Changing user to $user"
    su - $user
    whoami
    [do my stuff here for this user]
    return 0
}

1 ответ1

0

Вам нужно поместить команды, которые вы хотите запустить пользователем, в скрипт, а затем запустить скрипт, используя sudo , который вы должны использовать вместо su .

Например:

myFunction() {
    user="$1"
    tmpfile=$(mktemp)
    echo "date" >> $tmpfile
    # ... put other stuff in tmpfile
    sudo -u $user $tmpfile
    rm $tmpfile
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .