<chapter id="z.admin.ov-1"><title>Solaris Zones Administration (Overview)</title><highlights><para>This chapter covers these general zone administration topics:</para><itemizedlist><listitem><para><olink targetptr="z.admin.ov-4" remap="internal">Global Zone Visibility and
Access</olink></para>
</listitem><listitem><para><olink targetptr="z.admin.ov-22" remap="internal">Process ID Visibility in
Zones</olink></para>
</listitem><listitem><para><olink targetptr="z.admin.ov-24" remap="internal">System Observability in Zones</olink></para>
</listitem><listitem><para><olink targetptr="z.admin.ov-11" remap="internal">Non-Global Zone Node Name</olink></para>
</listitem><listitem><para><olink targetptr="z.admin.ov-2" remap="internal">File Systems and Non-Global
Zones</olink></para>
</listitem><listitem><para><olink targetptr="z.admin.ov-9" remap="internal">Networking in Shared-IP Non-Global
Zones</olink></para>
</listitem><listitem><para><olink targetptr="gelkh" remap="internal">Networking in Exclusive-IP Non-Global
Zones</olink></para>
</listitem><listitem><para><olink targetptr="z.admin.ov-13" remap="internal">Device Use in Non-Global
Zones</olink></para>
</listitem><listitem><para><olink targetptr="z.admin.ov-42" remap="internal">Running Applications in Non-Global
Zones</olink></para>
</listitem><listitem><para><olink targetptr="z.admin.ov-3" remap="internal">Resource Controls Used in
Non-Global Zones</olink></para>
</listitem><listitem><para><olink targetptr="z.admin.ov-43" remap="internal">Fair Share Scheduler on a
Solaris System With Zones Installed</olink></para>
</listitem><listitem><para><olink targetptr="z.admin.ov-6" remap="internal">Extended Accounting on a Solaris
System With Zones Installed</olink></para>
</listitem><listitem><para><olink targetptr="z.admin.ov-18" remap="internal">Privileges in a Non-Global
Zone</olink></para>
</listitem><listitem><para><olink targetptr="z.admin.ov-29" remap="internal">Using IP Security Architecture
in Zones</olink></para>
</listitem><listitem><para><olink targetptr="z.admin.ov-20" remap="internal">Using Solaris Auditing in
Zones</olink></para>
</listitem><listitem><para><olink targetptr="z.admin.ov-21" remap="internal">Core Files in Zones</olink></para>
</listitem><listitem><para><olink targetptr="gcogk" remap="internal">Running DTrace in a Non-Global Zone</olink></para>
</listitem><listitem><para><olink targetptr="gbrho" remap="internal">About Backing Up a Solaris System
With Zones Installed</olink></para>
</listitem><listitem><para><olink targetptr="gbrhi" remap="internal">Determining What to Back Up in Non-Global
Zones</olink></para>
</listitem><listitem><para><olink targetptr="z.admin.ov-32" remap="internal">Commands Used on a Solaris
System With Zones Installed</olink></para>
</listitem>
</itemizedlist><para>For information on <literal>lx</literal> branded zones, see <olink targetptr="gchhk" remap="internal">Part&nbsp;III, Branded Zones</olink>.</para>
</highlights><sect1 id="z.admin.ov-4"><title>Global Zone Visibility and Access</title><para>The global zone acts as both the default zone for the system and as
a zone for system-wide administrative control. There are administrative issues
associated with this dual role. Since applications within the zone have access
to processes and other system objects in other zones, the effect of administrative
actions can be wider than expected. For example, service shutdown scripts
often use <command>pkill</command> to signal processes of a given name to
exit. When such a script is run from the global zone, all such processes in
the system will be signaled, regardless of zone.</para><para>The system-wide scope is often needed. For example, to monitor system-wide
resource usage, you must view process statistics for the whole system. A view
of just global zone activity would miss relevant information from other zones
in the system that might be sharing some or all of the system resources. Such
a view is particularly important when system resources such as CPU are not
strictly partitioned using resource management facilities.</para><para>Thus, processes in the global zone can observe processes and other objects
in non-global zones. This allows such processes to have system-wide observability.
The ability to control or send signals to processes in other zones is restricted
by the privilege <literal>PRIV_PROC_ZONE</literal>. The privilege is similar
to <literal>PRIV_PROC_OWNER</literal> because the privilege allows processes
to override the restrictions placed on unprivileged processes. In this case,
the restriction is that unprivileged processes in the global zone cannot signal
or control processes in other zones. This is true even when the user IDs of
the processes match or the acting process has the <literal>PRIV_PROC_OWNER</literal> privilege.
The <literal>PRIV_PROC_ZONE</literal> privilege can be removed from otherwise
privileged processes to restrict actions to the global zone.</para><para>For information about matching processes by using a <literal>zoneidlist</literal>,
see the <olink targetdoc="group-refman" targetptr="pgrep-1" remap="external"><citerefentry><refentrytitle>pgrep</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> <olink targetdoc="group-refman" targetptr="pkill-1" remap="external"><citerefentry><refentrytitle>pkill</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> man pages.</para>
</sect1><sect1 id="z.admin.ov-22"><title>Process ID Visibility in Zones</title><para>Only processes in the same zone will be visible through system call
interfaces that take process IDs, such as the <command>kill</command> and <command>priocntl</command> commands. For information, see the <olink targetdoc="group-refman" targetptr="kill-1" remap="external"><citerefentry><refentrytitle>kill</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> and the <olink targetdoc="group-refman" targetptr="priocntl-1" remap="external"><citerefentry><refentrytitle>priocntl</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> man pages.</para>
</sect1><sect1 id="z.admin.ov-24"><title>System Observability in Zones</title><para>The <command>ps</command> command has the following modifications:</para><itemizedlist><listitem><para>The <option>o</option> option is used to specify output format.
This option allows you to print the zone ID of a process or the name of the
zone in which the process is running.</para>
</listitem><listitem><para>The <option>z</option> <replaceable>zonelist</replaceable> option
is used to list only processes in the specified zones. Zones can be specified
either by zone name or by zone ID. This option is only useful when the command
is executed in the global zone.</para>
</listitem><listitem><para>The <option>Z</option> option is used to print the name of
the zone associated with the process. The name is printed under the column
heading <literal>ZONE</literal>.</para>
</listitem>
</itemizedlist><para>For more information, see the <olink targetdoc="group-refman" targetptr="ps-1" remap="external"><citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> man page.</para><para>A <option>z</option> <replaceable>zonename</replaceable> option has
been added to the following Solaris utilities. You can use this option to
filter the information to include only the zone or zones specified.</para><itemizedlist><listitem><para><command>ipcs</command> (see the <olink targetdoc="group-refman" targetptr="ipcs-1" remap="external"><citerefentry><refentrytitle>ipcs</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> man page)</para>
</listitem><listitem><para><command>pgrep</command> (see the <olink targetdoc="group-refman" targetptr="pgrep-1" remap="external"><citerefentry><refentrytitle>pgrep</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> man page)</para>
</listitem><listitem><para><command>ptree</command> (see the <olink targetdoc="group-refman" targetptr="proc-1" remap="external"><citerefentry><refentrytitle>proc</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> man page)</para>
</listitem><listitem><para><command>prstat</command> (see the <olink targetdoc="group-refman" targetptr="prstat-1m" remap="external"><citerefentry><refentrytitle>prstat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page)</para>
</listitem>
</itemizedlist><para>See <olink targetptr="z.admin.ov-tbl-34" remap="internal">Table&nbsp;26&ndash;5</olink> for
the full list of changes made to commands.</para>
</sect1><sect1 id="z.admin.ov-11"><title>Non-Global Zone Node Name</title><para>The node name
in <filename>/etc/nodename</filename> returned by <command>uname</command> <option>n</option> can be set by the zone administrator. The node name must be unique.</para>
</sect1><sect1 id="z.admin.ov-2"><title>File Systems and Non-Global Zones</title><para>This section provides information about file system issues on a Solaris
system with zones installed. Each zone has its own section of the file system
 hierarchy, rooted at a directory known as the zone <literal>root</literal>.
Processes in the zone can access only files in the part of the hierarchy that
is located under the zone root. The <command>chroot</command> utility can
be used in a zone, but only to restrict the process to a root path within
the zone. For more information about <command>chroot</command>, see <olink targetdoc="group-refman" targetptr="chroot-1m" remap="external"><citerefentry><refentrytitle>chroot</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink>.</para><sect2 id="z.admin.ov-23"><title>The <option>o</option> <command>nosuid</command> Option</title><para>The <option>o</option> <command>nosuid</command> option to the <command>mount</command> utility has the following functionality:</para><itemizedlist><listitem><para>Processes from a <literal>setuid</literal> binary located
on a file system that is mounted using the <literal>nosetuid</literal> option
do not run with the privileges of the <literal>setuid</literal> binary. The
processes run with the privileges of the user that executes the binary.</para><para>For example, if a user executes a <literal>setuid</literal> binary that
is owned by <literal>root</literal>, the processes run with the privileges
of the user.</para>
</listitem><listitem><para>Opening device-special entries in the file system is not allowed.
This behavior is equivalent to specifying the <literal>nodevices</literal> option.</para>
</listitem>
</itemizedlist><para>This file system-specific option is available to all Solaris file systems
that can be mounted with <command>mount</command> utilities, as described
in the <olink targetdoc="group-refman" targetptr="mount-1m" remap="external"><citerefentry><refentrytitle>mount</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page. In this guide, these file systems are listed in <olink targetptr="z.admin.ov-26" remap="internal">Mounting File Systems in Zones</olink>. Mounting
capabilities are also described. For more information about the <option>o</option> <command>nosuid</command> option, see &ldquo;Accessing Network File Systems  (Reference)&rdquo;
in <olink targetdoc="sysadv4" remap="external"><citetitle remap="book">System Administration Guide: Network Services</citetitle></olink>.</para>
</sect2><sect2 id="z.admin.ov-26"><title>Mounting File Systems in Zones</title><para>When file systems are mounted from within a zone, the <literal>nodevices</literal> option
applies. For example, if a zone is granted access to a block device (<filename>/dev/dsk/c0t0d0s7</filename>) and a raw device (<filename>/dev/rdsk/c0t0d0s7</filename>) corresponding
to a UFS file system, the file system is automatically mounted <literal>nodevices</literal> when mounted from within a zone. This rule does not apply to mounts
specified through a <command>zonecfg</command> configuration.</para><para>Options for mounting file systems in non-global zones are described
in the following table. Procedures for these mounting alternatives are provided
in <olink targetptr="z.conf.start-85" remap="internal">Configuring, Verifying, and Committing
a Zone</olink> and <olink targetptr="z.admin.task-11" remap="internal">Mounting File Systems
in Running Non-Global Zones</olink>.</para><para>Any file system type not listed in the table can be specified in the
configuration if it has a mount binary in <filename>/usr/lib/<replaceable>fstype</replaceable>/mount</filename>.</para><informaltable frame="all"><tgroup cols="2" colsep="1" rowsep="1"><colspec colwidth="50*"/><colspec colwidth="50*"/><thead><row><entry><para>File System</para>
</entry><entry><para>Mounting Options in a Non-Global Zone</para>
</entry>
</row>
</thead><tbody><row><entry><para>AutoFS</para>
</entry><entry><para>Cannot be mounted using <command>zonecfg</command>, cannot be manually
mounted from the global zone into a non-global zone. Can be mounted from within
the zone.</para>
</entry>
</row><row><entry><para>CacheFS</para>
</entry><entry><para>Cannot be used in a non-global zone.</para>
</entry>
</row><row><entry><para>FDFS</para>
</entry><entry><para>Can be mounted using <command>zonecfg</command>, can be manually mounted
from the global zone into a non-global zone, can be mounted from within the
zone.</para>
</entry>
</row><row><entry><para>HSFS</para>
</entry><entry><para>Can be mounted using <command>zonecfg</command>, can be manually mounted
from the global zone into a non-global zone, can be mounted from within the
zone.</para>
</entry>
</row><row><entry><para>LOFS</para>
</entry><entry><para>Can be mounted using <command>zonecfg</command>, can be manually mounted
from the global zone into a non-global zone, can be mounted from within the
zone.</para>
</entry>
</row><row><entry><para>MNTFS</para>
</entry><entry><para>Cannot be mounted using <command>zonecfg</command>, cannot be manually
mounted from the global zone into a non-global zone. Can be mounted from within
the zone.</para>
</entry>
</row><row><entry><para>NFS</para>
</entry><entry><para>Cannot be mounted using <command>zonecfg</command>. V2, V3, and V4,
which are the versions currently supported in zones, can be mounted from within
the zone.</para>
</entry>
</row><row><entry><para>PCFS </para>
</entry><entry><para>Can be mounted using <command>zonecfg</command>, can be manually mounted
from the global zone into a non-global zone, can be mounted from within the
zone.</para>
</entry>
</row><row><entry><para>PROCFS</para>
</entry><entry><para>Cannot be mounted using <command>zonecfg</command>, cannot be manually
mounted from the global zone into a non-global zone. Can be mounted from within
the zone.</para>
</entry>
</row><row><entry><para>TMPFS</para>
</entry><entry><para>Can be mounted using <command>zonecfg</command>, can be manually mounted
from the global zone into a non-global zone, can be mounted from within the
zone.</para>
</entry>
</row><row><entry><para>UDFS</para>
</entry><entry><para>Can be mounted using <command>zonecfg</command>, can be manually mounted
from the global zone into a non-global zone, can be mounted from within the
zone.</para>
</entry>
</row><row><entry><para>UFS</para>
</entry><entry><para>Can be mounted using <command>zonecfg</command>, can be manually mounted
from the global zone into a non-global zone, can be mounted from within the
zone.</para>
</entry>
</row><row><entry><para>XMEMFS</para>
</entry><entry><para>Support for this file system has been removed from Solaris with this
release.</para>
</entry>
</row><row><entry><para>ZFS</para>
</entry><entry><para>Can be mounted using the <command>zonecfg</command> <literal>dataset</literal> and <literal>fs</literal> resource types.</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><para>For more information, see <olink targetptr="z.conf.start-29" remap="internal">How to
Configure the Zone</olink>, <olink targetptr="z.admin.task-11" remap="internal">Mounting File
Systems in Running Non-Global Zones</olink>, and the <olink targetdoc="group-refman" targetptr="mount-1m" remap="external"><citerefentry><refentrytitle>mount</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page.</para>
</sect2><sect2 id="gafnf"><title>Unmounting File Systems in Zones</title><para>The ability to unmount a file system will depend on who performed the
initial mount. If a file system is specified as part of the zone's configuration
using the <command>zonecfg</command> command, then the global zone owns this
mount and the non-global zone administrator cannot unmount the file system.
If the file system is mounted from within the non-global zone, for example,
by specifying the mount in the zone's <filename>/etc/vfstab</filename> file,
then the non-global zone administrator can unmount the file system.</para>
</sect2><sect2 id="z.admin.ov-7"><title>Security Restrictions and File System Behavior</title><para>There are security restrictions on mounting certain file systems from
within a zone. Other file systems exhibit special behavior when mounted in
a zone. The list of modified file systems follows.</para><variablelist><varlistentry><term>AutoFS</term><listitem><para>Autofs is a client-side service that automatically mounts
the appropriate file system. When a client attempts to access a file system
that is not presently mounted, the AutoFS file system intercepts the request
and calls <command>automountd</command> to mount the requested directory.
AutoFS mounts established within a zone are local to that zone. The mounts
cannot be accessed from other zones, including the global zone. The mounts
are removed when the zone is halted or rebooted. For more information on AutoFS,
see <olink targetdoc="sysadv4" targetptr="rfsrefer-75" remap="external"><citetitle remap="section">How Autofs Works</citetitle> in <citetitle remap="book">System Administration Guide: Network Services</citetitle></olink>.</para><para>Each zone runs its own copy of <literal>automountd</literal>. The auto
maps and timeouts are controlled by the zone administrator. You cannot trigger
a mount in another zone by crossing an AutoFS mount point for a non-global
zone from the global zone.</para><para>Certain AutoFS mounts are created in the kernel when another mount is
triggered. Such mounts cannot be removed by using the regular <command>umount</command> interface
because they must be mounted or unmounted as a group. Note that this functionality
is provided for zone shutdown.</para>
</listitem>
</varlistentry><varlistentry><term>MNTFS</term><listitem><para>MNTFS is a virtual file system that provides read-only access
to the table of mounted file systems for the local system. The set of file
systems visible by using <command>mnttab</command> from within a non-global
zone is the set of file systems mounted in the zone, plus an entry for  root
(<literal>/</literal>) . Mount points with a special device that is not accessible
from within the zone, such as <filename>/dev/rdsk/c0t0d0s0</filename>, have
their special device set to the same as the mount point. All mounts in the
system are visible from the global zone's <filename>/etc/mnttab</filename> table.
For more information on MNTFS, see <olink targetdoc="sagdfs" targetptr="fsmount-42780" remap="external">Chapter 19, <citetitle remap="chapter">Mounting and Unmounting File Systems (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: Devices and File Systems</citetitle></olink>.</para>
</listitem>
</varlistentry><varlistentry><term>NFS</term><listitem><para>NFS mounts established within a zone are local to that zone.
The mounts cannot be accessed from other zones, including the global zone.
The mounts are removed when the zone is halted or rebooted.</para><para>As documented in the <olink targetdoc="group-refman" targetptr="mount-nfs-1m" remap="external"><citerefentry><refentrytitle>mount_nfs</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page, an NFS server should
not attempt to mount its own file systems. Thus, a zone should not NFS mount
a file system exported by the global zone. Zones cannot be NFS servers. From
within a zone, NFS mounts behave as though mounted with the <literal>nodevices</literal> option.</para><para>The <command>nfsstat</command> command output only pertains to the zone
in which the command is run. For example, if the command is run in the global
zone, only information about the global zone is reported. For more information
about the <command>nfsstat</command> command, see <olink targetdoc="group-refman" targetptr="nfsstat-1m" remap="external"><citerefentry><refentrytitle>nfsstat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink>.</para><para>The <command>zlogin</command> command will fail if any of its open files
or any portion of its address space reside on NFS. For more information, see <olink targetptr="z.login.ov-2" remap="internal">zlogin Command</olink>.</para>
</listitem>
</varlistentry><varlistentry><term>PROCFS</term><listitem><para>The <filename>/proc</filename> file system, or PROCFS, provides
process visibility and access restrictions as well as information about the
zone association of processes. Only processes in the same zone are visible
through <filename>/proc</filename>.</para><para>Processes in the global zone can observe processes and other objects
in non-global zones. This allows such processes to have system-wide observability.</para><para>From within a zone, <command>procfs</command> mounts behave as though
mounted with the <command>nodevices</command> option. For more information
about <command>procfs</command>, see the <olink targetdoc="group-refman" targetptr="proc-4" remap="external"><citerefentry><refentrytitle>proc</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> man page.</para>
</listitem>
</varlistentry><varlistentry><term>LOFS</term><listitem><para>The scope of what can be mounted through LOFS is limited to
the portion of the file system that is visible to the zone. Hence, there are
no restrictions on LOFS mounts in a zone.</para>
</listitem>
</varlistentry><varlistentry><term>UFS, UDFS, PCFS, and other storage-based file systems</term><listitem><para>When using the <command>zonecfg</command> command to configure
storage-based file systems that have an <literal>fsck</literal> binary, such
as UFS, the zone administrator must specify a <literal>raw</literal> parameter.
The parameter indicates the raw (character) device, such as <literal>/dev/rdsk/c0t0d0s7</literal>. <command>zoneadmd</command> automatically runs the <command>fsck</command> command
in non-interactive check-only mode (<command>fsck</command> <option>m</option>)
on this device before it mounts the file system. If the <literal>fsck</literal> fails, <command>zoneadmd</command> cannot bring the zone to the ready state. The path specified
by <literal>raw</literal> cannot be a relative path.</para><para>It is an error to specify a device to <command>fsck</command> for a
file system that does not provide an <command>fsck</command> binary in <literal>/usr/lib/fs/</literal><replaceable>fstype</replaceable><literal>/fsck</literal>.  It is
also an error if you do not specify a device to <command>fsck</command> if
an <command>fsck</command> binary exists for that file system.</para><para>For more information, see <olink targetptr="z.inst.ov-12" remap="internal">The zoneadmd
Daemon</olink> and the <olink targetdoc="group-refman" targetptr="fsck-1m" remap="external"><citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</listitem>
</varlistentry><varlistentry><term>ZFS</term><listitem><para>You can add a ZFS dataset to a non-global zone by using the <command>zonecfg</command> command with the <literal>add dataset</literal> resource.
The dataset will be visible and mounted in the non-global zone and no longer
visible in the global zone. The zone administrator can create and destroy
file systems within that dataset, and modify the properties of the dataset.</para><para>The <literal>zoned</literal> attribute of <command>zfs</command> indicates
whether a dataset has been added to a non-global zone.</para><screen># <userinput>zfs get zoned tank/sales</userinput>
NAME          PROPERTY    VALUE      SOURCE
tank/sales    zoned       on         local</screen><para>If you want to share a dataset from the global zone, you can add an
LOFS-mounted ZFS file system by using the <command>zonecfg</command> command
with the <literal>add</literal> <literal>fs</literal> subcommand. The global
administrator is responsible for setting and controlling the properties of
the dataset.</para><para>For more information on ZFS, see <olink targetdoc="zfsadmin" targetptr="ftyxh" remap="external">Chapter 10, <citetitle remap="chapter">ZFS Advanced Topics,</citetitle> in <citetitle remap="book">Solaris ZFS Administration Guide</citetitle></olink>.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="z.admin.ov-39"><title>Non-Global Zones as NFS Clients</title><para>Zones can be NFS clients. Version 2, version 3, and version 4 protocols
are supported. For information on these NFS versions, see <olink targetdoc="sysadv4" targetptr="rfsintro-101" remap="external"><citetitle remap="section">Features of the NFS Service</citetitle> in <citetitle remap="book">System Administration Guide: Network Services</citetitle></olink>. .</para><para>The default version is NFS version 4. You can enable other NFS versions
on a client by using one of the following methods:</para><itemizedlist><listitem><para>You can edit <filename>/etc/default/nfs</filename> to set <literal>NFS_CLIENT_VERSMAX=</literal><replaceable>number</replaceable> so that the
zone uses the specified version by default. See <olink targetdoc="sysadv4" targetptr="rfsadmin-68" remap="external"><citetitle remap="section">Setting Up NFS Services</citetitle> in <citetitle remap="book">System Administration Guide: Network Services</citetitle></olink>.
Use the procedure How to Select Different Versions of NFS on a Client by Modifying
the <filename>/etc/default/nfs</filename> File from the task map.</para>
</listitem><listitem><para>You can manually create a version mount. This method overrides
the contents of <filename>/etc/default/nfs</filename>. See <olink targetdoc="sysadv4" targetptr="rfsadmin-68" remap="external"><citetitle remap="section">Setting Up NFS Services</citetitle> in <citetitle remap="book">System Administration Guide: Network Services</citetitle></olink>. Use the procedure How to Use
the Command Line to Select Different Versions of NFS on a Client from the
task map.</para>
</listitem>
</itemizedlist>
</sect2><sect2 id="z.admin.ov-35"><title>Use of <command>mknod</command> Prohibited
in a Zone</title><para>Note that you cannot use the <command>mknod</command> command documented
in the <citerefentry><refentrytitle>mknod</refentrytitle><manvolnum>1M</manvolnum></citerefentry> man page to make a special file in a non-global zone.</para>
</sect2><sect2 id="z.admin.ov-8"><title>Traversing File Systems</title><para>A zone's file system namespace is a subset of the namespace accessible
from the global zone. Unprivileged processes in the global zone are prevented
from traversing a non-global zone's file system hierarchy through the following
means:</para><itemizedlist><listitem><para>Specifying that the zone root's parent directory is owned,
readable, writable, and executable by root only</para>
</listitem><listitem><para>Restricting access to directories exported by <filename>/proc</filename></para>
</listitem>
</itemizedlist><para>Note that attempting to access AutoFS nodes mounted for another zone
will fail. The global administrator must not have auto maps that descend into
other zones.</para>
</sect2><sect2 id="z.admin.ov-46"><title>Restriction on Accessing A Non-Global Zone
From the Global Zone</title><para>After a non-global zone is installed, the zone must never be accessed
directly from the global zone by any commands other than system backup utilities.
Moreover, a non-global zone can no longer be considered secure after it has
been exposed to an unknown environment. An example would be a zone placed
on a publicly accessible network, where it would be possible for the zone
to be compromised and the contents of its file systems altered. If there is
any possibility that compromise has occurred, the global administrator should
treat the zone as untrusted.</para><para>Any command that accepts an alternative root by using the <option>R</option> or <option>b</option> options (or the equivalent) must <emphasis>not</emphasis> be used
when the following are true:</para><itemizedlist><listitem><para>The command is run in the global zone.</para>
</listitem><listitem><para>The alternative root refers to any path within a non-global
zone, whether the path is relative to the current  running system's global
zone or the global zone in an alternative root.</para>
</listitem>
</itemizedlist><para>An example is the <option>R</option> <parameter>root_path</parameter> option
to the <command>pkgadd</command> utility run from the global zone with a non-global
zone root path. </para><para>The list of commands, programs, and utilities that use <option>R</option> with
an alternative root path include the following:</para><itemizedlist><listitem><para><command>auditreduce</command></para>
</listitem><listitem><para><command>bart</command></para>
</listitem><listitem><para><command>flar</command></para>
</listitem><listitem><para><command>flarcreate</command></para>
</listitem><listitem><para><command>installf</command></para>
</listitem><listitem><para><command>localeadm</command></para>
</listitem><listitem><para><command>makeuuid</command></para>
</listitem><listitem><para><command>metaroot</command></para>
</listitem><listitem><para><command>patchadd</command></para>
</listitem><listitem><para><command>patchrm</command></para>
</listitem><listitem><para><command>pkgadd</command></para>
</listitem><listitem><para><command>pkgadm</command></para>
</listitem><listitem><para><command>pkgask</command></para>
</listitem><listitem><para><command>pkgchk</command></para>
</listitem><listitem><para><command>pkgrm</command></para>
</listitem><listitem><para><command>prodreg</command></para>
</listitem><listitem><para><command>removef</command></para>
</listitem><listitem><para><command>routeadm</command></para>
</listitem><listitem><para><command>showrev</command></para>
</listitem><listitem><para><command>syseventadm</command></para>
</listitem>
</itemizedlist><para>The list of commands and programs that use <option>b</option> with an
alternative root path include the following:</para><itemizedlist><listitem><para><command>add_drv</command></para>
</listitem><listitem><para><command>pprosetup</command></para>
</listitem><listitem><para><command>rem_drv</command></para>
</listitem><listitem><para><command>roleadd</command></para>
</listitem><listitem><para><command>sysidconfig</command></para>
</listitem><listitem><para><command>update_drv</command></para>
</listitem><listitem><para><command>useradd</command></para>
</listitem>
</itemizedlist>
</sect2>
</sect1><sect1 id="z.admin.ov-9"><title>Networking in Shared-IP Non-Global Zones</title><para>On
a Solaris system with zones installed, the zones can communicate with each
other over the network. The zones all have separate bindings, or connections,
and the zones can all run their own server daemons. These daemons can listen
on the same port numbers without any conflict. The IP stack resolves conflicts
by considering the IP addresses for incoming connections. The IP addresses
identify the zone.</para><sect2 id="z.admin.ov-10"><title>Shared-IP Zone Partitioning</title><para>The IP stack in a system supporting zones implements the separation
of network traffic between zones. Applications that receive IP traffic can
only receive traffic sent to the same zone.</para><para>Each logical interface on the system belongs to a specific zone, the
global zone by default. Logical network interfaces assigned to zones though
the <command>zonecfg</command> utility are used to communicate over the network.
Each stream and connection belongs to the zone of the process that opened
it.</para><para>Bindings between upper-layer streams and logical interfaces are restricted.
A stream can only establish bindings to logical interfaces in the same zone.
Likewise, packets from a logical interface can only be passed to upper-layer
streams in the same zone as the logical interface.</para><para>Each zone has its own set of binds. Each zone can be running the same
application listening on the same port number without binds failing because
the address is already in use. Each zone can run its own version of the following
services:</para><itemizedlist><listitem><para>Internet services daemon with a full configuration file (see
the <olink targetdoc="group-refman" targetptr="inetd-1m" remap="external"><citerefentry><refentrytitle>inetd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page)</para>
</listitem><listitem><para><command>sendmail</command> (see the <olink targetdoc="group-refman" targetptr="sendmail-1m" remap="external"><citerefentry><refentrytitle>sendmail</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page)</para>
</listitem><listitem><para><command>apache</command> (see the <olink targetdoc="group-refman" targetptr="apache-1m" remap="external"><citerefentry><refentrytitle>apache</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page)</para>
</listitem>
</itemizedlist><para>Zones other than the global zone have restricted access to the network.
The standard TCP and UDP socket interfaces are available, but <literal>SOCK_RAW</literal> socket
interfaces are restricted to Internet Control Message Protocol (ICMP). ICMP
is necessary for detecting and reporting network error conditions or using
the <command>ping</command> command.</para>
</sect2><sect2 id="z.admin.ov-12"><title>Shared-IP Network Interfaces</title><para>Each non-global zone that requires network connectivity has one or more
dedicated IP addresses. These addresses are associated with logical network
interfaces that can be placed in a zone by using the <command>ifconfig</command> command.
Zone network interfaces configured by <command>zonecfg</command> will automatically
be set up and placed in the zone when it is booted. The <command>ifconfig</command> command
can be used to add or remove logical interfaces when the zone is running.
Only the global administrator can modify the interface configuration and the
network routes.</para><para>Within a non-global zone, only that zone's interfaces will be visible
to <command>ifconfig</command>.</para><para>For more information, see the <olink targetdoc="group-refman" targetptr="ifconfig-1m" remap="external"><citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> and <olink targetdoc="group-refman" targetptr="if-tcp-7p" remap="external"><citerefentry><refentrytitle>if_tcp</refentrytitle><manvolnum>7P</manvolnum></citerefentry></olink> man pages.</para>
</sect2><sect2 id="z.admin.ov-38"><title>IP Traffic Between Shared-IP Zones on the
Same Machine</title><para>Between two zones on the same machine, packet delivery is only allowed
if there is a &ldquo;matching route&rdquo; for the destination and the zone
in the forwarding table.</para><para>The matching information is implemented as follows:</para><itemizedlist><listitem><para>The source address for the packets is selected on the output
interface specified by the matching route.</para>
</listitem><listitem><para>By default, traffic is permitted between two zones that have
addresses on the same subnet. The matching route in this case is the interface
route for the subnet.</para>
</listitem><listitem><para>If there is a default route for a given zone, where the gateway
is on one of the zone's subnets, traffic from that zone to all other zones
is allowed. The matching route in this case is the default route.</para>
</listitem><listitem><para>If there is a matching route with the <literal>RTF_REJECT</literal> flag,
packets trigger an ICMP unreachable message. If there is a matching route
with the <literal>RTF_BLACKHOLE</literal> flag, packets are discarded. The
global administrator can use the <command>route</command> command options
described in the following table to create routes with these flags.</para><informaltable frame="all"><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="33*"/><colspec colwidth="33*"/><colspec colwidth="33*"/><thead><row><entry><para>Modifier</para>
</entry><entry><para>Flag</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><option>reject</option></para>
</entry><entry><para><literal>RTF_REJECT</literal></para>
</entry><entry><para>Emit an ICMP unreachable message when matched.</para>
</entry>
</row><row><entry><para><option>blackhole</option></para>
</entry><entry><para><literal>RTF_BLACKHOLE</literal></para>
</entry><entry><para>Silently  discard  packets during updates.</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable><para>For more information, see the <olink targetdoc="group-refman" targetptr="route-1m" remap="external"><citerefentry><refentrytitle>route</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</listitem>
</itemizedlist>
</sect2><sect2 id="gedyy"><title>Solaris IP Filter in Shared-IP Zones</title><para>Solaris IP Filter provides stateful packet filtering and network address
translation (NAT). A stateful packet filter can monitor the state of active
connections and use the information obtained to determine which network packets
to allow through the firewall. Solaris IP Filter also includes stateless packet
filtering and the ability to create and manage address pools. See <olink targetdoc="sysadv3" targetptr="eupsq" remap="external">Chapter 25, <citetitle remap="chapter">Solaris IP Filter (Overview),</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink> for additional information.</para><para>Solaris IP Filter can be enabled in non-global zones by turning on loopback
filtering as described in <olink targetdoc="sysadv3" targetptr="ipfilter-admin-1" remap="external">Chapter 26, <citetitle remap="chapter">Solaris IP Filter (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink>. </para><para>Solaris IP Filter is derived from open source IP Filter software.</para>
</sect2><sect2 id="z.admin.ov-36"><title>IP Network Multipathing in Shared-IP Zones</title><para>IP network multipathing (IPMP) provides physical interface failure detection
and transparent network access failover for a system with multiple interfaces
on the same IP link. IPMP also provides load spreading of packets for systems
with multiple interfaces.</para><para>All network configuration is done in the global zone. You can configure
IPMP in the global zone, then extend the functionality to non-global zones.
The functionality is extended by placing the zone's address in an IPMP group
when you configure the zone. Then, if one of the interfaces in the global
zone fails, the non-global zone addresses will migrate to another network
interface card.</para><para>In a given non-global zone, only the interfaces associated with the
zone are visible through the <command>ifconfig</command> command.</para><para>See <olink targetptr="z.admin.task-60" remap="internal">How to Extend IP Network Multipathing
Functionality to Shared-IP Non-Global Zones</olink>. The zones configuration
procedure is covered in <olink targetptr="z.conf.start-29" remap="internal">How to Configure
the Zone</olink>. For information on IPMP features, components, and usage,
see <olink targetdoc="sysadv3" targetptr="mpoverview" remap="external">Chapter 27, <citetitle remap="chapter">Introducing IPMP (Overview),</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink>.</para>
</sect2>
</sect1><sect1 id="gelkh"><title>Networking in Exclusive-IP Non-Global Zones</title><para>An
exclusive-IP zone has its own IP-related state and tuning variables. The zone
is assigned its own set of data-links when the zone is configured.</para><para>For information on features that can be used in an exclusive-IP non-global
zone, see <olink targetptr="gekkb" remap="internal">Exclusive-IP Non-Global Zones</olink>.
For information on tuning IP <literal>ndd</literal> variables, see <olink targetdoc="soltuneparamref" remap="external"><citetitle remap="book">Solaris Tunable Parameters Reference Manual</citetitle></olink>.</para><sect2 id="geodw"><title>Exclusive-IP Zone Partitioning</title><para>	Exclusive-IP zones have separate TCP/IP stacks, so the separation
reaches down to the data-link layer. One or more data-link names, which can
be a NIC or a VLAN on a NIC, are assigned to an exclusive-IP zone by the global
administrator. The zone administrator can configure IP on those data-links
with the same flexibility and options as in the global zone.</para>
</sect2><sect2 id="geoes"><title>Exclusive-IP Data-Link Interfaces</title><para>A data-link name must be assigned exclusively to a single zone.</para><para>The <command>dladm</command> <literal>show-link</literal> command can
be used to display data-links assigned to running zones.</para><para>For more information, see <olink targetdoc="group-refman" targetptr="dladm-1m" remap="external"><citerefentry><refentrytitle>dladm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</sect2><sect2 id="geoez"><title>IP Traffic Between Exclusive-IP Zones on the Same
Machine</title><para>There is no internal loopback of IP packets between exclusive-IP zones.
All packets are sent down to the data-link.  Typically, this means that the
packets are sent out on a network interface. Then, devices like Ethernet switches
or IP routers can forward the packets toward their destination, which might
be a different zone on the same machine as the sender.</para>
</sect2><sect2 id="geoee"><title>Solaris IP Filter in Exclusive-IP Zones</title><para>You have the same IP Filter functionality that you have in the global
zone in an exclusive-IP zone. IP Filter is also configured the same way in
exclusive-IP zones and the global zone.</para>
</sect2><sect2 id="geodh"><title>IP Network Multipathing in Exclusive-IP Zones</title><para>IP network multipathing (IPMP) provides physical interface failure detection
and transparent network access failover for a system with multiple interfaces
on the same IP link. IPMP also provides load spreading of packets for systems
with multiple interfaces.</para><para>The data-link configuration is done in the global zone. First, multiple
data-link interfaces are assigned to a zone using <literal>zonecfg</literal>.
The multiple data-link interfaces must be attached to the same IP subnet.
IPMP can then be configured from within the exclusive-IP zone by the zone
administrator.</para>
</sect2>
</sect1><sect1 id="z.admin.ov-13"><title>Device Use in Non-Global Zones</title><para>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 by using the <command>zonecfg</command> utility.</para><sect2 id="z.admin.ov-14"><title><filename>/dev</filename> and the <filename>/devices</filename> Namespace</title><para>The <command>devfs</command> file system described in the <olink targetdoc="group-refman" targetptr="devfs-7fs" remap="external"><citerefentry><refentrytitle>devfs</refentrytitle><manvolnum>7FS</manvolnum></citerefentry></olink> man page
is used by the Solaris system to manage <filename>/devices</filename>. 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.</para><para>Devices are grouped according to the relative <literal>/dev</literal> hierarchy.
For example, all of the devices under <literal>/dev</literal> in the global
zone are grouped as global zone devices. For a non-global zone, the devices
are grouped in a <literal>/dev</literal> directory under the zone's root path.
Each group is a mounted <literal>/dev</literal> file system instance that
is mounted under the <literal>/dev</literal> directory. Thus, the global zone
devices are mounted under <literal>/dev</literal>, while the devices for a
non-global zone named <literal>my-zone</literal> are mounted under <literal>/my-zone_rootpath/dev</literal>.</para><para>The <filename>/dev</filename> file hierarchy is managed by the <literal>dev</literal> file system described in the <olink targetdoc="refman" targetptr="dev-7fs" remap="external"><citerefentry><refentrytitle>dev</refentrytitle><manvolnum>7FS</manvolnum></citerefentry></olink> man page.</para><caution><para>Subsystems that rely on <filename>/devices</filename> path
names are not able to run in non-global zones. The subsystems must be updated
to use <filename>/dev</filename> path names.</para>
</caution>
</sect2><sect2 id="z.admin.ov-15"><title>Exclusive-Use Devices</title><para>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:</para><itemizedlist><listitem><para>Before assigning a SCSI tape device to a specific zone, consult
the <olink targetdoc="group-refman" targetptr="sgen-7d" remap="external"><citerefentry><refentrytitle>sgen</refentrytitle><manvolnum>7D</manvolnum></citerefentry></olink> man
page.</para>
</listitem><listitem><para>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.</para>
</listitem>
</itemizedlist>
</sect2><sect2 id="z.admin.ov-16"><title>Device Driver Administration</title><para>In a non-global zone, you can use the <command>modinfo</command> command
described in the <olink targetdoc="group-refman" targetptr="modinfo-1m" remap="external"><citerefentry><refentrytitle>modinfo</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page to examine the list of loaded kernel modules.</para><para>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:</para><itemizedlist><listitem><para>Adding and removing drivers</para>
</listitem><listitem><para>Explicitly loading and unloading kernel modules</para>
</listitem><listitem><para>Initiating dynamic reconfiguration (DR) operations</para>
</listitem><listitem><para>Using facilities that affect the state of the physical platform</para>
</listitem>
</itemizedlist>
</sect2><sect2 id="z.admin.ov-19"><title>Utilities That Do Not Work or Are Modified
in Non-Global Zones</title><sect3 id="z.admin.ov-40"><title>Utilities That Do Not Work in Non-Global
Zones</title><para>The following utilities do not work in a zone because they rely on devices
that are not normally available:</para><itemizedlist><listitem><para><command>prtconf</command> (see the <olink targetdoc="group-refman" targetptr="prtconf-1m" remap="external"><citerefentry><refentrytitle>prtconf</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page)</para>
</listitem><listitem><para><command>prtdiag</command> (see the <olink targetdoc="group-refman" targetptr="prtdiag-1m" remap="external"><citerefentry><refentrytitle>prtdiag</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man page)</para>
</listitem>
</itemizedlist>
</sect3><sect3 id="z.admin.ov-41" arch="sparc"><title>Utility Modified for Use in
a Non-Global Zone</title><para>The <command>eeprom</command> utility can be used in a zone to view
settings. The utility cannot be used to change settings. For more information,
see the <olink targetdoc="group-refman" targetptr="eeprom-1m" remap="external"><citerefentry><refentrytitle>eeprom</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> and <olink targetdoc="group-refman" targetptr="openprom-7d" remap="external"><citerefentry><refentrytitle>openprom</refentrytitle><manvolnum>7D</manvolnum></citerefentry></olink> man pages.</para>
</sect3>
</sect2>
</sect1><sect1 id="z.admin.ov-42"><title>Running Applications in Non-Global Zones</title><para>In general, all applications can run in a non-global zone. However,
the following types of applications might not be suitable for this environment:</para><itemizedlist><listitem><para>Applications that use privileged operations that affect the
system as a whole. Examples include operations that set the global system
clock or lock down physical memory.</para>
</listitem><listitem><para>The few applications dependent upon certain devices that do
not exist in a non-global zone, such as <filename>/dev/kmem</filename>.</para>
</listitem><listitem><para>Applications that expect to be able to write into <filename>/usr</filename>,
either at runtime or when being installed, patched, or upgraded. This is because <filename>/usr</filename> is read-only for a non-global zone by default. Sometimes the
issues associated with this type of application can be mitigated without changing
the application itself.</para>
</listitem><listitem><para>In a shared-IP zone, applications dependent upon devices in <filename>/dev/ip</filename>.</para>
</listitem>
</itemizedlist>
</sect1><sect1 id="z.admin.ov-3"><title>Resource Controls Used in Non-Global Zones</title><para>For additional information about using a resource management feature
in a zone, also refer to the chapter that describes the feature in Part 1
of this guide.</para><para>Any of the resource controls and attributes described in the resource
management chapters can be set in the global and non-global zone <filename>/etc/project</filename> file, NIS map, or LDAP directory service. The settings for a given
zone affect only that zone. A project running autonomously in different zones
can have controls set individually in each zone. For example, Project A in
the global zone can be set <literal>project.cpu-shares=10</literal> while
Project A in a non-global zone can be set <literal>project.cpu-shares=5</literal>.
You could have several instances of <command>rcapd</command> running on the
system, with each instance operating only on its zone.</para><para>The resource controls and attributes used in a zone to control projects,
tasks, and processes within that zone are subject to the additional requirements
regarding pools and the zone-wide resource controls.</para><para>A &ldquo;one zone, one pool&rdquo; rule applies to non-global zones.
Multiple non-global zones can share the resources of one pool. Processes in
the global zone, however, can be bound by a sufficiently privileged process
to any pool. The resource controller <command>poold</command> only runs in
the global zone, where there is more than one pool for it to operate on. The <command>poolstat</command> utility run in a non-global zone displays only information
about the pool associated with the zone. The <command>pooladm</command> command
run without arguments in a non-global zone displays only information about
the pool associated with the zone.</para><para>Zone-wide resource controls do not take effect when they are set in
the <filename>project</filename> file. A zone-wide resource control is set
through the <command>zonecfg</command> utility.</para>
</sect1><sect1 id="z.admin.ov-43"><title>Fair Share Scheduler on a Solaris System
With Zones Installed</title><para>This section describes how to use the fair share scheduler (FSS) with
zones.</para><sect2 id="z.admin.ov-44"><title>FSS Share Division in a Global or Non-Global
Zone</title><para>FSS CPU shares for a zone are hierarchical. The shares for the global
and non-global zones are set by the global administrator through the zone-wide
resource control <literal>zone.cpu-shares</literal>. The <literal>project.cpu-shares</literal> resource control can then be defined for each project within that
zone to further subdivide the shares set through the zone-wide control.</para><para>To assign zone shares by using the <command>zonecfg</command> command,
see <olink targetptr="gejpu" remap="internal">How to Set zone.cpu-shares in the Global Zone</olink>.
For more information on <literal>project.cpu-shares</literal>, see <olink targetptr="rmctrls-4" remap="internal">Available Resource Controls</olink>. Also see <olink targetptr="z.admin.task-71" remap="internal">Using the Fair Share Scheduler on a Solaris System
With Zones Installed</olink> for example procedures that show how to set shares
on a temporary basis.</para>
</sect2><sect2 id="z.admin.ov-45"><title>Share Balance Between Zones</title><para>You can use <literal>zone.cpu-shares</literal> to assign FSS shares
in the global zone and in non-global zones. If FSS is the default scheduler
on your system and shares are not assigned, each zone is given one share by
default. If you have one non-global zone on your system and you give this
zone two shares through <literal>zone.cpu-shares</literal>, that defines the
proportion of CPU which the non-global zone will receive in relation to the
global zone. The ratio of CPU between the two zones is 2:1.</para>
</sect2>
</sect1><sect1 id="z.admin.ov-6"><title>Extended Accounting on a Solaris System With
Zones Installed</title><para>The extended accounting subsystem collects and reports information for
the entire system (including non-global zones) when run in the global zone.
The global administrator can also determine resource consumption on a per-zone
basis.</para><para>The extended accounting subsystem permits different accounting settings
and files on a per-zone basis for process-based and task-based accounting.
The <literal>exacct</literal> records can be tagged with the zone name <literal>EXD
PROC ZONENAME</literal> for processes, and the zone name <literal>EXD TASK
ZONENAME</literal> for tasks. Accounting records are written to the global
zone's accounting files as well as the per-zone accounting files. The <literal>EXD
TASK HOSTNAME</literal>,  <literal>EXD PROC HOSTNAME</literal>, and <literal>EXD
HOSTNAME</literal> records contain the <command>uname</command> <option>n</option> value
for the zone in which the process or task executed instead of the global zone's
node name.</para><para>For information about IPQoS flow accounting, see <olink targetdoc="sysadv3" targetptr="ipqos-accounting-1" remap="external">Chapter 33, <citetitle remap="chapter">Using Flow Accounting and Statistics Gathering (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink>.</para>
</sect1><sect1 id="z.admin.ov-18"><title>Privileges in a Non-Global Zone</title><para>Processes
are restricted to a subset of privileges. Privilege restriction prevents a
zone from performing operations that might affect other zones. The set of
privileges limits the capabilities of privileged users within the zone. To
display the list of privileges available from within a given zone, use the <command>ppriv</command> utility.</para><para>The following table lists all of the Solaris privileges and the status
of each privilege with respect to zones. Optional privileges are not part
of the default set of privileges but can be specified through the <literal>limitpriv</literal> property. Required privileges must be included in the resulting
privilege set. Prohibited privileges cannot be included in the resulting privilege
set.</para><table frame="all" id="gcogn"><title>Status of Privileges in Zones</title><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="29*"/><colspec colwidth="28*"/><colspec colwidth="43*"/><thead><row><entry><para>Privilege</para>
</entry><entry><para>Status</para>
</entry><entry><para>Notes</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>cpc_cpu</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Access to certain <citerefentry><refentrytitle>cpc</refentrytitle><manvolnum>3CPC</manvolnum></citerefentry> counters</para>
</entry>
</row><row><entry><para><literal>dtrace_proc</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para><literal>fasttrap</literal> and <literal>pid</literal> providers; <citerefentry><refentrytitle>plockstat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></para>
</entry>
</row><row><entry><para><literal>dtrace_user</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para><literal>profile</literal> and <literal>syscall</literal> providers</para>
</entry>
</row><row><entry><para><literal>gart_access</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para><citerefentry><refentrytitle>ioctl</refentrytitle><manvolnum>2</manvolnum></citerefentry> access to <citerefentry><refentrytitle>agpgart_io</refentrytitle><manvolnum>7I</manvolnum></citerefentry></para>
</entry>
</row><row><entry><para><literal>gart_map</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para><citerefentry><refentrytitle>mmap</refentrytitle><manvolnum>2</manvolnum></citerefentry> access to <citerefentry><refentrytitle>agpgart_io</refentrytitle><manvolnum>7I</manvolnum></citerefentry></para>
</entry>
</row><row><entry><para><literal>net_rawaccess</literal></para>
</entry><entry><para>Optional in shared-IP zones.</para><para>Default in exclusive-IP zones.</para>
</entry><entry><para>Raw <literal>PF_INET/PF_INET6</literal> packet access</para>
</entry>
</row><row><entry><para><literal>proc_clock_highres</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Use of high resolution timers</para>
</entry>
</row><row><entry><para><literal>proc_priocntl</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Scheduling control; <citerefentry><refentrytitle>priocntl</refentrytitle><manvolnum>1</manvolnum></citerefentry></para>
</entry>
</row><row><entry><para><literal>sys_ipc_config</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Raising IPC message queue buffer size</para>
</entry>
</row><row><entry><para><literal>sys_time</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>System time manipulation; <citerefentry><refentrytitle>xntp</refentrytitle><manvolnum>1M</manvolnum></citerefentry></para>
</entry>
</row><row><entry><para><literal>dtrace_kernel</literal></para>
</entry><entry><para>Prohibited</para>
</entry><entry><para>Currently unsupported</para>
</entry>
</row><row><entry><para><literal>proc_zone</literal></para>
</entry><entry><para>Prohibited</para>
</entry><entry><para>Currently unsupported</para>
</entry>
</row><row><entry><para><literal>sys_config</literal></para>
</entry><entry><para>Prohibited</para>
</entry><entry><para>Currently unsupported</para>
</entry>
</row><row><entry><para><literal>sys_devices</literal></para>
</entry><entry><para>Prohibited</para>
</entry><entry><para>Currently unsupported</para>
</entry>
</row><row><entry><para><literal>sys_linkdir</literal></para>
</entry><entry><para>Prohibited</para>
</entry><entry><para>Currently unsupported</para>
</entry>
</row><row><entry><para><literal>sys_net_config</literal></para>
</entry><entry><para>Prohibited</para>
</entry><entry><para>Currently unsupported</para>
</entry>
</row><row><entry><para><literal>sys_res_config</literal></para>
</entry><entry><para>Prohibited</para>
</entry><entry><para>Currently unsupported</para>
</entry>
</row><row><entry><para><literal>sys_suser_compat</literal></para>
</entry><entry><para>Prohibited</para>
</entry><entry><para>Currently unsupported</para>
</entry>
</row><row><entry><para><literal>proc_exec</literal></para>
</entry><entry><para>Required, Default</para>
</entry><entry><para>Used to start <citerefentry><refentrytitle>init</refentrytitle><manvolnum>1M</manvolnum></citerefentry></para>
</entry>
</row><row><entry><para><literal>proc_fork</literal></para>
</entry><entry><para>Required, Default</para>
</entry><entry><para>Used to start <citerefentry><refentrytitle>init</refentrytitle><manvolnum>1M</manvolnum></citerefentry></para>
</entry>
</row><row><entry><para><literal>sys_mount</literal></para>
</entry><entry><para>Required, Default</para>
</entry><entry><para>Needed to mount required file systems</para>
</entry>
</row><row><entry><para><literal>sys_ip_config</literal></para>
</entry><entry><para>Required, Default in exclusive-IP zones</para><para>Prohibited in shared-IP zones</para>
</entry><entry><para>Required to boot zone and initialize IP networking in exclusive-IP zone</para>
</entry>
</row><row><entry><para><literal>contract_event</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Used by contract file system</para>
</entry>
</row><row><entry><para><literal>contract_observer</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Contract observation regardless of UID</para>
</entry>
</row><row><entry><para><literal>file_chown</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>File ownership changes</para>
</entry>
</row><row><entry><para><literal>file_chown_self</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Owner/group changes for own files</para>
</entry>
</row><row><entry><para><literal>file_dac_execute</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Execute access regardless of mode/ACL</para>
</entry>
</row><row><entry><para><literal>file_dac_read</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Read access regardless of mode/ACL</para>
</entry>
</row><row><entry><para><literal>file_dac_search</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Search access regardless of mode/ACL</para>
</entry>
</row><row><entry><para><literal>file_dac_write</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Write access regardless of mode/ACL</para>
</entry>
</row><row><entry><para><literal>file_link_any</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Link access regardless of owner</para>
</entry>
</row><row><entry><para><literal>file_owner</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Other access regardless of owner</para>
</entry>
</row><row><entry><para><literal>file_setid</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Permission changes for <literal>setid</literal>, <literal>setgid</literal>, <literal>setuid</literal> files</para>
</entry>
</row><row><entry><para><literal>ipc_dac_read</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>IPC read access regardless of mode</para>
</entry>
</row><row><entry><para><literal>ipc_dac_owner</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>IPC write access regardless of mode</para>
</entry>
</row><row><entry><para><literal>ipc_owner</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>IPC other access regardless of mode</para>
</entry>
</row><row><entry><para><literal>net_icmpaccess</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>ICMP packet access: <citerefentry><refentrytitle>ping</refentrytitle><manvolnum>1M</manvolnum></citerefentry></para>
</entry>
</row><row><entry><para><literal>net_privaddr</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Binding to privileged ports</para>
</entry>
</row><row><entry><para><literal>proc_audit</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Generation of audit records</para>
</entry>
</row><row><entry><para><literal>proc_chroot</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Changing of <literal>root</literal> directory</para>
</entry>
</row><row><entry><para><literal>proc_info</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Process examination</para>
</entry>
</row><row><entry><para><literal>proc_lock_memory</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Locking memory; <citerefentry><refentrytitle>shmctl</refentrytitle><manvolnum>2</manvolnum></citerefentry>and <citerefentry><refentrytitle>mlock</refentrytitle><manvolnum>3C</manvolnum></citerefentry></para><para>If this privilege is assigned to a non-global zone by the system administrator,
consider also setting the <literal>zone.max-locked-memory</literal> resource
control to prevent the zone from locking all memory.</para>
</entry>
</row><row><entry><para><literal>proc_owner</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Process control regardless of owner</para>
</entry>
</row><row><entry><para><literal>proc_session</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Process control regardless of session</para>
</entry>
</row><row><entry><para><literal>proc_setid</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Setting of user/group IDs at will</para>
</entry>
</row><row><entry><para><literal>proc_taskid</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Assigning of task IDs to caller</para>
</entry>
</row><row><entry><para><literal>sys_acct</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Management of accounting</para>
</entry>
</row><row><entry><para><literal>sys_admin</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Simple system administration tasks</para>
</entry>
</row><row><entry><para><literal>sys_audit</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Management of auditing</para>
</entry>
</row><row><entry><para><literal>sys_nfs</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>NFS client support</para>
</entry>
</row><row><entry><para><literal>sys_resource</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Resource limit manipulation</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>The following table lists all of the Solaris Trusted Extensions privileges
and the status of each privilege with respect to zones. Optional privileges
are not part of the default set of privileges but can be specified through
the <literal>limitpriv</literal> property. </para><note><para>Trusted Solaris privileges are interpreted only if the system
is configured with Trusted Extensions.</para>
</note><table frame="all" id="gdoiu"><title>Status of Solaris Trusted Extensions
Privileges in Zones</title><tgroup cols="3" colsep="1" rowsep="1"><colspec colwidth="29*"/><colspec colwidth="28*"/><colspec colwidth="43*"/><thead><row><entry><para>Solaris Trusted Extensions Privilege</para>
</entry><entry><para>Status</para>
</entry><entry><para>Notes</para>
</entry>
</row>
</thead><tbody><row><entry><para><literal>sys_trans_label</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Translate labels not dominated by sensitivity label</para>
</entry>
</row><row><entry><para><literal>win_colormap</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Colormap restrictions override</para>
</entry>
</row><row><entry><para><literal>win_config</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Configure or destroy resources that are permanently retained by the
X server</para>
</entry>
</row><row><entry><para><literal>win_dac_read</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Read from window resource not owned by client's user ID</para>
</entry>
</row><row><entry><para><literal>win_dac_write</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Write to or create window resource not owned by client's user ID</para>
</entry>
</row><row><entry><para><literal>win_devices</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Perform operations on input devices.</para>
</entry>
</row><row><entry><para><literal>win_dga</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Use direct graphics access X protocol extensions; frame buffer privileges
needed</para>
</entry>
</row><row><entry><para><literal>win_downgrade_sl</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Change sensitivity label of window resource to new label dominated by
existing label</para>
</entry>
</row><row><entry><para><literal>win_fontpath</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Add an additional font path</para>
</entry>
</row><row><entry><para><literal>win_mac_read</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Read from window resource with a label that dominates the client's label</para>
</entry>
</row><row><entry><para><literal>win_mac_write</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Write to window resource with a label not equal to the client's label</para>
</entry>
</row><row><entry><para><literal>win_selection</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Request data moves without confirmer intervention</para>
</entry>
</row><row><entry><para><literal>win_upgrade_sl</literal></para>
</entry><entry><para>Optional</para>
</entry><entry><para>Change sensitivity label of window resource to a new label not dominated
by existing label</para>
</entry>
</row><row><entry><para><literal>net_bindmlp</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Allows binding to a multilevel port (MLP)</para>
</entry>
</row><row><entry><para><literal>net_mac_aware</literal></para>
</entry><entry><para>Default</para>
</entry><entry><para>Allows reading down through NFS</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>To alter privileges in a non-global zone configuration, see <olink targetptr="z.conf.start-85" remap="internal">Configuring, Verifying, and Committing a Zone</olink></para><para>To inspect privilege sets, see <olink targetptr="z.admin.task-2" remap="internal">Using
the ppriv Utility</olink>. For more information about privileges, see the <olink targetdoc="group-refman" targetptr="ppriv-1" remap="external"><citerefentry><refentrytitle>ppriv</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> man page and <citetitle>System
Administration Guide: Security Services</citetitle>.</para>
</sect1><sect1 id="z.admin.ov-29"><title>Using IP Security Architecture in Zones</title><para>The
Internet Protocol Security Architecture (IPsec), which provides IP datagram
protection, is described in <olink targetdoc="sysadv3" targetptr="ipsec-ov-1" remap="external">Chapter 19, <citetitle remap="chapter">IP Security Architecture (Overview),</citetitle> in <citetitle remap="book">System Administration Guide: IP Services</citetitle></olink>.
The Internet Key Exchange (IKE) protocol is used to manage the required keying
material for authentication and encryption automatically.</para><para>For more information, see the <olink targetdoc="group-refman" targetptr="ipsecconf-1m" remap="external"><citerefentry><refentrytitle>ipsecconf</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> and <olink targetdoc="group-refman" targetptr="ipseckey-1m" remap="external"><citerefentry><refentrytitle>ipseckey</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man pages.</para><sect2 id="geodp"><title>IP Security Architecture in Shared-IP Zones</title><para>IPsec can be used in the global zone. However, IPsec in a non-global
zone cannot use IKE. Therefore, you must manage the IPsec keys and policy
for the non-global zones by running the <command>ipseckey</command> and <command>ipsecconf</command> commands from the global zone. Use the source address
that corresponds to the non-global zone that you are configuring.</para>
</sect2><sect2 id="geodx"><title>IP Security Architecture in Exclusive-IP Zones</title><para>IPsec can be used in exclusive-IP zones.</para>
</sect2>
</sect1><sect1 id="z.admin.ov-20"><title>Using Solaris Auditing in Zones</title><para>Solaris auditing is described in <olink targetdoc="sysadv6" targetptr="auditov-1" remap="external">Chapter 28, <citetitle remap="chapter">Solaris Auditing (Overview),</citetitle> in <citetitle remap="book">System Administration Guide: Security Services</citetitle></olink>. For zones considerations associated
with auditing, see the following sections:</para><itemizedlist><listitem><para><olink targetdoc="sysadv6" targetptr="auditplan-1" remap="external">Chapter 29, <citetitle remap="chapter">Planning for Solaris Auditing,</citetitle> in <citetitle remap="book">System Administration Guide: Security Services</citetitle></olink></para>
</listitem><listitem><para><olink targetdoc="sysadv6" targetptr="auditref-28" remap="external"><citetitle remap="section">Auditing and Solaris Zones</citetitle> in <citetitle remap="book">System Administration Guide: Security Services</citetitle></olink></para>
</listitem>
</itemizedlist><para>An audit record describes an event, such as logging in to a system or
writing to a file. The record is composed of tokens, which are sets of audit
data. By using the <literal>zonename</literal> token, you can configure Solaris
auditing to identify audit events by zone. Use of the <literal>zonename</literal> token
allows you to produce the following information:</para><itemizedlist><listitem><para>Audit records that are marked with the name of the zone that
generated the record</para>
</listitem><listitem><para>An audit log for a specific zone that the global administrator
can make available to the zone administrator</para>
</listitem>
</itemizedlist><sect2 id="z.admin.ov-27"><title>Configuring Audit in the Global Zone</title><para>Solaris audit trails are configured in the global zone. Audit policy
is set in the global zone and applies to processes in all zones. The audit
records can be marked with the name of the zone in which the event occurred.
To include zone names in audit records, you must edit the <filename>/etc/security/audit_startup</filename> file before you install any non-global zones. The zone name selection
is case-sensitive.</para><para>To configure auditing in the global zone to include all zone audit records,
add this line to the <filename>/etc/security/audit_startup</filename> file:</para><screen>/usr/sbin/auditconfig -setpolicy +zonename</screen><para>As the global administrator in the global zone, execute the <command>auditconfig</command> utility:</para><screen>global# <userinput>auditconfig -setpolicy +zonename</userinput></screen><para>For additional information, see the <olink targetdoc="group-refman" targetptr="audit-startup-1m" remap="external"><citerefentry><refentrytitle>audit_startup</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> and <olink targetdoc="group-refman" targetptr="auditconfig-1m" remap="external"><citerefentry><refentrytitle>auditconfig</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man pages and &ldquo;Configuring Audit Files (Task
Map)&rdquo; in <citetitle>System Administration Guide: Security Services</citetitle>.</para>
</sect2><sect2 id="z.admin.ov-30"><title>Configuring User Audit Characteristics in
a Non-Global Zone</title><para>When a non-global zone is installed, the <command>audit_control</command> file
and the <command>audit_user</command> file in the global zone are copied to
the zone's <filename>/etc/security</filename> directory. These files might
require modification to reflect the zone's audit needs.</para><para>For example, each zone can be configured to audit some users differently
from others. To apply different per-user preselection criteria, both the <filename>audit_control</filename> and the <command>audit_user</command> files must
be edited. The <command>audit_user</command> file in the non-global zone might
also require revisions to reflect the user base for the zone if necessary.
Because each zone can be configured differently with regard to auditing users,
it is possible for the  <command>audit_user</command> file to be empty.</para><para>For additional information, see the <olink targetdoc="group-refman" targetptr="audit-control-4" remap="external"><citerefentry><refentrytitle>audit_control</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> and <olink targetdoc="group-refman" targetptr="audit-user-4" remap="external"><citerefentry><refentrytitle>audit_user</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> man pages.</para>
</sect2><sect2 id="z.admin.ov-28"><title>Providing Audit Records for a Specific Non-Global
Zone</title><para>By including the <literal>zonename</literal> token as described in <olink targetptr="z.admin.ov-27" remap="internal">Configuring Audit in the Global Zone</olink>, Solaris
audit records can be categorized by zone. Records from different zones can
then be collected by using the <command>auditreduce</command> command to create
logs for a specific zone.</para><para>For more information, see the <olink targetdoc="group-refman" targetptr="audit-startup-1m" remap="external"><citerefentry><refentrytitle>audit_startup</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> and <olink targetdoc="group-refman" targetptr="auditreduce-1m" remap="external"><citerefentry><refentrytitle>auditreduce</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man pages.</para>
</sect2>
</sect1><sect1 id="z.admin.ov-21"><title>Core Files in Zones</title><para>The <command>coreadm</command> command is used to specify the name and
location of core files produced by abnormally terminating processes. Core
file paths that include the <replaceable>zonename</replaceable> of the zone
in which the process executed can be produced by specifying the <literal>%z</literal> variable.
The path name is relative to a zone's root directory.</para><para>For more information, see the <olink targetdoc="group-refman" targetptr="coreadm-1m" remap="external"><citerefentry><refentrytitle>coreadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> and <olink targetdoc="group-refman" targetptr="core-4" remap="external"><citerefentry><refentrytitle>core</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink> man pages.</para>
</sect1><sect1 id="gcogk"><title>Running DTrace in a Non-Global Zone</title><para>DTrace programs
that only require the <literal>dtrace_proc</literal> and <literal>dtrace_user</literal> privileges
can be run in a non-global zone. To add these privileges to the set of privileges
available in the non-global zone, use the <command>zonecfg</command> <literal>limitpriv</literal> property. For instructions, see <olink targetptr="gelxd" remap="internal">How to
Use DTrace</olink>.</para><para>The providers supported through <literal>dtrace_proc</literal> are <literal>fasttrap</literal> and <literal>pid</literal>. The providers supported through <literal>dtrace_user</literal> are <literal>profile</literal> and <literal>syscall</literal>.
DTrace providers and actions are limited in scope to the zone.</para><para>Also see <olink targetptr="z.admin.ov-18" remap="internal">Privileges in a Non-Global
Zone</olink> for more information.</para>
</sect1><sect1 id="gbrho"><title>About Backing Up a Solaris System With Zones Installed</title><para>You can perform backups in individual non-global zones, or back up the
entire system from the global zone.</para><sect2 id="gbrgy"><title>Backing Up Loopback File System Directories</title><para>Because many non-global zones share files with the global zone through
the use of loopback file system read-only mounts (usually <literal>/usr</literal>, <literal>/lib</literal>, <literal>/sbin</literal>, and <literal>/platform</literal>),
you must use a global zone backup method to back up <literal>lofs</literal> directories.</para><caution><para>Do not back up the <literal>lofs</literal> file systems in
non-global zones. An attempt by the non-global administrator to restore <literal>lofs</literal> file systems from a non-global zone could cause a serious problem.</para>
</caution>
</sect2><sect2 id="gbrhl"><title>Backing Up Your System From the Global Zone</title><para>You might choose to perform your backups from the global zone in the
following cases:</para><itemizedlist><listitem><para>You want to back up the configurations of your non-global
zones as well as the application data.</para>
</listitem><listitem><para>Your primary concern is the ability to recover from a disaster.
If you need to restore everything or almost everything on your system, including
the root file systems of your zones and their configuration data as well as
the data in your global zone, backups should take place in the global zone.</para>
</listitem><listitem><para>You want to use the <command>ufsdump</command> command to
perform a data backup. Because importing a physical disk device into a non-global
zone would change the security profile of the zone, <command>ufsdump</command> should
only be used from the global zone.</para>
</listitem><listitem><para>You have commercial network backup software.</para><note><para>Your network backup software should be configured to skip all
inherited <literal>lofs</literal> file systems if possible. The backup should
be performed when the zone and its applications have quiesced the data to
be backed up.</para>
</note>
</listitem>
</itemizedlist>
</sect2><sect2 id="gbrhn"><title>Backing Up Individual Non-Global Zones on Your System</title><para>You might decide to perform backups within the non-global zones in the
following cases.</para><itemizedlist><listitem><para>The non-global zone administrator needs the ability to recover
from less serious failures or to restore application or user data specific
to a zone.</para>
</listitem><listitem><para>You want to use programs that back up on a file-by-file basis,
such as <command>tar</command> or <command>cpio</command>. See the <olink targetdoc="group-refman" targetptr="tar-1" remap="external"><citerefentry><refentrytitle>tar</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> and <olink targetdoc="group-refman" targetptr="cpio-1" remap="external"><citerefentry><refentrytitle>cpio</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink> man pages.</para>
</listitem><listitem><para>You use the backup software of a particular application or
service running in a zone. It might be difficult to execute the backup software
from the global zone because application environments, such as directory path
and installed software, would be different between the global zone and the
non-global zone.</para><para>If the application can perform a snapshot on
its own backup schedule in each non-global zone and store those backups in
a writable directory exported from the global zone, the global zone administrator
can pick up those individual backups as part of the backup strategy from the
global zone.</para>
</listitem>
</itemizedlist>
</sect2>
</sect1><sect1 id="gbrhi"><title>Determining What to Back Up in Non-Global Zones</title><para>You can back up everything in the non-global zone, or, because a zone's
configuration changes less frequently, you can perform backups of the application
data only.</para><sect2 id="gbrid"><title>Backing Up Application Data Only</title><para>If application data is kept in a particular part of the file system,
you might decide to perform regular backups of this data only. The zone's
root file system might not have to be backed up as often because it changes
less frequently.</para><para>You will have to determine where the application places its files. Locations
where files can be stored include the following:</para><itemizedlist><listitem><para>Users' home directories</para>
</listitem><listitem><para><literal>/etc</literal> for configuration data files</para>
</listitem><listitem><para><literal>/var</literal></para>
</listitem>
</itemizedlist><para>Assuming the application administrator knows where the data is stored,
it might be possible to create a system in which a per-zone writable directory
is made available to each zone. Each zone can then store its own backups,
and the global administrator can make this location one of the places on the
system to back up.</para>
</sect2><sect2 id="gbrhh"><title>General Database Backup Operations</title><para>If the database application data is not under its own directory, the
following rules apply:</para><itemizedlist><listitem><para>Ensure that the databases are in a consistent state first.</para><para>Databases must be quiesced because they have internal buffers to flush
to disk. Make sure that the databases in non-global zones have come down before
starting the backup from the global zone.</para>
</listitem><listitem><para>Within each zone, use file system features to make a snapshot
of the data, then back up the snapshots directly from the global zone.</para><para>This process will minimize elapsed time for the backup window and remove
the need for backup clients/modules in all of the zones.</para>
</listitem>
</itemizedlist>
</sect2><sect2 id="gbrja"><title>Tape Backups</title><para>Each non-global zone can take a snapshot of its private file systems
when it is convenient for that zone and the application has been briefly quiesced.
Later, the global zone can back up each of the snapshots and put them on tape
after the application is back in service.</para><para>This method has the following advantages:</para><itemizedlist><listitem><para>Fewer tape devices are needed.</para>
</listitem><listitem><para>There is no need for coordination between the non-global zones.</para>
</listitem><listitem><para>There is no need to assign devices directly to zones, which
improves security.</para>
</listitem><listitem><para>Generally, this method keeps system management in the global
zone, which is preferred.</para>
</listitem>
</itemizedlist>
</sect2>
</sect1><sect1 id="gbrip"><title>About Restoring Non-Global Zones</title><para>In the case of a restore where the backups were done from the global
zone, the global administrator can reinstall the affected zones and then restore
that zone's files. Note that this assumes the following:</para><itemizedlist><listitem><para>The zone being restored has the same configuration as it did
when the backup was done.</para>
</listitem><listitem><para>The global zone has not been upgraded or patched between the
time when the backup was done and the time when the zone is restored.</para>
</listitem>
</itemizedlist><para>Otherwise, the restore could overwrite some files that should be merged
by hand.</para><para>For example, you might need to merge files by hand if a global zone
has been patched after the backup, but prior to the restore of the non-global
zone. In this case, you  would have to be careful when restoring a zone's
files that were backed up since a backed up file might not be compatible with
the newly installed zone that was built after the patches were applied to
the global zone. In this case, you would have to examine the files individually
and compare them to the copies in the newly installed zone. In most cases,
you will find that the file can be copied directly in, but in some cases,
you must merge the changes originally made to the file into the newly installed
or patched copy in the zone.</para><note><para>If all file systems in the global zone are lost, restoring everything
in the global zone restores the non-global zones as well, as long as the respective
root file systems of the non-global zones were included in the backup.</para>
</note>
</sect1><sect1 id="z.admin.ov-32"><title>Commands Used on a Solaris System With Zones
Installed</title><para>The commands
identified in <olink targetptr="z.admin.ov-tbl-33" remap="internal">Table&nbsp;26&ndash;3</olink> provide
the primary administrative interface to the zones facility.</para><table frame="all" id="z.admin.ov-tbl-33"><title>Commands Used to Administer
Zones</title><tgroup cols="2" colsep="1" rowsep="1"><colspec colwidth="30*"/><colspec colwidth="70*"/><thead><row><entry><para>Command Reference</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><olink targetdoc="group-refman" targetptr="zlogin-1" remap="external"><citerefentry><refentrytitle>zlogin</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para>Log in to a non-global zone</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="zonename-1" remap="external"><citerefentry><refentrytitle>zonename</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para>Prints the name of the current zone</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="zoneadm-1m" remap="external"><citerefentry><refentrytitle>zoneadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>Administers zones on a system</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="zonecfg-1m" remap="external"><citerefentry><refentrytitle>zonecfg</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>Used to set up a zone configuration</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="getzoneid-3c" remap="external"><citerefentry><refentrytitle>getzoneid</refentrytitle><manvolnum>3C</manvolnum></citerefentry></olink></para>
</entry><entry><para>Used to map between zone ID and name</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="zones-5" remap="external"><citerefentry><refentrytitle>zones</refentrytitle><manvolnum>5</manvolnum></citerefentry></olink></para>
</entry><entry><para>Provides description of zones facility</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="zcons-7d" remap="external"><citerefentry><refentrytitle>zcons</refentrytitle><manvolnum>7D</manvolnum></citerefentry></olink></para>
</entry><entry><para>Zone console device driver</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>The <command>zoneadmd</command> daemon is the primary process for managing
the zone's virtual platform. The man page for the <command>zoneadmd</command> daemon
is <citerefentry><refentrytitle>zoneadmd</refentrytitle><manvolnum>1M</manvolnum></citerefentry>. The daemon does not constitute a programming interface.</para><para>The commands in the next table are used with the resource capping daemon.</para><table frame="all" id="gekhm"><title>Commands Used With <command>rcapd</command></title><tgroup cols="2" colsep="1" rowsep="1"><colspec colwidth="30*"/><colspec colwidth="70*"/><thead><row><entry><para>Command Reference</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><olink targetdoc="group-refman" targetptr="rcapstat-1" remap="external"><citerefentry><refentrytitle>rcapstat</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para>Monitors the resource utilization of capped projects.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="rcapadm-1m" remap="external"><citerefentry><refentrytitle>rcapadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>Configures the resource capping daemon, displays the current status
of the resource capping daemon if it has been configured, and enables or disables
resource capping</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="rcapd-1m" remap="external"><citerefentry><refentrytitle>rcapd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>The resource capping daemon.</para>
</entry>
</row>
</tbody>
</tgroup>
</table><para>The commands identified in the following table have been modified for
use on a Solaris system with zones installed. These commands have options
that are specific to zones or present information differently. The commands
are listed by man page section.</para><table frame="all" id="z.admin.ov-tbl-34"><title>Commands Modified for Use
on a Solaris System With Zones Installed</title><tgroup cols="2" colsep="1" rowsep="1"><colspec colwidth="30*"/><colspec colwidth="70*"/><thead><row><entry><para>Command Reference</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><olink targetdoc="group-refman" targetptr="ipcrm-1" remap="external"><citerefentry><refentrytitle>ipcrm</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <option>z</option> <replaceable>zone</replaceable> option. This
option is only useful when the command is executed in the global zone.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="ipcs-1" remap="external"><citerefentry><refentrytitle>ipcs</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <option>z</option> <replaceable>zone</replaceable> option. This
option is only useful when the command is executed in the global zone.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="pgrep-1" remap="external"><citerefentry><refentrytitle>pgrep</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <option>z</option> <replaceable>zoneidlist</replaceable> option.
This option is only useful when the command is executed in the global zone.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="ppriv-1" remap="external"><citerefentry><refentrytitle>ppriv</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added the expression <literal>zone</literal> for use with the <option>l</option> option
to list all privileges available in the current zone. Also use the option <option>v</option> after <literal>zone</literal> to obtain verbose output.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="priocntl-1" remap="external"><citerefentry><refentrytitle>priocntl</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para>Zone ID can be used in <replaceable>idlist</replaceable> and <option>i</option> <replaceable>idtype</replaceable> to specify processes. You can use the <command>priocntl</command> <option>i</option> <replaceable>zoneid</replaceable> command to move running processes
into a different scheduling class in a non-global zone.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="proc-1" remap="external"><citerefentry><refentrytitle>proc</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <option>z</option> <replaceable>zone</replaceable> option to <literal>ptree</literal> only. This option is only useful when the command is executed
in the global zone.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="ps-1" remap="external"><citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <replaceable>zonename</replaceable> and <replaceable>zoneid</replaceable> to
list of recognized <literal>format</literal> names used with the <option>o</option> option.</para><para>Added <option>z</option> <replaceable>zonelist</replaceable> to list
only processes in the specified zones. Zones can be specified either by zone
name or by zone ID. This option is only useful when the command is executed
in the global zone.</para><para>Added <option>Z</option> to print the name of the zone associated with
the process. The name is printed under an additional column header, <literal>ZONE</literal>.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="renice-1" remap="external"><citerefentry><refentrytitle>renice</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <replaceable>zoneid</replaceable> to list of valid arguments used
with the <option>i</option> option.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="sar-1" remap="external"><citerefentry><refentrytitle>sar</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para>If executed in a non-global zone in which the pools facility is enabled,
the <option>b</option>, <option>c</option> <option>g</option>, <option>m</option>, <option>p</option>, <option>u</option>, <option>w</option>, and <option>y</option> options
display values only for processors that are in the processor set of the pool
to which the zone is bound.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="auditconfig-1m" remap="external"><citerefentry><refentrytitle>auditconfig</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <literal>zonename</literal> token.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="auditreduce-1m" remap="external"><citerefentry><refentrytitle>auditreduce</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <option>z</option> <replaceable>zone-name</replaceable> option.
Added ability to get an audit log of a zone.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="coreadm-1m" remap="external"><citerefentry><refentrytitle>coreadm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added variable <literal>%z</literal> to identify the zone in which process
executed.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="df-1m" remap="external"><citerefentry><refentrytitle>df</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <option>Z</option> option to display mounts in all visible zones.
This option has no effect in a non-global zone.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="ifconfig-1m" remap="external"><citerefentry><refentrytitle>ifconfig</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <literal>zone</literal> option for global zone use (the default),
and <option>zone</option> <replaceable>zonename</replaceable> for non-global
zone use.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="iostat-1m" remap="external"><citerefentry><refentrytitle>iostat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>If executed in a non-global zone in which the pools facility is enabled,
information is provided only for those processors that are in the processor
set of the pool to which the zone is bound.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="kstat-1m" remap="external"><citerefentry><refentrytitle>kstat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>If executed in the global zone, <literal>kstat</literal>s are displayed
for all zones. If executed in a non-global zone, only <literal>kstat</literal>s
with a matching <replaceable>zoneid</replaceable> are displayed.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="mpstat-1m" remap="external"><citerefentry><refentrytitle>mpstat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>If executed in a non-global zone in which the pools facility is enabled,
command only displays lines for the processors that are in the processor set
of the pool to which the zone is bound.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="ndd-1m" remap="external"><citerefentry><refentrytitle>ndd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>When used in the global zone, displays information for all zones. <literal>ndd</literal> on the TCP/IP modules in an exclusive-IP zone only displays
information for that zone.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="netstat-1m" remap="external"><citerefentry><refentrytitle>netstat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>Displays information for the current zone only.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="nfsstat-1m" remap="external"><citerefentry><refentrytitle>nfsstat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>Displays statistics for the current zone only.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="poolbind-1m" remap="external"><citerefentry><refentrytitle>poolbind</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <replaceable>zoneid</replaceable> list. Also see <olink targetptr="rmpool-114" remap="internal">Resource Pools Used in Zones</olink> for information
about using zones with resource pools.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="prstat-1m" remap="external"><citerefentry><refentrytitle>prstat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <option>z</option> <replaceable>zoneidlist</replaceable> option.
Also added <option>Z</option> option.</para><para> If executed in a non-global zone in which the pools facility is enabled,
the percentage of recent CPU time used by the process is displayed only for
the processors in the processor set of the pool to which the zone is bound.</para><para>Output of the <option>a</option>, <option>t</option>, <option>T</option>, <option>J</option>, and <option>Z</option> options displays a SWAP instead of a SIZE
column. The swap reported is the total swap consumed by the zone's processes
and <literal>tmpfs</literal> mounts. This value assists in monitoring the
swap reserved by each zone, which can be used to choose a reasonable <literal>zone.max-swap</literal> setting.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="psrinfo-1m" remap="external"><citerefentry><refentrytitle>psrinfo</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>If executed in a non-global zone, only information about the processors
visible to the zone is displayed.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="traceroute-1m" remap="external"><citerefentry><refentrytitle>traceroute</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>Usage change. When specified from within a non-global zone, the <option>F</option> option
has no effect because the &ldquo;don't fragment&rdquo; bit is always set.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="vmstat-1m" remap="external"><citerefentry><refentrytitle>vmstat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para>When executed in a non-global zone in which the pools facility is enabled,
statistics are reported only for the processors in the processor set of the
pool to which the zone is bound. Applies to output from the <option>p</option> option
and the <literal>page</literal>, <literal>faults</literal>, and <literal>cpu</literal> report
fields.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="auditon-2" remap="external"><citerefentry><refentrytitle>auditon</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <literal>AUDIT_ZONENAME</literal> to generate a zone ID token
with each audit record.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="priocntl-2" remap="external"><citerefentry><refentrytitle>priocntl</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <literal>P_ZONEID</literal> <replaceable>id</replaceable> argument.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="processor-info-2" remap="external"><citerefentry><refentrytitle>processor_info</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink></para>
</entry><entry><para>If the caller is in a non-global zone and the pools facility is enabled,
but the processor is not in the processor set of the pool to which the zone
is bound, an error is returned.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="p-online-2" remap="external"><citerefentry><refentrytitle>p_online</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink></para>
</entry><entry><para>If the caller is in a non-global zone and the pools facility is enabled,
but the processor is not in the processor set of the pool to which the zone
is bound, an error is returned.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="pset-bind-2" remap="external"><citerefentry><refentrytitle>pset_bind</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <literal>P_ZONEID</literal> as <replaceable>idtype</replaceable>.
Added zone to possible choices for <literal>P_MYID</literal> specification.
Added <literal>P_ZONEID</literal> to valid <replaceable>idtype</replaceable> list
in <literal>EINVAL</literal> error description.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="pset-info-2" remap="external"><citerefentry><refentrytitle>pset_info</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink></para>
</entry><entry><para>If the caller is in a non-global zone and the pools facility is enabled,
but the processor is not in the processor set of the pool to which the zone
is bound, an error is returned.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="pset-list-2" remap="external"><citerefentry><refentrytitle>pset_list</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink></para>
</entry><entry><para>If the caller is in a non-global zone and the pools facility is enabled,
but the processor is not in the processor set of the pool to which the zone
is bound, an error is returned.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="pset-setattr-2" remap="external"><citerefentry><refentrytitle>pset_setattr</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink></para>
</entry><entry><para>If the caller is in a non-global zone and the pools facility is enabled,
but the processor is not in the processor set of the pool to which the zone
is bound, an error is returned.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="sysinfo-2" remap="external"><citerefentry><refentrytitle>sysinfo</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink></para>
</entry><entry><para>Changed <literal>PRIV_SYS_CONFIG</literal> to <literal>PRIV_SYS_ADMIN</literal>.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="umount-2" remap="external"><citerefentry><refentrytitle>umount</refentrytitle><manvolnum>2</manvolnum></citerefentry></olink></para>
</entry><entry><para><literal>ENOENT</literal> is returned if file pointed to by <replaceable>file</replaceable> is not an absolute path.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="getloadavg-3c" remap="external"><citerefentry><refentrytitle>getloadavg</refentrytitle><manvolnum>3C</manvolnum></citerefentry></olink></para>
</entry><entry><para>If the caller is in a non-global zone and the pools facility is enabled,
the behavior is equivalent to calling with a <literal>psetid</literal> of <literal>PS_MYID</literal>.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="getpriority-3c" remap="external"><citerefentry><refentrytitle>getpriority</refentrytitle><manvolnum>3C</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added zone IDs to target processes that can be specified. Added zone
ID to <literal>EINVAL</literal> error description.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="priv-str-to-set-3c" remap="external"><citerefentry><refentrytitle>priv_str_to_set</refentrytitle><manvolnum>3C</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added &ldquo;zone&rdquo; string for the set of all privileges available
within the caller's zone.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="pset-getloadavg-3c" remap="external"><citerefentry><refentrytitle>pset_getloadavg</refentrytitle><manvolnum>3C</manvolnum></citerefentry></olink></para>
</entry><entry><para>If the caller is in a non-global zone and the pools facility is enabled,
but the processor is not in the processor set of the pool to which the zone
is bound, an error is returned.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="sysconf-3c" remap="external"><citerefentry><refentrytitle>sysconf</refentrytitle><manvolnum>3C</manvolnum></citerefentry></olink></para>
</entry><entry><para>If the caller is in a non-global zone and the pools facility enabled, <literal>sysconf(_SC_NPROCESSORS_CONF)</literal> and <literal>sysconf(_SC_NPROCESSORS_ONLN)</literal> return the number of total and online processors in the processor
set of the pool to which the zone is bound.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="ucred-get-3c" remap="external"><citerefentry><refentrytitle>ucred_get</refentrytitle><manvolnum>3C</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <literal>ucred_getzoneid()</literal> function, which returns the
zone ID of the process or <literal>-1</literal> if the zone ID is not available.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="core-4" remap="external"><citerefentry><refentrytitle>core</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <literal>n_type: NT_ZONENAME</literal>. This entry contains a
string that describes the name of the zone in which the process was running.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="pkginfo-4" remap="external"><citerefentry><refentrytitle>pkginfo</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink></para>
</entry><entry><para>Now provides optional parameters and an environment variable in support
of zones.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="proc-4" remap="external"><citerefentry><refentrytitle>proc</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added capability to obtain information on processes running in zones.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="audit-syslog-5" remap="external"><citerefentry><refentrytitle>audit_syslog</refentrytitle><manvolnum>5</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <literal>in&lt;</literal><replaceable>zone name</replaceable><literal>></literal> field that is used if the <literal>zonename</literal> audit policy
is set.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="privileges-5" remap="external"><citerefentry><refentrytitle>privileges</refentrytitle><manvolnum>5</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <literal>PRIV_PROC_ZONE</literal>, which allows a process to trace
or send signals to processes in other zones. See zones(5). </para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="if-tcp-7p" remap="external"><citerefentry><refentrytitle>if_tcp</refentrytitle><manvolnum>7P</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added zone <literal>ioctl()</literal> calls.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="cmn-err-9f" remap="external"><citerefentry><refentrytitle>cmn_err</refentrytitle><manvolnum>9F</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added zone parameter.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="ddi-cred-9f" remap="external"><citerefentry><refentrytitle>ddi_cred</refentrytitle><manvolnum>9F</manvolnum></citerefentry></olink></para>
</entry><entry><para>Added <literal>crgetzoneid()</literal>, which returns the zone ID from
the user credential pointed to by <literal>cr</literal>.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect1>
</chapter>