
В Linux атрибуты файла — это метаданные, описывающие поведение файла. Например, атрибут может указывать, сжат ли файл или можно ли его удалить.
Некоторые атрибуты, такие как неизменность, можно устанавливать и снимать, в то время как другие, такие как шифрование, доступны только для чтения и просмотра. Поддержка некоторых атрибутов зависит от используемой файловой системы.
В этой статье объясняется, как использовать команду chattr для изменения атрибутов файла в файловых системах Linux.
Синтаксис chattr
Команда chattr имеет следующий общий вид:
chattr [ OPTIONS ] [ OPERATOR ][ ATTRIBUTES ] FILE...
Значением части [OPERATOR] может быть один из следующих символов:
-
+— Оператор «плюс» сообщаетchattrо необходимости добавить указанные атрибуты к существующим. -
-— Оператор «минус» сообщаетchattrо необходимости удалить указанные атрибуты из существующих. -
=— Оператор равенства указываетchattrустановить указанные атрибуты как единственные атрибуты.
За оператором следуют один или несколько флагов [ATTRIBUTES] , которые вы хотите добавить или удалить из атрибутов файла. Ниже приведён список некоторых распространённых атрибутов и связанных с ними флагов:
-
a— Если этот атрибут установлен, файл может быть открыт только в режиме добавления для записи. -
A— Когда файл с этим набором атрибутов открыт, его запись atime не изменяется. 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.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства