После запуска скрипта bash от имени пользователя root, как я могу заставить скрипт автоматически принудить моего пользователя к выходу из root?

#linux #bash #shell #root

#linux #bash #оболочка #root

Вопрос:

У меня есть скрипт bash, который должен запускаться пользователем root, однако я бы хотел, чтобы этот скрипт заставлял пользователя автоматически выходить из root. Я знаю, что вы выходите из root, набрав «exit» в командной строке, но ввод этого в скрипт bash просто завершит работу скрипта. Помощь приветствуется!

Комментарии:

1. Этот вопрос идеально подходит для суперпользователя.

2. Вы могли бы запустить скрипт с . помощью instead sh 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 только один раз.