Provided by: manpages-ru-dev_4.17.0-2_all bug

ИМЯ

       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⟩.