Eu vejo duas possibilidades:
-
Use o sudo, mas configure-o para que este comando não lhe pergunte a senha (usando
NOPASSWD
option) -
Defina root como o proprietário do script e configure o script:
chown root.root script ; chmod u+s script
Eu uso o seguinte script (baseado no código aqui ) para reinicializar o Windows, para que eu possa parar de chutar eu toda vez que eu começo a sonhar acordado e sinto falta do menu de inicialização.
#!/bin/bash
ENTRY=$( grep Windows /boot/grub2/grub.cfg | head -n 1 | cut -d"'" -f2 )
echo Rebooting to \"$ENTRY\"
sudo grub2-reboot "$ENTRY" && reboot
No entanto, preciso de sudo
e tenho que digitar uma senha ou recebo isso:
/usr/bin/grub2-editenv: error: cannot open ‘/boot/grub2/grubenv’: Permission denied.
É um link simbólico, /boot/grub2/grubenv -> /boot/efi/EFI/fedora/grubenv
, e de propriedade de root
.
O comando reboot
funciona bem como um usuário comum no Fedora 23. Como posso fazer grub2-reboot
funcionar também, mas de uma maneira segura?
Eu estava pensando em algo parecido com um pedaço de pau em grub2-editenv
, mas isso não parece bom. Um pouco pegajoso no meu script não funciona ( uma coisa boa ). Alterar permissões no arquivo /boot/efi/EFI/fedora/grubenv
funcionaria, mas pode abrir mais possibilidades do que o pretendido.
Eu vejo duas possibilidades:
Use o sudo, mas configure-o para que este comando não lhe pergunte a senha (usando NOPASSWD
option)
Defina root como o proprietário do script e configure o script: chown root.root script ; chmod u+s script
Tags grub2 permissions reboot