Как сделать grub.cfg доступным для записи автоматически после каждого update-grub

Как я могу убедиться, что мой /boot/grub/grub.cfg по-прежнему доступен для записи после каждого запуска update-grub ?

Я уже пытался установить разрешения для /boot/grub/grub.cfg.new как я хочу, чтобы они были в сценарии 41_custom , так как я увидел, что grub-mkconfig просто перемещает этот файл grub-mkconfig в последний после всех из grub.d был включен, но это не привело к окончательному сохранению разрешений. Сейчас я все еще ищу безопасный для обновления способ автоматической grub.cfg группы grub.cfg после каждого запуска update-grub .

(Справочная информация. Я хочу изменить файл с помощью скрипта перед переходом в hibernate и вернуться к исходному после возобновления работы.)

Сделайте скрипт для него.

Вы можете сделать что-то похожее на:

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

Затем назовите его чем-нибудь вроде update-grub-perm (или как там) и запустите его.


Чтобы этот скрипт запускался автоматически после apt-get , вы можете отредактировать /etc/apt/apt.conf или создать новый файл в /etc/apt/apt.conf.d/ и вызвать скрипт-обертку с помощью DPkg::Post-Invoke .

Например, /etc/apt/apt.conf.d/80updgrubperm :

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

И /root/bin/update-grub-perm может выглядеть примерно так:

 #!/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 

Где приведенный выше скрипт проверяет, был ли /boot/grub/grub.cfg изменен за последние 24 часа. Если так, то это chmod .

Примечание : вы, вероятно, можете придумать лучший способ проверить, обновлен ли /boot/grub/grub.cfg , но это быстрый пример. Благодаря моему быстрому исследованию я не увидел никаких опций apt или dpkg для запуска этого скрипта, если этот конкретный пакет обновлен .


Ссылка : https://www.cyberciti.biz/faq/debian-ubuntu-linux-hook-a-script-command-to-apt-get-upgrade-command/