На этот вопрос уже есть ответ здесь:
Есть ли способ отменить sudo
в сценарии?
например ..
sudo ./script.sh
команды 1,2 , 3,4,5 с правами sudo
команды 6,7,8,9 без прав sudo
См. руководство для sudo:
К [команды]
, Когда используется одной,-k (уничтожают) опцию к sudo, делает недействительным кэшируемые учетные данные пользователя. Следующий раз sudo выполняется, пароль будет требоваться.
Таким образом помещает sudo -k
перед каждым sudo
команда, которую Вы хотите повторно попросить пароля. Или позади каждой команды, где Вы хотите, чтобы следующие команды не были sudo
.
Между прочим: если Вы просите пароль в сценарии, необходимо использовать...
./script.sh
а не с sudo
перед ним.
Если необходимо запустить скрипт с sudo, можно все еще выполнить некоторые команды как обычный пользователь, использующий:
sudo -u $SUDO_USER <command>
Если Вы запускаете следующий скрипт с sudo
:
#!/bin/bash
whoami
sudo -u $SUDO_USER whoami
Это произведет:
root
sylvain