나는 다음 스크립트를 사용합니다 (코드 기반)여기) 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
옵션 사용).루트를 스크립트 소유자로 설정하고 스크립트를 setuid로 설정합니다.
chown root.root script ; chmod u+s script