Provided by: manpages-ru-dev_4.17.0-2_all
ИМЯ
ioctl_iflags - операции ioctl() для флагов иноды
ОПИСАНИЕ
Различные файловые системы Linux поддерживают флаги иноды — атрибуты, которые изменяют смысл файлов и каталогов. Эти флаги можно запросить и изменить с помощью двух операций ioctl(2): int attr; fd = open("pathname", ...); ioctl(fd, FS_IOC_GETFLAGS, &attr); /* помещает текущие флаги в 'attr' */ attr |= FS_NOATIME_FL; /* изменяет полученную битовую маску */ ioctl(fd, FS_IOC_SETFLAGS, &attr); /* обновляет флаги иноды, на которую указывает 'fd' */ Команды оболочки lsattr(1) и chattr(1) предоставляют интерфейс к этим двум операциям, позволяя пользователю просматривать и изменять флаги иноды, связанной с файлом. Поддерживаются следующие флаги (показаны вместе с соответствующей буквой, которой обозначается флаг в lsattr(1) и chattr(1)): FS_APPEND_FL 'a' Файл можно открыть только с флагом O_APPEND (это ограничение не обойти даже суперпользователю). Только привилегированный процесс (CAP_LINUX_IMMUTABLE) может установить или сбросить этот атрибут. FS_COMPR_FL 'c' Хранить файл на диске в сжатом виде. Этот флаг не поддерживается реализациями большинства основных файловых систем; исключением является btrfs(5). FS_DIRSYNC_FL 'D' (начиная с Linux 2.6.0) Синхронно записывать изменения каталога на диск. Этот флаг предоставляет эквивалент параметра MS_DIRSYNC вызова mount(2), но для каталога. Этот флаг применим только для каталогов. FS_IMMUTABLE_FL 'i' Файл постоянный (immutable): не допускает изменение содержимого и метаданных (прав, меток времени, владельцев, счётчика ссылок и т. п.) (это ограничение не обойти даже суперпользователю). Только привилегированный процесс (CAP_LINUX_IMMUTABLE) может установить или сбросить этот атрибут. FS_JOURNAL_DATA_FL 'j' Включение журналирования данных файла в файловых системах ext3(5) и ext4(5). В файловой системе с журналиванием в режиме ordered или writeback привилегированный (CAP_SYS_RESOURCE) процесс может установить этот флаг для включения журналирования изменения данных пофайлово. FS_NOATIME_FL 'A' Не изменять время последнего доступа к файлу при доступе. Это может увеличить произвольность ввода-вывода в приложениях, которым не нужна точность этой метки времени. Данный флаг предоставляет функциональность флага MS_NOATIME вызова mount(2), но пофайлово. FS_NOCOW_FL 'C' (начиная с Linux 2.6.39) Файл не будет подвергаться обновлениям копирования-при-записи. Этот флаг работает только в файловых системах с поддержкой копирования-при-записи, таких как Btrfs. Смотрите chattr(1) и btrfs(5). FS_NODUMP_FL 'd' Не включать этот файл в резервную копию, создаваемую dump(8). FS_NOTAIL_FL 't' Этот флаг поддерживается только в Reiserfs. Он отключает свойство Reiserfs упаковки хвостов, которая пытается упаковывать маленькие файлы (и конечные фрагменты больших файлов) в в дисковые блоки метаданных файла. FS_PROJINHERIT_FL 'P' (начиная с Linux 4.5) Наследовать ID квоты проекта. Файлы и подкаталоги будут наследовать ID проекта каталога. Этот флаг можно применять только для каталогов. FS_SECRM_FL 's' Помечать файл для безопасного удаления. Это свойство не реализовано во всех файловых системах, так как задача безопасного стирания файла с хранящего носителя на удивление сложна. FS_SYNC_FL 'S' Выполнять обновления файла синхронно. Для файлов, это приводит к выполнению синхронной записи (как если бы все файлы открывались с флагом O_SYNC). Для каталогов, это приводит к тому эффекту что и флаг FS_DIRSYNC_FL. FS_TOPDIR_FL 'T' Пометить каталог для специальной обработки по стратегии выделения блоков Орлова. Подробности смотрите в chattr(1). Этот флаг можно применять только к каталогам и он действует только в ext2, ext3 и ext4. FS_UNRM_FL 'u' Разрешить файлу быть не удалённым, если он удалён. Это свойство реализовано во всех файловых системах, так как возможно реализовать механизм восстановления файла вне ядра. В большинстве случаев, когда какой-либо из флагов установлен на каталоге, этот флаг наследуется файлами и подкаталогами, созданными внутри каталога. Исключением является FS_TOPDIR_FL, который не наследуется и FS_DIRSYNC_FL, который наследуется только подкаталогами.
СТАНДАРТЫ
Флаги иноды являются нестандартным расширением Linux.
ЗАМЕЧАНИЯ
Для изменения флагов иноды файла используется операция FS_IOC_SETFLAGS; эффективный идентификатор пользователя вызывающего должен совпадать с владельцем файла или вызывающий должен иметь мандат CAP_FOWNER. The type of the argument given to the FS_IOC_GETFLAGS and FS_IOC_SETFLAGS operations is int *, notwithstanding the implication in the kernel source file include/uapi/linux/fs.h that the argument is long *.
СМ. ТАКЖЕ
chattr(1), lsattr(1), mount(2), btrfs(5), ext4(5), xfs(5), xattr(7), mount(8)
ПЕРЕВОД
Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com> Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.