Дополнительные атрибуты файлов
В UNIX-системах, кроме стандартных прав доступа, существуют также дополнительные или специальные атрибуты файлов, которые поддерживает файловая система.
Список поддерживаемых атрибутов определяется самой файловой системой
С помощью утилиты chattr можно управлять атрибутами
Установить атрибут i на файл
chattr +i file.txt
Посмотреть текущие атрибуты можно командой lsattr
lsattr file.txt
----i---------- file.txt
Перечень атрибутов:
- A - (no atime updates) не изменять время последнего обращения, что может благоприятно повлиять на производительность файловой системы, если обращение происходит очень часто
- a - (append only) в файл можно только дописывать, но нельзя удалять/переименовывать (удобно для логов). Если установлено на каталог, то находящиеся там файлы удалять нельзя, но можно создавать новые и модифицировать существующие
- c - (compressed) производится прозрачное сжатие на диске информации файла ядром, а при доступе возвращаются несжатые данные
- D - (synchronous directory updates) при модификации директории изменения синхронно записываются на диск
- d - (no dump) игнорировать при создании резервной копии программой dump
- i - (immutable) пожалуй самый используемый и полезный бит, который запрещает любые изменения файла (нельзя удалять, переименовывать и модифицировать файл). Для директории данный флаг позволяет модифицировать в ней файлы, но нельзя удалять или создавать новые
- j - (data journalling) если файловая система смонтирована с параметрами «data=ordered» или «data=writeback», данные файла с этим атрибутом сохраняются сначала в журнал файловой системы, и только потом в файл. При монтировании с параметром «data=journal» данные и так сохраняются сначала в журнал, поэтому атрибут не действует. Этот атрибут может снять и установить только root
- s - (secure deletion) полное удаление файла (место на диске, где он находился, после заполняется нулями)
- S - (synchronous updates) прямая запись на диск, без кэширования (обновления в файла происходит на диске синхронно с приложением, изменяющим данный файл)
- u - (undeletable) при удалении файла с таким атрибутом, его содержимое сохраняется, что позволяет успешно использовать инструменты для восстановления удаленных файлов
- T - каталог с таким атрибутом считается расположенным на вершине иерархии директорий с целью использования метода распределения блоков по Orlov
- t - к файлу с таким атрибутом нельзя присоединить в конец другой файл (tail-merging). На момент написания ext2 и ext3 не поддерживали (не считая очень экспериментальных патчей) tail-merging
- E - показывает, что при сжатии файла были ошибки. Нельзя установить/снять с помощью chattr, можно лишь посмотреть командой lsattr.
- e - показывает, что файл использует дополнения для размещения блоков на диске. Нельзя установить/снять с помощью chattr, можно лишь посмотреть командой lsattr
- I - показывает, что каталог был проиндексирован при использовании htree. Нельзя установить/снять с помощью chattr, можно лишь посмотреть командой lsattr
- H - показывает, что файл хранит свои блоки в единицах файловой системы, а не в единицах секторов, это означает, что файл имеет размер более 2TB (или когда-то занимал). Нельзя установить/снять с помощью chattr, можно лишь посмотреть командой lsattr
- X - показывает, что к сжатому файлу можно получить прямой непосредственный доступ. Нельзя установить/снять с помощью chattr, можно лишь посмотреть командой lsattr
- Z - показывает, что сжатый файл is dirty (?). Нельзя установить/снять с помощью chattr, можно лишь посмотреть командой lsattr
Обсуждение