
私は次のスクリプトを使用します(コードベース)ここ) 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
私は2つの可能性を見る:
sudoを使用しますが、コマンドがパスワードを要求しないように設定します(
NOPASSWD
オプションを使用)。ルートをスクリプト所有者に設定し、スクリプトのuidを設定します。
chown root.root script ; chmod u+s script