grub2 无需 root 即可重新启动

grub2 无需 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是可行的,但可能会带来比预期更多的可能性。

答案1

我看到两种可能性:

  • 使用 sudo,但配置它以便该命令不会询问您密码(使用NOPASSWD选项)

  • 将 root 设置为脚本的所有者并设置脚本的 uid:chown root.root script ; chmod u+s script

相关内容