Como fazer o grub.cfg gravável automaticamente depois de cada update-grub

0

O título diz:

Como posso garantir que meu /boot/grub/grub.cfg ainda seja gravável após cada execução de update-grub ?

Já tentei definir permissões de /boot/grub/grub.cfg.new como eu gostaria que elas tivessem, em um script 41_custom , pois vi que o grub-mkconfig apenas move esse arquivo .new para o final, depois de tudo de grub.d foi incluído, mas isso não resultou em manter as permissões finalmente. Agora ainda estou procurando uma maneira segura de atualizar para ter automaticamente grub.cfg group gravável após cada execução de update-grub .

(Background: Eu quero mudar o arquivo via script antes de hibernar e voltar ao original depois de retomar).

    
por Jaleks 15.07.2018 / 14:48

1 resposta

1

Crie um script de wrapper para ele.

Você pode fazer algo semelhante a:

#!/bin/bash
update-grub
chmod g+w /boot/grub/grub.cfg

Em seguida, nomeie-o como update-grub-perm (ou qualquer outro) e execute-o em seu lugar.

Para que esse script seja executado automaticamente após um apt-get , você pode editar /etc/apt/apt.conf ou criar um novo arquivo em /etc/apt/apt.conf.d/ e invocar seu script de wrapper com DPkg::Post-Invoke .

Por exemplo, /etc/apt/apt.conf.d/80updgrubperm :

DPkg::Post-Invoke {"/root/bin/update-grub-perm";};

E /root/bin/update-grub-perm poderia ser algo como:

#!/bin/bash

FILE='/boot/grub/grub.cfg'
DATE=$(date '+%s')
FILETIME=$(stat -c %Y $FILE)
DAYSEC=86400

if [ $FILETIME -ge $(expr $DATE - $DAYSEC) ]; then
    chmod g+w $FILE
fi

exit 0

Onde o script acima verifica se /boot/grub/grub.cfg foi modificado nas últimas 24 horas. Se assim for, é chmod .

Nota : Provavelmente você pode encontrar uma maneira melhor de verificar se /boot/grub/grub.cfg foi atualizado, mas este é um exemplo rápido. Com minha pesquisa rápida, não vi nenhuma opção apt ou dpkg para executar este script se este pacote específico for atualizado .

Referência : link

    
por 16.07.2018 / 04:53

Tags