grub2는 루트 없이 다시 시작할 수 있습니다

grub2는 루트 없이 다시 시작할 수 있습니다

나는 다음 스크립트를 사용합니다 (코드 기반)여기) 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옵션 사용).

  • 루트를 스크립트 소유자로 설정하고 스크립트의 uid를 설정합니다.chown root.root script ; chmod u+s script

관련 정보