Команда Chattr в Linux (атрибуты файлов)

В Linux атрибуты файла — это свойства метаданных, которые описывают поведение файла. Например, атрибут может указывать, сжат ли файл, или указывать, можно ли удалить файл.

Некоторые атрибуты, такие как неизменяемость, могут быть установлены или очищены, в то время как другие, такие как шифрование, доступны только для чтения и могут быть только просмотрены. Поддержка определенных атрибутов зависит от используемой файловой системы.

В этой статье объясняется, как использовать команду chattr для изменения атрибутов файлов в файловых системах Linux.

chattr Синтаксис

Команда chattr имеет следующую общую форму:

chattr [OPTIONS] [OPERATOR][ATTRIBUTES] FILE...

Значение части [OPERATOR] может быть одним из следующих символов:

  • + — Оператор «плюс» сообщает chattr о необходимости добавления указанных атрибутов к существующим.
  • - — Оператор минус указывает chattr удалить указанные атрибуты из существующих.
  • = — Оператор равенства сообщает chattr о необходимости установить указанные атрибуты как единственные.

За оператором следует один или несколько флагов [ATTRIBUTES] которые вы хотите добавить или удалить из атрибутов файла. Ниже приведен список нескольких общих атрибутов и связанных флагов:

  • a — если этот атрибут установлен, файл можно открыть только в режиме добавления для записи.
  • A — Когда файл с этим установленным атрибутом открыт, его временная запись не изменяется. atime (время доступа) — это время последнего доступа / открытия файла какой-либо командой или приложением.
  • e — этот атрибут означает, что файл использует экстенты для сопоставления блоков на диске. Атрибут e нельзя изменить с помощью chattr .
  • i — этот атрибут указывает, что файл неизменяемый, что означает, что файл нельзя удалить или переименовать.

Чтобы получить полный список всех атрибутов и флагов файлов, введите в терминале man chattr .

По умолчанию атрибуты файла не сохраняются при копировании файла с помощью таких команд, как cp или rsync .

chattr Пример

Одно из распространенных применений chattr — установка флага неизменяемости для файла или каталога, чтобы пользователи не могли удалить или переименовать файл.

Вы можете просмотреть атрибуты файла с помощью команды lsattr :

lsattr todo.txt

Вывод ниже показывает, что установлен только флаг e :

--------------e----- todo.txt

Чтобы сделать файл неизменяемым, добавьте флаг i с оператором + к существующим атрибутам:

sudo chattr +i todo.txt

Мы используем sudo, потому что только root может изменить неизменяемый флаг.

Подтвердите, что атрибут добавлен:

lsattr todo.txt
----i---------e----- todo.txt

Чтобы отменить изменения и удалить неизменяемый флаг, используйте оператор - :

sudo chattr +i todo.txt

С помощью chattr вы можете добавлять или удалять сразу несколько атрибутов. Например, чтобы сделать файл неизменяемым и указать ядру не отслеживать время последнего доступа, вы должны использовать:

sudo chattr +iA todo.txt

Последний оператор, который вы можете использовать, — это оператор = . Например, чтобы установить атрибут e как единственный атрибут, вы должны запустить:

sudo chattr "=e" todo.txt

Обратите внимание, что оператор и флаг заключены в кавычки, чтобы избежать интерпретации оболочки символа + .

Выводы

chattr — это инструмент командной строки для изменения атрибутов файлов в файловой системе Linux.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Оставьте комментарий