Intereting Posts
Установите apache, php и mysql на CentOS VPS Не удается прочитать установленный общий ресурс NFS на клиенте Преобразование содержимого файла в нижний регистр и сохранение результата в том же файле Как удалить кнопку XTerm с панели задач Icewm Как исправить «login: no shell: нет такого файла или каталога», когда я даже не могу войти в систему? Перенаправление портов между государственным и частным интерфейсами массив рейдов не установлен Как я могу совместно использовать интернет-соединение через USB? Как исправить файл автозаполнения вкладки имени файла Linux, который добавляет пробел вместо конечной косой черты в каталогах? Замена шаблона только тогда, когда он соответствует целому слову Как я могу сжать файлы с именем вывода, таким же, как родительская папка? Как NFS делится «RO» для всех пользователей и «RW» на некоторые IP-адреса Мой компьютер загружается на полный фиолетовый экран и запрашивает имя пользователя и пароль Ошибочные результаты с обнаружением хоста с использованием nmap Как перейти к началу командной строки, когда я нахожусь внутри экрана?

Перед обновлением пакета, как я могу узнать, какие файлы будут изменены?

Я должен обновить некоторые машины, но я использую исправленную версию linux и не хочу, чтобы пакеты изменяли определенные файлы. Чтобы быть яснее, вот список действий, которые я не хочу, чтобы пакет выполнял:

Modify the boot sequence (modify grub) Change the init files (init.d) The kernel image 

Как следствие, я перечислил пару пакетов и приостановил их:

 for package in 'package_list grub2-common...' do echo $package hold|dpkg --set-selections done 

Я также мог бы добавить их в / etc / apt / prefences с -1 priotity, но я не думаю, что это необходимо.

Я хотел бы сделать этот процесс автоматически, учитывая список файлов, найти все пакеты обновлений, которые их используют, и приостановить их. Если бы я мог найти действия, выполняемые каждым пакетом без его установки, это было бы отличным началом.

EDIT: использование chattr -i <filelist>. позволяет мне блокировать доступ к некоторым файлам, но я бы предпочел бы более простой пакет, ориентированный на aproach, чтобы решить мою проблему.

Спасибо за вашу помощь.

Это может быть не лучший ответ, но если вы «не хотите, чтобы пакеты изменяли определенные файлы», вы можете сделать эти файлы неизменными с помощью chattr -i <filelist> . Итак, если бы я был вами, я бы подумал:

 find /etc/init.d /boot -type f -exec chattr +i "{}" + 

После того, как вы закончите, измените +i на -i (или сохраните его таким образом, пока вам не понадобится изменять файлы). Эта операция устанавливает / сбрасывает «неизменяемый» бит, который является специальным расширенным атрибутом, специфичным для Linux. Пока бит установлен, файл нельзя изменить или удалить.