grub2-reboot ohne root

grub2-reboot ohne root

Ich verwende das folgende Skript (basierend auf CodeHier), um einen Neustart mit Windows durchzuführen, damit ich mich nicht mehr jedes Mal ärgern muss, wenn ich anfange zu tagträumen und das Startmenü verpasse.

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

sudoIch muss jedoch ein Kennwort eingeben, sonst erhalte ich Folgendes:

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

Es handelt sich um einen symbolischen Link /boot/grub2/grubenv -> /boot/efi/EFI/fedora/grubenvund ist Eigentum von root.

Als normaler Benutzer in Fedora 23 funktioniert der Befehl rebooteinwandfrei. Wie kann ich ihn grub2-rebootauf sichere Weise zum Laufen bringen?

Ich dachte an so etwas wie ein Stick-Bit auf grub2-editenv, aber das klingt nicht gut. Ein Sticky-Bit auf meinem Skript funktioniert nicht (eine gute Sache). Das Ändern der Berechtigungen für die Datei /boot/efi/EFI/fedora/grubenvwürde funktionieren, könnte aber mehr Möglichkeiten eröffnen als beabsichtigt.

Antwort1

Ich sehe zwei Möglichkeiten:

  • Verwenden Sie sudo, aber konfigurieren Sie es so, dass dieser Befehl Sie nicht nach Ihrem Passwort fragt (mit NOPASSWDOption).

  • Legen Sie root als Eigentümer des Skripts fest und geben Sie die UID des Skripts ein:chown root.root script ; chmod u+s script

verwandte Informationen