Руководство по администрированию файловых систем ZFS Solaris

Свойство zoned

При добавлении набора данных в неглобальную зону этот набор данных должен быть специально отмечен, для того чтобы определенные свойства не интерпретировались в контексте глобальной зоны. После добавления набора данных в неглобальную зону под контролем администратора зоны его содержимое больше не считается надежным. Как и в любой файловой системе, в наборе данных могут присутствовать двоичные коды "setuid", символьные ссылки или другое сомнительное содержимое, которое может негативно повлиять на безопасность глобальной зоны. Кроме того, свойство mountpoint не может интерпретироваться в контексте глобальной зоны. В противном случае действия администратора зоны могут повлиять на пространство имен глобальной зоны. Для решения этой проблемы в ZFS используется свойство zoned. Оно указывает, что набор данных делегирован в неглобальную зону в определенный момент времени.

Свойство zoned представляет собой логическое значение, автоматически устанавливаемую при первой загрузке зоны, содержащей набор данных ZFS. Администратору зоны не требуется устанавливать это свойство вручную. При установленном свойстве zoned набор данных невозможно смонтировать или совместно использовать в глобальной зоне, и при выполнении команды zfs share-a или zfs mount-a он игнорируется. В следующем примере набор данных tank/zone/zion добавляется в зону, а tank/zone/global – нет:


# zfs list -o name,zoned,mountpoint -r tank/zone
NAME                  ZONED  MOUNTPOINT
tank/zone/global        off  /tank/zone/global
tank/zone/zion           on  /tank/zone/zion
# zfs mount
tank/zone/global           /tank/zone/global
tank/zone/zion             /export/zone/zion/root/tank/zone/zion

Обратите внимание на различие между свойством mountpointи каталогом, в котором в настоящее время смонтирован набор данных tank/zone/zion. Свойство mountpoint отражает свойство в том виде, как оно сохранено на диске, а не место, где набор данных смонтирован в системе в данный момент.

При удалении набора данных из зоны или уничтожении зоны свойство zoned не сбрасывается автоматически. Это поведение является следствием характерной угрозы безопасности, присущей данным задачам. Поскольку ненадежный пользователь имел полный доступ к набору данных и его дочерним элементам, то для свойства mountpoint могли быть заданы неверные значения или в файловых системах могли возникнуть двоичные коды setuid.

Для предотвращения случайного возникновения угроз безопасности глобальный администратор должен вручную сбросить значение свойства zoned (при необходимости повторного использования набора данных). Перед установкой для свойства zoned значения off убедитесь в том, что свойство mountpoint для набора данных и всех дочерних элементов имеет приемлемые значения, и двоичные коды setuid отсутствуют (или деактивируйте свойство setuid).

После проверки угроз безопасности свойство zoned можно отключить с помощью команд zfs set или zfs inherit. В случае отключения свойства zoned при использовании набора данных в пределах зоны поведение системы может быть непредсказуемым. Это свойство следует изменять только в том случае, если набор данных больше не используется неглобальной зоной.