#linux #bash #shell #root
#linux #bash #оболочка #root
Вопрос:
У меня есть скрипт bash, который должен запускаться пользователем root, однако я бы хотел, чтобы этот скрипт заставлял пользователя автоматически выходить из root. Я знаю, что вы выходите из root, набрав «exit» в командной строке, но ввод этого в скрипт bash просто завершит работу скрипта. Помощь приветствуется!
Комментарии:
1. Этот вопрос идеально подходит для суперпользователя.
2. Вы могли бы запустить скрипт с
.
помощью insteadsh script.sh
, чтобы строки вставлялись в текущий терминал вместо того, чтобы запускать его в отдельной подоболочке. А еще лучше, используйтеsudo
…3. мне нравится использовать:
source
4. Затем в конце вашего скрипта просто включите
exit
(но если он получен от имени обычного пользователя, он закроет терминал)5. Используйте sudo для запуска скрипта.
Ответ №1:
Вы можете попробовать использовать предложение, данное Уильямом
$sudo ./your.sh
Ответ №2:
Вы также можете использовать sudo -v
в начале своего скрипта запрос пароля sudo. И sudo -k
в конце очистить кеш.
Ответ №3:
Просто вставьте что-то вроде этого в начало вашего скрипта:
if [ "$(whoami)" == root ]; then
echo "ERROR: root cannot run this script"
exit 1
fi
Это приведет к тому, что вы сможете запускать скрипт только как обычный пользователь, и когда скрипт завершится, вы снова станете обычным пользователем. Затем поместите sudo перед каждой командой в скрипте, для которой требуется разрешение root. При кэшировании учетных данных sudo пользователю вашего скрипта необходимо ввести свой pwd только один раз.