我使用以下腳本(基於程式碼這裡)重新啟動到 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
是可行的,但可能會帶來比預期更多的可能性。
答案1
我看到兩種可能性:
使用 sudo,但配置它以便該命令不會詢問您密碼(使用
NOPASSWD
選項)將 root 設定為腳本的擁有者並設定腳本的 uid:
chown root.root script ; chmod u+s script