Сделайте что-нибудь в терминале, чтобы сменить пользователя [закрыто]

Я хочу сделать что-то в терминале, что включает смену пользователя, например:

sudo su
do something
do something
exit
do something
do something
sudo su
do something
do something
exit

Я пытался сделать что-то, что требует прав root, например:

#!/bin/bash
sudo su
mkdir -pv /mnt/directory
exit

но это не сработало. Команда mkdir не выполняется root'ом. Она выдает сообщение "permission denied", потому что скрипт запущен не под root.

Возможно ли сделать что-то подобное? Если да, то как?

EDIT

Извините, если мой вопрос не ясен. Я имею в виду, чтобы скрипт менял пользователя в фоновом режиме, вводя пароль один раз для всех команд, которым нужны права root. Добавление sudo для каждой команды, которой нужны права root, это не то, что я имею в виду.

-1
задан 22 January 2015 в 22:00

1 ответ

Можно предварительно ожидать sudo ко всем командам. Удостоверьтесь, что выполнили сценарий как корень, непривилегированный пользователь будет вставлен по мере необходимости

#/bin/bash
do-something-neat                           # Run as invoking user (root)
sudo -u randomuser do-something-else        # Run as "randomuser" user
make potato --type=Mashed                   # Run as invoking user (root)
./servePotato.sh                            # Run as invoking user (root)
sudo -u randomuser eat MashedPotato.o       # Run as "randomuser" user
sudo -u fishy echo "I wanted potato!"       # Run as "fishy" user              
2
ответ дан 22 January 2015 в 22:00

Другие вопросы по тегам:

Похожие вопросы: