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
sudo
Ich 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/grubenv
und ist Eigentum von root
.
Als normaler Benutzer in Fedora 23 funktioniert der Befehl reboot
einwandfrei. Wie kann ich ihn grub2-reboot
auf 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/grubenv
wü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
NOPASSWD
Option).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