grub2-reboot без root

Я использую следующий скрипт (на основе кода здесь ) для перезагрузки в Windows, поэтому я могу перестать пинать себя каждый раз, когда начинаю мечтать и пропущу меню загрузки.

#!/bin/bash
ENTRY=$( grep Windows /boot/grub2/grub.cfg | head -n 1 | cut -d"'" -f2 )
echo Rebooting to \"$ENTRY\"
sudo grub2-reboot "$ENTRY" && reboot

Однако мне нужно sudo и нужно ввести пароль, иначе я получаю следующее:

/usr/bin/grub2-editenv: error: cannot open ‘/boot/grub2/grubenv’: Permission denied.

Это символическая ссылка, / boot / grub2 / grubenv -> / boot / efi / EFI / fedora / grubenv и принадлежит root .

Команда reboot отлично работает как обычный пользователь в Fedora 23. Как я могу сделать grub2-reboot тоже работает, но безопасным способом?

Я думал что-то вроде бита на grub2-editenv , но это не звучит хорошо. Липкий бит в моем скрипте не сработает ( хорошая вещь ). Изменение прав доступа к файлу / boot / efi / EFI / fedora / grubenv будет работать, но может открыться больше возможностей, чем предполагалось.

0
13.04.2017, 15:37
1 ответ

Я вижу две возможности:

  • Использовать sudo, но настройте его так, чтобы эта команда не запрашивала пароль (с помощью параметра NOPASSWD )

  • Установите root как владельца сценария и установите uid сценария: chown root.root script; chmod u + s скрипт

0
28.01.2020, 04:53

Теги

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