Организация UNIX-систем и ОС Solaris

Теневые индексные дескрипторы


Теневые индексные дескрипторы (shadow i-nodes) содержат информацию, позволяющую получать доступ к расширенным правам доступа (ACL) файла или каталога. Этот тип файловых дескрипторов существует в реализации файловой системы UFS в Solaris, начиная с версии 2.5.1. Solaris 9 поддерживает теневые индексные дескрипторы для файловых систем UFS (Unix File System), NFS (Network File System версий 2 и 3), CacheFS (Cache File System). Расширенные права доступа могут быть назначены в отношении каталогов, обычных файлов, символических ссылок и именованных каналов (FIFO).

Если файлу назначены расширенные права доступа (например, с помощью команды setfacl), то будет создан теневой индексный дескриптор для этого файла и в обычный индексный дескриптор этого файла будет записана ссылка на теневой индексный дескриптор. Теневой индексный дескриптор не имеет специального формата, он представляет собой точно такой же индексный дескриптор, как и обычный, но с указанием в поле типа дескриптора на то, что он - теневой.

Расширенные права доступа хранятся в специальном файле, который создается в момент назначения таких прав. Теневой дескриптор указывает на этот специальный файл. В Solaris разрешено создавать не более 1024 записей в таком файле - следовательно, расширенные права доступа могут содержать не более 1024 специфических определений прав. Этого с избытком хватает для установки каких угодно специфических прав доступа. Каждая запись ACL занимает 12 байт, поэтому обычно эти записи не требуют много места на диске. Однако при назначении специфических прав доступа большому числу объектов в файловой системе следует помнить о том, что для этого требуется дополнительный объем дисковой памяти.

Для назначения и просмотра расширенных прав доступа используются команды setfacl и getfacl, о которых более подробно рассказывается в лекции 6.



Содержание раздела