В 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.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.