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