Команда chattr в Linux

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

Команда chattr доступна только счастливым обладателям файловых систем семейства Ext
Ваша оценка: Нет Средняя оценка: 5 (4 votes)
freecold

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

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

Ваша оценка: Нет
comrade

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

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

Ваша оценка: Нет
pomodor

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

Ваша оценка: Нет

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

Ваша оценка: Нет

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

Ваша оценка: Нет Средняя оценка: 4 (1 vote)
melcomtec

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

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

Ваша оценка: Нет
Отправить комментарий
КАПЧА
Вы человек? Подсказка: зарегистрируйтесь, чтобы этот вопрос больше никогда не возникал. Кстати, анонимные ссылки запрещены.
CAPTCHA на основе изображений
Enter the characters shown in the image.