Руководство по системному администрированию: контейнеры в Solaris - управление ресурсами и зонами

Файловые системы и неглобальные зоны

В этом разделе содержится информация по вопросам, связанным с файловыми системами в системе Solaris с установленными зонами. Каждой зоне соответствует ее собственный раздел иерархии файловых систем, имеющий корень в каталоге, называемом корнем (root) зоны. Процессы в зоне имеют доступ только к файлам в части иерархии, расположенной ниже корня зоны. В зоне допускается использование утилиты chroot, но только для ограничения процесса корневым путем внутри зоны. Для получения дополнительной информации о команде chroot см. chroot(1M).

Параметр -o nosuid

Параметр -o nosuid утилиты mount предоставляет следующие функциональные возможности:

Этот параметр зависит от конкретной файловой системы и доступна для всех файловых систем Solaris, которые могут монтироваться средствами mount, в соответствии с описанием на справочной странице mount(1M). В этом руководстве список таких файловых систем приводится в Монтирование файловых систем в зонах. Также дается описание возможностей монтирования. Для получения дополнительной информации о параметре -o nosuid см. "Accessing Network File Systems (Reference)" в руководстве System Administration Guide: Network Services.

Монтирование файловых систем в зонах

При монтировании файловых систем изнутри зоны применяется параметр nodevices. Например, если зоне предоставляется доступ к блочному устройству (/dev/dsk/c0t0d0s7 ) и к устройству без файловой системы (/dev/rdsk/c0t0d0s7), соответствующему файловой системе UFS, при монтировании изнутри зоны эта файловая система автоматически монтируется с параметром nodevices . Это правило не относится к монтируемым системам, указанным в конфигурации zonecfg.

В следующей таблице приводится описание параметров монтирования файловых систем в неглобальных зонах. Процедуры для этих вариантов монтирования приведены в Настройка, проверка и сохранение параметров зоны и Монтирование файловых систем в работающих неглобальных зонах.

В конфигурации также можно указать любой тип файловой системы, не перечисленный в таблице, если для него существует двоичная программа монтирования в каталоге /usr/lib/fstype/mount .

Файловая система 

Параметры монтирования в неглобальной зоне 

AutoFS 

Невозможно монтирование с помощью zonecfg, невозможно монтирование из глобальной зоны в неглобальную зону. Возможно монтирование изнутри зоны.

CacheFS 

Использование в неглобальной зоне невозможно. 

FDFS 

Возможно монтирование с помощью zonecfg, возможно монтирование вручную из глобальной зоны в неглобальную зону, возможно монтирование изнутри зоны.

HSFS 

Возможно монтирование с помощью zonecfg, возможно монтирование вручную из глобальной зоны в неглобальную зону, возможно монтирование изнутри зоны.

LOFS 

Возможно монтирование с помощью zonecfg, возможно монтирование вручную из глобальной зоны в неглобальную зону, возможно монтирование изнутри зоны.

MNTFS 

Невозможно монтирование с помощью zonecfg, невозможно монтирование из глобальной зоны в неглобальную зону. Возможно монтирование изнутри зоны.

NFS 

Невозможно монтирование с помощью zonecfg. Версии, в настоящее время поддерживаемые в зонах – V2, V3 и V4, – могут монтироваться изнутри зоны.

PCFS  

Возможно монтирование с помощью zonecfg, возможно монтирование вручную из глобальной зоны в неглобальную зону, возможно монтирование изнутри зоны.

PROCFS 

Невозможно монтирование с помощью zonecfg, невозможно монтирование из глобальной зоны в неглобальную зону. Возможно монтирование изнутри зоны.

TMPFS 

Возможно монтирование с помощью zonecfg, возможно монтирование вручную из глобальной зоны в неглобальную зону, возможно монтирование изнутри зоны.

UDFS 

Возможно монтирование с помощью zonecfg, возможно монтирование вручную из глобальной зоны в неглобальную зону, возможно монтирование изнутри зоны.

UFS 

Возможно монтирование с помощью zonecfg, возможно монтирование вручную из глобальной зоны в неглобальную зону, возможно монтирование изнутри зоны.

XMEMFS 

Возможно монтирование с помощью zonecfg, возможно монтирование вручную из глобальной зоны в неглобальную зону, возможно монтирование изнутри зоны.

Поддержка этой файловой системы будет исключена из системы Solaris в будущей версии. 

ZFS 

Возможно монтирование с помощью типов ресурсов zonecfg dataset и fs.

Для получения дополнительной информации см. Настройка зоны, Монтирование файловых систем в работающих неглобальных зонах и справочную страницу mount(1M).

Размонтирование файловых систем в зонах

Возможность демонтирования файловой системы зависит от пользователя, выполнившего начальное монтирование. Если файловая система указана как часть конфигурации зоны командой zonecfg, то эта смонтированная файловая система принадлежит глобальной зоне, и администратор неглобальной зоны не может ее размонтировать. Если файловая система смонтирована изнутри неглобальной зоны, например путем определения точки монтирования в файле зоны /etc/vfstab, администратор неглобальной зоны может размонтировать такую файловую систему.

Ограничения по безопасности и поведение файловой системы

На монтирование некоторых файловых систем изнутри зоны налагаются ограничения по безопасности. Другие файловые системы при монтировании в зоне следуют особой модели поведения. Ниже приводится список измененных файловых систем.

AutoFS

Autofs – клиентская служба, автоматически монтирующая соответствующую файловую систему. Когда клиент предпринимает попытку доступа к файловой системе, которая в текущий момент не смонтирована, вызов перехватывается файловой системой AutoFS, и для монтирования запрашиваемого каталога вызывается automountd. Файловые системы AutoFS, смонтированные внутри зоны, являются локальными по отношению к этой зоне. Доступ к смонтированной файловой системе из других зон, включая глобальную, невозможен. При остановке или перезагрузке файловые системы демонтируются. Для получения дополнительной информации об AutoFS см. раздел How Autofs Works в System Administration Guide: Network Services.

В каждой зоне выполняется собственная копия automountd. Управление автоматическим сопоставлением и тайм-аутами осуществляется администратором зоны. Запуск монтирования в другой зоне путем перекрестного использования точки монтирования AutoFS для неглобальной зоны из глобальной зоны невозможен.

При инициировании другой точки монтирования в ядре создается ряд смонтированных файловых систем AutoFS. Подобные точки монтирования невозможно удалить посредством обычного интерфейса umount, поскольку они монтируются или демонтируются группой. Следует отметить, что эти функциональные возможности предоставляются для завершения работы зоны.

MNTFS

MNTFS – виртуальная файловая система, обеспечивающая доступ "только для чтения" к таблице смонтированных файловых систем для локальной системы. Набор файловых систем, выводимых при вызове mnttab изнутри неглобальной зоны, – это набор установленных в зоне файловых систем плюс запись для корня (/) . Для точек монтирования со специальным устройством, которое не доступно изнутри зоны, например /dev/rdsk/c0t0d0s0, устанавливается специальное устройство, идентичное точке монтирования. Все смонтированные файловые системы отображаются в таблице /etc/mnttab глобальной зоны. Для получения дополнительной информации о MNTFS см. раздел Глава 18, Mounting and Unmounting File Systems (Tasks), в System Administration Guide: Devices and File Systems.

NFS

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

В соответствии с описанием на справочной странице mount_nfs(1M), сервер NFS не должен предпринимать попытку монтирования собственных файловых систем. Таким образом, в зоне не должна монтироваться файловая система NFS, экспортированная глобальной зоной. Зоны не могут быть серверами NFS. Изнутри зоны смонтированные файловые системы NFS ведут себя так, как будто они смонтированы с параметром nodevices.

Выходные данные команды nfsstat относятся только к той зоне, в которой выполняется эта команда. Например, если команда выполняется в глобальной зоне, выводится информация только о глобальной зоне. Для получения дополнительной информации о команде nfsstat см. nfsstat(1M).

Если какие-либо файлы, открываемые командой zlogin, либо какая-то часть ее адресного пространства находятся в NFS, команда завершается неуспешно. Для получения дополнительной информации см. Команда zlogin.

PROCFS

Файловая система /proc, или PROCFS, накладывает ограничения по видимости процессов и доступу к ним, а также предоставляет информацию о связи процессов с зонами. В /proc видны только процессы в той же самой зоне.

Процессы в глобальной зоне могут наблюдать за процессами и другими объектами в неглобальных зонах. В результате наблюдение за такими процессами может проводиться по всей системе.

Изнутри зоны смонтированные файловые системы procfs ведут себя так, как если бы они были смонтированы с параметром nodevices. Для получения дополнительной информации о procfs см. справочную страницу proc(4).

LOFS

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

UFS, UDFS, PCFS и другие файловые системы на основе хранилища

При настройке командой zonecfg файловых систем на основе хранилища, имеющих двоичный файл fsck, например UFS, администратор зоны должен указать параметр raw. Этот параметр указывает устройство без файловой системы (символьное устройство), например /dev/rdsk/c0t0d0s7 . В ходе работы команды zoneadmd перед установкой файловой системы на устройстве для него автоматически выполняется команда fsck в неинтерактивном режиме только для проверки (fsck -m). Если команда fsck завершается неуспешно, перевод зоны в состояние готовности командой zoneadmd невозможен. Путь, указанный параметром raw, не может быть относительным.

Было бы ошибкой указать для fsck устройство файловой системы, для которой отсутствует двоичный файл fsck в /usr/lib/ тип_файловой_системы/fsck. Также было бы ошибкой не указывать устройство для команды fsck, если для этой файловой системы существует двоичный файл fsck.

Для получения дополнительной информации см. Демон zoneadmd и fsck(1M)

ZFS

Набор данных ZFS можно добавить в неглобальную зону с помощью команды zonecfg с ресурсом add dataset. Набор данных станет видимым и будет смонтирован в неглобальной зоне, но перестанет быть видимым в глобальной зоне. Администратор зоны может создавать и уничтожать файловые системы в рамках этого набора данных, а также изменять свойства набора данных.

Атрибут zoned команды zfs указывает, был ли набор данных добавлен к неглобальной зоне.


# zfs get zoned tank/sales
NAME          PROPERTY    VALUE      SOURCE
tank/sales    zoned       on         local

Если необходимо совместно использовать набор данных из глобальной зоны, файловую систему ZFS с монтированием LOFS можно добавить командой zonecfg с подкомандой add fs. За установку и управление свойствами набора данных отвечает глобальный администратор.

Для получения дополнительной информации о ZFS см. Глава 10, Расширенное администрирование ZFS, в Руководство по администрированию файловых систем ZFS Solaris.

Неглобальные зоны как клиенты NFS

Зоны могут быть клиентами NFS. Поддерживаются протоколы версии 2, версии 3 и версии 4. Для получения информации относительно этих версий NFS см. раздел Features of the NFS Service в System Administration Guide: Network Services.

Версия по умолчанию – NFS версии 4. Другие версии NFS можно активировать для клиента одним из следующих методов:

Запрет использования команды mknod в зоне

Обратите внимание, что для создания специального файла в неглобальной зоне не допускается использование команды mknod, описанной на справочной странице mknod(1M).

Прохождение файловых систем

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

Следует отметить, что попытка доступа узлов AutoFS, смонтированных для другой зоны, завершается неуспешно. Глобальный администратор не должен иметь автосопоставлений, передаваемых по наследству в другие зоны.

Ограничение доступа к неглобальной зоне из глобальной зоны

После установки неглобальной зоны доступ к ней непосредственно из глобальной зоны какими-либо командами, за исключением утилит резервного копирования систем, запрещается. Более того, неглобальная зона после контакта с неизвестной средой не может считаться безопасной. В качестве примера можно привести помещение зоны в публично доступную сеть, где она может быть скомпрометирована, а содержание ее файловых систем изменено. Если существует принципиальная вероятность компрометации, глобальный администратор должен обращаться с зоной как с недоверенной.

Любая команда, допускающая в качестве входного параметра альтернативный корень посредством параметра -R или - b (или аналогичной), не должна использоваться в следующих случаях:

В качестве примера можно привести параметр -R путь_к_корню утилиты pkgadd, запускаемой из глобальной зоны с корневым путем неглобальной зоны.

Ниже приведен список команд, программ и служебных программ, в которых используется параметр -R с альтернативным корневым путем.

Ниже приведен список команд и программ, использующих параметр -b с альтернативным корневым путем.