Где технически хранятся данные ACL?

Где технически хранятся данные ACL?

Я изучаю ACL и не понимаю, где технически находится эта информация. Это просто технически метаданные из inodes?

решение1

Точные детали могут зависеть от файловой системы, но концептуально, да, списки ACL представляют собой метаданные, хранящиеся в инодах файлов, как и традиционные разрешения, даты и т. д.

Поскольку размер ACL может варьироваться, они могут храниться в отдельных блоках. Однако детали имеют значение только если вы проектируете файловую систему или программируете драйвер файловой системы.

решение2

Для Ext4:

https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Extended_Attributes

«Расширенные атрибуты (xattrs) обычно хранятся в отдельном блоке данных на диске и на них ссылаются из inode через inode.i_file_acl*».

решение3

Взгляните наРасширенные атрибутыраздел этой статьи под названием:Списки контроля доступа POSIX в Linux.

выдержка

ACL — это фрагменты информации переменной длины, которые связаны с объектами файловой системы. Могут быть разработаны специальные стратегии для хранения ACL в файловых системах, как это делает Solaris в файловой системе UFS [13]. Каждый inode в файловой системе UFS имеет поле i_shadow. Если inode имеет ACL, это поле указывает на теневой inode. В файловой системе теневые inode используются как обычные файлы. Каждый теневой inode хранит ACL в своих блоках данных. Несколько файлов с одним и тем же ACL могут указывать на один и тот же теневой inode.

Поскольку другие расширения ядра и пространства пользователя в дополнение к ACL выигрывают от возможности связывать фрагменты информации с файлами, Linux и большинство других UNIX-подобных операционных систем реализуют более общий механизм, называемый Extended Attributes (EAs). В этих системах ACL реализованы как EAs.

ПослеРасширенные атрибутыВ этом разделе рассматриваются особенности реализации EA в различных файловых системах, ext2/ext3, JFS и т. д.

Связанный контент