Редактирование файла без разрешения перезаписи

Можно ли установить разрешения для файла, чтобы он был доступен для редактирования, но без разрешения на перезапись?

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

У меня есть пакет файлов, так как некоторые из них были отредактированы / настроены из исходной версии. При обновлении пакета с новой версией я хочу заменить любой нетронутый файл, но защищать настроенные файлы (не пропустить редактирование). В настоящее время я должен сделать это вручную: запись файла, который был отредактирован, а не заменен в новом обновлении.

  • Разделить файл по количеству строк, включая заголовок в каждом из них
  • Выберите файл на основе количества строк и обработайте результат
  • Чтобы найти размер некоторой группы файлов
  • Протирать файлы с внешнего жесткого диска, но не пустым пространством
  • Как сравнивать каталоги с двоичными файлами
  • Как я могу быть уверен, что каталог или файл действительно удалены?
  • Force nautilus desktop для открытия файлов с другим файловым менеджером
  • команда du показывает разные результаты, чем st_blocks
  • 4 Solutions collect form web for “Редактирование файла без разрешения перезаписи”

    Поскольку все пакеты будут пытаться полностью переопределить файл конфигурации, вы можете установить файл в режиме добавления только,

    chattr +a bb

    Таким образом, вы не можете удалить / усечь файл, просто добавьте его.

    Но в этом случае вы остановите менеджера пакетов из системы обновления.

    Если вы просто не хотите, чтобы менеджер пакетов переопределял ваши настроенные файлы, вы могли бы держать пакет на debian / ubuntu, вы могли бы сделать:

    echo package-name hold | dpkg --set-selections

    Таким образом, этот пакет не будет обновлен, ваши файлы сохранены.

    Это зависит от того, что именно означает «перезаписать». Если это означает изменение данных существующего файла, то это невозможно, потому что операционная система не имеет возможности отличить «редактирование» от «перезаписывания» – они оба изменяют данные файла. Если это означает удаление и создание нового файла с тем же именем (или переименование нового файла на это имя), это может быть достигнуто путем удаления разрешения на запись из каталога, содержащего файл. Очевидно, это применимо ко всем файлам в этом каталоге, но не к одному конкретному файлу.

    Прежде всего, сделайте дег из важных файлов пакета. Затем обновите. После того, как вы установили новую версию, отмените сохранение в другом каталоге и откорректируйте файлы, которые вы редактировали с помощью новых пакетов. Таким образом, вы увидите, что новые файлы также не имеют важных вещей, которые нужно добавить / изменить (т. Е. Разработчики могут также внести изменения в файлы, которые вы редактировали, и эти изменения также должны быть сохранены. просто замените файлы new-from-new-package своими старыми изменениями, не проверяя сначала, если эти новые файлы не содержат новую важную информацию)

    Как root:

     chattr +i foo.txt 

    Затем попробуйте:

     vim foo.txt 

    измените файл в vim и попытайтесь его сохранить.

    Пример использования – chattr + i /etc/resolv.conf, так что ваш отвратительный сервис сетевого менеджера не перезаписывает его каким-то загрузочным файлом, который он получает из неправильно сконфигурированного домашнего / офисного маршрутизатора.

    Вы можете отменить его:

     chattr -i foo.txt 

    В модели файловой системы Linux это лучшее, что вы можете сделать. Другого решения нет.

    Interesting Posts

    Найти регулярное выражение для метки времени в имени файла не работает

    Мое WLAN-соединение скрыто, даже широковещательная передача включена

    Как запретить правила UDEV назначать устройство определенному набору имен

    Почему файл exec генерирует 4 процесса в Linux?

    Типичный вариант использования группового пароля

    Почему `rename` ведет себя по-разному, когда я использую полный путь вместо текущего пути?

    Apache Tomcat и Httpd – общий доступ к папке веб-публикации – CentOS

    Экраны умирают, хотя процесс все еще запущен

    Изменение имени хоста на SUSE Linux Enterprise Server 11 SP3 для VMware

    Будет ли использование сжатой файловой системы над зашифрованным томом повысить производительность?

    Могу ли я получить командную строку ffmpeg из существующего видео?

    разделение смолы

    Вывод «Голливуд-хакер-сцена» из оболочки

    Как я могу узнать, была ли исправлена ​​моя система Ubuntu, поэтому она не может быть отвратительной для Dirty Cow?

    Числовая сортировка файлов

    Linux и Unix - лучшая ОС в мире.