Темы
Введение
Атрибуты 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 | Не обновлять время доступа при чтении. |
Примеры:
- Защитить все файлы каталога:
- Код: выделить все
sudo chattr -R +i /etc/network/
- Разрешить только добавление в лог:
- Код: выделить все
sudo chattr +a /var/log/secure
- Проверить результат:
- Код: выделить все
lsattr /var/log/secure
Советы:
- [] Работает только с файловыми системами ext2/3/4.
- Код: выделить все
rsync -aAXv source/ dest/- 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
- 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:
- Код: выделить все
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)
