Linux repositories inspector

ioctl_iflags(2) - Russkiy

Linux
2017-09-15

man-pages-ru

Russian man pages from the Linux Documentation Project

manpages-dev

Manual pages about using GNU/Linux for development

man-pages

Linux kernel and C library user-space interface documentation

ИМЯ

ioctl_iflags - операции ioctl() для флагов иноды

ОПИСАНИЕ

Различные файловые системы Linux поддерживают флаги иноды — атрибуты, которые изменяют смысл файлов и каталогов. Эти флаги можно запросить и изменить с помощью двух операций ioctl(2):
int attr; fd = open("pathname", ...);
ioctl(fd, FS_IOC_GETFLAGS, &attr); /* помещает текущие флаги
в \(aqattr\(aq */ attr |= FS_NOATIME_FL; /* изменяет полученную битовую маску */ ioctl(fd, FS_IOC_SETFLAGS, &attr); /* обновляет флаги иноды,
на которую указывает \(aqfd\(aq */
Команды оболочки lsattr(1) и chattr(1) предоставляют интерфейс к этим двум операциям, позволяя пользователю просматривать и изменять флаги иноды, связанной с файлом.
Поддерживаются следующие флаги (показаны вместе с соответствующей буквой, которой обозначается флаг в lsattr(1) и chattr(1)):
FS_APPEND_FL \(aqa\(aq
Файл можно открыть только с флагом O_APPEND (это ограничение не обойти даже суперпользователю). Только привилегированный процесс (CAP_LINUX_IMMUTABLE) может установить или сбросить этот атрибут.
FS_COMPR_FL \(aqc\(aq
Хранить файл на диске в сжатом виде. Этот флаг не поддерживается реализациями большинства основных файловых систем; исключением является btrfs(5).
FS_DIRSYNC_FL \(aqD\(aq (начиная с Linux 2.6.0)
Синхронно записывать изменения каталога на диск. Этот флаг предоставляет эквивалент параметра MS_DIRSYNC вызова mount(2), но для каталога. Этот флаг применим только для каталогов.
FS_IMMUTABLE_FL \(aqi\(aq
Файл постоянный (immutable): не допускает изменение содержимого и метаданных (прав, меток времени, владельцев, счётчика ссылок и т. п.) (это ограничение не обойти даже суперпользователю). Только привилегированный процесс (CAP_LINUX_IMMUTABLE) может установить или сбросить этот атрибут.
FS_JOURNAL_DATA_FL \(aqj\(aq
Включение журналирования данных файла в файловых системах ext3(5) и ext4(5). В файловой системе с журналиванием в режиме ordered или writeback привилегированный (CAP_SYS_RESOURCE) процесс может установить этот флаг для включения журналирования изменения данных пофайлово.
FS_NOATIME_FL \(aqA\(aq
Не изменять время последнего доступа к файлу при доступе. Это может увеличить произвольность ввода-вывода в приложениях, которым не нужна точность этой метки времени. Данный флаг предоставляет функциональность флага MS_NOATIME вызова mount(2), но пофайлово.
FS_NOCOW_FL \(aqC\(aq (начиная с Linux 2.6.39)
Файл не будет подвергаться обновлениям копирования-при-записи. Этот флаг работает только в файловых системах с поддержкой копирования-при-записи, таких как Btrfs. Смотрите chattr(1) и btrfs(5).
FS_NODUMP_FL \(aqd\(aq
Не включать этот файл в резервную копию, создаваемую dump(8).
FS_NOTAIL_FL \(aqt\(aq
Этот флаг поддерживается только в Reiserfs. Он отключает свойство Reiserfs упаковки хвостов, которая пытается упаковывать маленькие файлы (и конечные фрагменты больших файлов) в в дисковые блоки метаданных файла.
FS_PROJINHERIT_FL \(aqP\(aq (начиная с Linux 4.5)
Наследовать ID квоты проекта. Файлы и подкаталоги будут наследовать ID проекта каталога. Этот флаг можно применять только для каталогов.
FS_SECRM_FL \(aqs\(aq
Помечать файл для безопасного удаления. Это свойство не реализовано во всех файловых системах, так как задача безопасного стирания файла с хранящего носителя на удивление сложна.
FS_SYNC_FL \(aqS\(aq
Выполнять обновления файла синхронно. Для файлов, это приводит к выполнению синхронной записи (как если бы все файлы открывались с флагом O_SYNC). Для каталогов, это приводит к тому эффекту что и флаг FS_DIRSYNC_FL.
FS_TOPDIR_FL \(aqT\(aq
Пометить каталог для специальной обработки по стратегии выделения блоков Орлова. Подробности смотрите в chattr(1). Этот флаг можно применять только к каталогам и он действует только в ext2, ext3 и ext4.
FS_UNRM_FL \(aqu\(aq
Разрешить файлу быть не удалённым, если он удалён. Это свойство реализовано во всех файловых системах, так как возможно реализовать механизм восстановления файла вне ядра.
В большинстве случаев, когда какой-либо из флагов установлен на каталоге, этот флаг наследуется файлами и подкаталогами, созданными внутри каталога. Исключением является FS_TOPDIR_FL, который не наследуется и FS_DIRSYNC_FL, который наследуется только подкаталогами.

СООТВЕТСТВИЕ СТАНДАРТАМ

Флаги иноды являются нестандартным расширением Linux.

ЗАМЕЧАНИЯ

Для изменения флагов иноды файла используется операция FS_IOC_SETFLAGS; эффективный идентификатор пользователя вызывающего должен совпадать с владельцем файла или вызывающий должен иметь мандат CAP_FOWNER.
⇧ Top