Атрибуты файлов в Linux (chattr lsattr).

Установка, настройка, эксплуатация.
Ответить
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Атрибуты файлов в Linux (chattr lsattr).

Сообщение root »

Оглавление
Темы
Введение
Атрибуты chattr
Просмотр атрибутов lsattr
Особенности и предупреждения
Заключение
Основные операции

Утилиты chattr и lsattr управляют расширенными атрибутами файловой системы ext4, позволяя защитить важные файлы от изменений, удаления и перезаписи.

Просмотр и изменение атрибутов:

Код: Выделить всё

lsattr /etc/passwd
----i--------e------- /etc/passwd

sudo chattr +i /etc/resolv.conf # установить защиту
sudo chattr -i /etc/resolv.conf # снять защиту

Основные флаги:
Флаг Назначение
i Файл нельзя изменять, удалять, переименовывать.
a Разрешено только добавление (append).
A Не обновлять время доступа при чтении.

Примеры:
  1. Защитить все файлы каталога:

    Код: Выделить всё

    sudo chattr -R +i /etc/network/
  2. Разрешить только добавление в лог:

    Код: Выделить всё

    sudo chattr +a /var/log/secure
  3. Проверить результат:

    Код: Выделить всё

    lsattr /var/log/secure

Советы:
  1. Работает только с файловыми системами ext2/3/4.
  2. Для копирования атрибутов используйте:

    Код: Выделить всё

    rsync -aAXv source/ dest/
  3. lsattr не отображает скрытые файлы без параметра -a.

Отмена защиты при обновлении:
При обновлении Fedora пакеты dnf/rpm не смогут изменить файлы с флагом +i.
Перед обновлением снимите защиту:

Код: Выделить всё

sudo chattr -i /etc/resolv.conf /etc/ssh/sshd_config
sudo dnf upgrade
sudo chattr +i /etc/resolv.conf /etc/ssh/sshd_config

Автоматизация:

Код: Выделить всё

#!/bin/bash
FILES=(/etc/resolv.conf /etc/hosts /etc/ssh/sshd_config)
for f in "${FILES[@]}"; do [ -f "$f" ] && chattr +i "$f"; done

Заключение
Атрибуты chattr обеспечивают простую, но надёжную защиту системных файлов.
Используйте +i и +a для предотвращения случайных изменений и повреждений конфигураций.

Утилита chattr (от change attributes) позволяет изменять дополнительные атрибуты файлов и директорий в Linux, которые не управляются стандартными правами (chmod, chown). Эти атрибуты обеспечивают дополнительный уровень контроля над файлами, например:
  • Запрет изменения или удаления (immutable)
  • Разрешение только дозаписи (append-only)
  • Отключение обновления времени доступа (noatime)
chattr работает на уровне файловой системы (ext2/3/4, btrfs, xfs и др.), поэтому некоторые атрибуты могут быть недоступны в зависимости от ФС.
  • A – Не обновлять время доступа (atime)
  • a – Только дозапись (append-only)
  • c – Сжатие (compress)
  • C – Нет копирования при записи (no CoW)
  • d – Исключить из дампов (no dump)
  • D – Синхронное обновление директории
  • e – Extent-формат (для ext4)
  • E – Шифрование (encrypted)
  • F – Синхронное обновление директории (как D, но для поддиректорий)
  • i – Неизменяемость (immutable)
  • I – Индексирование директории (для btrfs)
  • j – Журналирование данных (ext3/ext4)
  • m – Отключение сжатия (no compression)
  • N – Встроенный inode (inline data)
  • P – Проект (для проектного квотирования)
  • s – Безопасное удаление (secure delete)
  • S – Синхронные изменения (sync)
  • t – Без хвостов слияния (no tail-merging)
  • T – Top of directory hierarchy
  • u – Восстановление при удалении (undeletable)
  • x – Прямой доступ (direct access)
Примеры:

Код: Выделить всё

chattr +i file.txt  # Запретить любые изменения  
chattr +a /var/log/auth.log  # Можно только добавлять данные
chattr +d backup.tar.gz  # Исключить файл из резервных копий
chattr +A myfile.txt  # Отключить обновление atime
Флаг с "-" снимает установленный атрибут. Список атрибутов может отличаться в зависимости от ФС (ext2/3/4, btrfs, xfs и др.).
Чтобы посмотреть текущие атрибуты, используйте lsattr:

Код: Выделить всё

lsattr /etc/passwd  
----i--------- /etc/passwd  
Здесь i означает, что файл неизменяемый.
  • Требуются права root – Большинство атрибутов (i, a, s) можно установить только от имени суперпользователя.
  • Файловая система – Некоторые атрибуты (C, c, e) работают только в определённых ФС (ext4, btrfs).
  • Не защищает от live-CD – Атрибуты действуют только в работающей системе, но не предотвращают изменение файлов при загрузке с Live-USB.
chattr – мощный инструмент для управления дополнительными атрибутами файлов в Linux. Основные применения:
  • Защита критических файлов (+i)
  • Обеспечение журналирования (+a)
  • Оптимизация производительности (+A, +e)
Перед использованием проверяйте поддержку атрибутов в вашей файловой системе (man chattr).
Последний раз редактировалось root 12 авг 2026 22:58, всего редактировалось 1 раз.
Ответить