2

У меня есть сценарий оболочки, в котором большинство команд необходимо запускать с правами пользователя sesu а затем мне нужно запускать некоторые команды как текущий пользователь. Можете ли вы помочь мне в этом?

4 ответа4

1

Если вы не хотите каждый раз указывать пароль, добавьте sesu в группу sudoers и выполните нужную команду следующим образом:

sudo su -c "command string"

Таким образом, command string запускается как суперпользователь (root и т.д.).

1

Команда

    exit

закрывает текущую оболочку. Если вы работали с оболочкой, подобной пользователю X, то переключились на пользователя Y, выход закрывает оболочку, в которой вы были Y, и возвращает вас к X

0

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

#!/bin/bash

# generic_sudo.sh
# Tool that demonstrates in-then-out of sudo
# This demo is pointless if called with 'sudo generic_sudo.sh'

# Need root priviledges for some superuser work
if (( EUID != 0 )); then # If the user is not "root":
# In general one should use ((..)) for testing numbers and integer variables, and [[..]] for testing strings and files.
    sudo $0                         # Relaunch it as "root".
    EXITCODE=$?
    printf "su mode OFF.\n"         # If we got here, we left superuser mode
    printf "EUID is: %d\n" $EUID
    printf "Exit code %d\n" $EXITCODE
    exit $EXITCODE                  # Once it finishes, exit gracefully.
else
  printf "su mode ON.\n"
fi                              # End if.

printf "EUID is: %d\n" $EUID

# Some superuser work

printf "Some superuser work was done.\n"
exit 0
0

Вы можете использовать su для переключения на другого пользователя и опцию -c для выполнения команды, например

 su anotherUser -c "ls /"

Проверьте, есть ли у вас sudo и подумайте, сможете ли вы использовать его в вашем случае. В приведенном выше примере su будет запрашиваться пароль другого пользователя, и это может раздражать.

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