ioctl_iflags

IOCTL_IFLAGS(2) Ð ÑководÑÑво пÑогÑаммиÑÑа Linux IOCTL_IFLAGS(2)



ÐÐЯ
       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.

СÐÐТРÐТРТÐÐÐÐ
       chattr(1), lsattr(1), mount(2), btrfs(5), ext4(5), xfs(5), xattr(7),
       mount(8)



Linux                             2017-09-15                   IOCTL_IFLAGS(2)