Я хочу сделать что-то в терминале, что включает смену пользователя, например:
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, это не то, что я имею в виду.
Можно предварительно ожидать 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