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