Команда chattr в Linux

Команда chattr расширяет возможности другой всем известной команды chmod. Если chmod устанавливает права на чтение, запись и исполнение, то chattr устанавливает дополнительные интересные и полезные свойства: запрет на модификацию файла (даже суперпользователем), включает автоматическую компрессию для хранения произвольно выбранного файла, позволяет безопасно удалять файлы без возможности восстановления и т.д. Польза от chattr так велика, что можно смело утверждать: пользователь Linux, который не знает и не пользуется chattr — не линуксоид.

chattr

Как пользоваться командой chattr (смена атрибутов файла)

Как можно догадаться, chattr — это сокращение от change attributes (изменить атрибуты). Атрибуты бывают следующими:

a (append). Файл, помеченный этим атрибутом, можно дописывать, но нельзя изменять или удалять. Идеально подходит для защиты критически важных log-файлов.

c (compress). Файл автоматически сжимается при записи на диск. Полезно для архивных файлов.

i (immutable). Файл с этим атрибутом невозможно модифицировать или удалить. Даже суперпользователю. Полезен для защиты от случайного удаления критически важных файлов.

s (security). Файл с этим атрибутом удаляется безопасным образом. То есть, все содержимое файла сначала будет заменено на нули и лишь потом файл удаляется. Данная процедура делает невозможным (сильно усложняет) восстановление файла.

Установить или снять атрибут легко: достаточно указать требуемый атрибут и имя файла. Знак плюса перед атрибутом устанавливает, а знак минуса снимает атрибут. Пример:

chattr +i /etc/passwd

Устанавливает атрибут i (immutable) на файл /etc/passwd. Другими словами, запрещает изменение и удаление файла /etc/passwd.


chattr -a /var/log/nginx/access.log

Снимает атрибут a (append) с файла /var/log/nginx/access.log.

Просмотреть список установленных атрибутов можно командой lsattr (list attributes).

field_vote: 
Ваша оценка: Нет Средняя: 5 (4 оценки)
Главная тема: 
Дистрибутивы: 
Программное обеспечение: 

Комментарии

Никогда не пользовался, как то нужды не было. Но команда заслуживает безусловного внимания.
Но вот интересно: те же лог файлы компресяца дабы не разрастаться, это вероятно может спровоцировать нехорошие последствия (не тестил).
Было бы хорошо чтоб кто то отписался — как с атрибутам "chattr -a" в /var/log/ ведут себя лог файлы основные, так как бекапятся старые в .gz, .log.old и т.п. дабы не разрастаться?

..лог файл который нельзя изменить хорошо, только пока он не перерос за 10-20Мб:)

Оценка: 
Пока без оценки
comrade аватар

Видимо
chattr +i /ваш/файл
даёт ещё одно решение задачи
Как в Debian и Ubuntu помешать заменять файл при обновлении пакета

Правда оно подходит только для файлов, которые не должны изменяться не только при обновлениях, но и "в мирной жизни" :-)

Оценка: 
Пока без оценки

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

Оценка: 
Пока без оценки

Ну вот, я не линуксоид :-( Ни разу не использовал эту программу. Хотя, естественно, о её существовании знаю.

Оценка: 
Пока без оценки

Я так понял chattr +s как альтернатива shred -uz?

Оценка: 
Средняя: 4 (1 оценка)

melcomtec, пользуешься chattr?

Не могу сказать, что активно пользуюсь.

Оценка: 
Пока без оценки

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.