The set of devices available within a zone is restricted to prevent a process in one zone from interfering with processes running in other zones. For example, a process in a zone cannot modify kernel memory or modify the contents of the root disk. Thus, by default, only certain pseudo-devices that are considered safe for use in a zone are available. Additional devices can be made available within specific zones be using the zonecfg utility.
The devfs file system described in the devfs(7FS) man page is used by the Solaris system to manage /devices. Each element in this namespace represents the physical path to a hardware device, pseudo-device, or nexus device. The namespace is a reflection of the device tree. As such, the file system is populated by a hierarchy of directories and device special files.
The /dev file hierarchy, which is today part of the / (root) file system, consists of symbolic links, or logical paths, to the physical paths present in /devices. Applications reference the logical path to a device presented in /dev. The /dev file system is loopback-mounted into the zone using a read-only mount.
The /dev file hierarchy is managed by a system comprised of the components in the following list:
devfsadm (see the devfsadm(1M) man page)
syseventd (see the syseventd(1M) man page)
libdevinfo device information library (see the libdevinfo(3LIB) man page)
devinfo driver (see the devinfo(7D) man page)
Reconfiguration Coordination Manager (RCM) (see Reconfiguration Coordination Manager (RCM) Script Overview in System Administration Guide: Devices and File Systems)
Subsystems that rely on /devices path names are not able to run in non-global zones until /dev path names are established.
You might have devices that you want to assign to specific zones. Allowing unprivileged users to access block devices could permit those devices to be used to cause system panic, bus resets, or other adverse effects. Before making such assignments, consider the following issues:
Before assigning a SCSI tape device to a specific zone, consult the sgen(7D) man page.
Placing a physical device into more than one zone can create a covert channel between zones. Global zone applications that use such a device risk the possibility of compromised data or data corruption by a non-global zone.
In a non-global zone, you can use the modinfo command described in the modinfo(1M) man page to examine the list of loaded kernel modules.
Most operations concerning kernel, device, and platform management will not work inside a non-global zone because modifying platform hardware configurations violates the zone security model. These operations include the following:
Adding and removing drivers
Explicitly loading and unloading kernel modules
Initiating dynamic reconfiguration (DR) operations
Using facilities that affect the state of the physical platform
The following utilities do not work in a zone because they rely on devices that are not normally available:
cdrecord (See the man page in the /usr/share/man/man1 directory. )
cdrw (see the cdrw(1) man page)
rmformat (see the rmformat(1) man page)
add_drv (see the add_drv(1M) man page)
disks (see the disks(1M) man page)
prtconf (see the prtconf(1M) man page)
prtdiag (see the prtdiag(1M) man page)
rem_drv (see the rem_drv(1M) man page)
The eeprom utility can be used in a zone to view settings. The utility cannot be used to change settings. For more information, see the eeprom(1M) and openprom(7D) man pages.