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