Команды Linux · 4 min read · Sep 15, 2025
Учебник по команде chattr в Linux для начинающих (5 примеров)

Команда chattr в Linux — это утилита, которая позволяет пользователям изменять атрибуты файлов в файловой системе. Эта команда предоставляет расширенный контроль над файлами, устанавливая атрибуты, которые могут изменять поведение файлов способами, недоступными через обычные разрешения. Например, с помощью chattr можно сделать файл неизменяемым с атрибутом “+i”, предотвращая его изменение, удаление или переименование, даже пользователем root. Другие атрибуты включают “+a”, который разрешает открытие файла только в режиме добавления, и “+u”, который гарантирует, что содержимое файла сохраняется для восстановления. Эти атрибуты могут быть особенно полезны для защиты критически важных системных файлов, предотвращения случайных удалений и более детального управления файлами. Команда должна выполняться с привилегиями суперпользователя и обычно используется системными администраторами для повышения безопасности и целостности важных файлов в файловой системе Linux.
Часто компьютер с Linux используется разными пользователями, поэтому возможно, что эти пользователи получают доступ к общей группе файлов. Это открывает двери для проблем, таких как случайное удаление или редактирование важных файлов, чего вы, как администратор, определенно не хотите.
В этом учебнике мы объясним этот инструмент с помощью простых примеров. Но прежде чем мы это сделаем, следует упомянуть, что все примеры здесь были протестированы на Ubuntu 24.04 LTS и Debian 12.
Команда chattr в Linux
Команда chattr используется для изменения атрибутов файлов в файловой системе Linux. Вот её синтаксис:
chattr [ -RVf ] [ -v version ] [ mode ] files...А вот что говорит страница man об этом:
chattr изменяет атрибуты файлов в файловой системе Linux.
Формат символического режима: +-=[aAcCdDeijsStTu].
Оператор '+' добавляет выбранные атрибуты к существующим атрибутам файлов; '-' удаляет их; а '=' делает их единственными атрибутами, которые имеют файлы.
Буквы 'aAcCdDeijsStTu' выбирают новые атрибуты для файлов: только добавление (a), без обновлений atime (A), сжатие (c), без копирования при записи (C), без дампа (d), синхронные обновления каталогов (D), формат расширений (e), неизменяемый (i), журналирование данных (j), безопасное удаление (s), синхронные обновления (S), без объединения хвостов (t), верхняя часть иерархии каталогов (T) и не подлежащий удалению (u).
Следующие атрибуты являются только для чтения и могут быть перечислены с помощью lsattr(1), но не могут быть изменены с помощью chattr: ошибка сжатия (E), большой файл (h), индексированный каталог (I), встроенные данные (N), сырой доступ к сжатию (X) и сжатый грязный файл (Z).
Не все флаги поддерживаются или используются всеми файловыми системами; обратитесь к страницам man, специфичным для файловой системы, таким как btrfs(5), ext4(5) и xfs(5), для получения более подробной информации о конкретной файловой системе.Ниже приведены некоторые примеры в формате вопросов и ответов, которые должны дать вам хорошее представление о том, как работает команда chattr.
Вопрос 1. Как использовать команду chattr?
Предположим, вы хотите сделать файл только для чтения. Для этого выполните команду chattr с опцией +i и именем файла в качестве входных данных.
Например:
chattr +i test.txtСледующий скриншот показывает, что никакая другая операция не была успешной с файлом, как только он стал только для чтения с помощью chattr.

Примечание: Как вы уже могли заметить, вам нужны привилегии root для использования команды chattr.
Вопрос 2. Как удалить ограничение только для чтения, наложенное chattr?
Это просто — все, что вам нужно сделать, это использовать опцию -i вместо +i. Например:
chattr -i test.txtТаким образом, вы можете видеть, что фактор только для чтения был удален с помощью опции -i.
Вопрос 3. Как предоставить разрешение только на добавление для файла?
Иногда вы можете не хотеть полного ограничения на файл. Что я имею в виду, так это то, что вы можете захотеть предоставить пользователям доступ только для добавления к файлу, чтобы новая информация могла быть добавлена, но существующая информация не могла быть удалена или отредактирована. Это также возможно с помощью Chattr через опцию +a.
chattr +a test.txtТаким образом, вы можете видеть, что мы могли добавлять к файлу, но не могли редактировать существующую информацию или удалять файл. Чтобы изменить это поведение, используйте опцию -a.
chattr -a test.txtВопрос 4. Как применить ограничение с помощью chattr ко всем файлам в каталоге?
Это можно сделать с помощью флага -R, который позволяет рекурсивно изменять атрибуты каталогов и их содержимого. Например, если вы хотите сделать все файлы внутри каталога test-dir только для чтения, используйте команду chattr следующим образом:
chattr -R +i ./test-dir/Следующий скриншот показывает, что ограничение только для чтения было успешно применено ко всем файлам внутри каталога.
Вопрос 5. Как проверить атрибуты chattr, примененные к файлам?
Чтобы проверить, был ли успешно применен атрибут chattr, мы пытались выполнять операции, такие как редактирование файла или его удаление. Но отдельная команда позволяет вам легко увидеть, были ли атрибуты применены или нет. Команда, о которой идет речь, — это lsattr.
lsattr [FILENAME]Например, следующий скриншот показывает вывод lsattr, явно указывающий, что атрибут ‘i’ был применен ко всем файлам в каталоге.
Просто для подтверждения, вот вывод после использования опции -i.
Как вы можете видеть на скриншоте выше, атрибут только для чтения был удален со всех файлов.
Заключение
Вы, вероятно, согласитесь, что chattr — это команда, которую необходимо знать, если вы системный администратор или управляете пользователями на компьютере с Linux в общем. Эффективное использование команды может сэкономить вам много хлопот. Эта статья должна быть достаточной, чтобы помочь вам начать работу с командой. Как только вы попрактикуетесь с примерами, которые мы обсудили здесь, перейдите на страницу man инструмента, чтобы узнать больше о нем.
Get new posts in your inbox
No spam. Unsubscribe anytime.