<?Pub UDT _bookmark _target?><?Pub CX solbook(?><chapter id="rbacref-1"><?Pub Tag atict:info tracking="off" ref="0"?><?Pub Tag atict:user
user="sharonr" fullname="Sharon Veach"?><title>Role-Based Access Control (Reference)</title><highlights><itemizedlist><para>This chapter provides reference material about RBAC. The following is
a list of the reference information in this chapter:</para><listitem><para><olink targetptr="rbacref-26" remap="internal">Contents of Rights Profiles</olink></para>
</listitem><listitem><para><olink targetptr="rbacref-28" remap="internal">Authorization Naming and Delegation</olink></para>
</listitem><listitem><para><olink targetptr="rbacref-6" remap="internal">Databases That Support RBAC</olink></para>
</listitem><listitem><para><olink targetptr="rbacref-22" remap="internal">RBAC Commands</olink></para>
</listitem>
</itemizedlist><para>For information on using RBAC, see <olink targetptr="rbactask-1" remap="internal">Chapter&nbsp;9,
Using Role-Based Access Control (Tasks)</olink>. For overview information,
see <olink targetptr="rbac-1" remap="internal">Role-Based Access Control (Overview)</olink>.</para>
</highlights><sect1 id="rbacref-26"><title>Contents of Rights Profiles</title><para><indexterm><primary>rights profiles</primary><secondary>major rights profiles descriptions</secondary></indexterm><indexterm><primary>rights profiles</primary><secondary>contents of typical</secondary></indexterm>This section describes
some typical rights profiles. Rights profiles can include authorizations,
commands with security attributes, and supplementary rights profiles. The
rights profiles are listed from most to least powerful. For suggestions on
how to distribute rights profiles to roles at your site, see <olink targetptr="rbactask-16" remap="internal">How to Plan Your RBAC Implementation</olink>.</para><itemizedlist><listitem><para><emphasis role="strong">Primary Administrator rights profile &ndash;</emphasis> Provides the capabilities of superuser in one profile.</para>
</listitem><listitem><para><emphasis role="strong">System Administrator rights profile &ndash;</emphasis> Provides a profile that can do most tasks that are not connected
with security. This profile includes several other profiles to create a powerful
role.</para>
</listitem><listitem><para><emphasis role="strong">Operator rights profile &ndash;</emphasis> Provides
limited capabilities to manage files and offline media. This profile includes
supplementary rights profiles to create a simple role.</para>
</listitem><listitem><para><emphasis role="strong">Printer Management rights profile &ndash;</emphasis> Provides a limited number of commands and authorizations to handle
printing. This profile is one of several profiles that cover a single area
of administration.</para>
</listitem><listitem><para><emphasis role="strong">Basic Solaris User rights profile &ndash;</emphasis> Enables users to use the system within the bounds of security
policy. This profile is listed by default in the <filename>policy.conf</filename> file.</para>
</listitem><listitem><para><emphasis role="strong">All rights profile &ndash;</emphasis> For
roles, provides access to commands that do not have security attributes.</para>
</listitem><listitem><para><emphasis role="strong">Console User
rights profile &ndash;</emphasis> For the workstation owner, provides access
to authorizations, commands, and actions that you want to reserve for the
person who is seated at the computer.</para>
</listitem>
</itemizedlist><para>Each rights profile has an associated help file. The help files are
in HTML and are customizable. The files reside in the <filename>/usr/lib/help/profiles/locale/C</filename> directory.</para><sect2 id="rbac-2"><title>Primary Administrator Rights Profile</title><para>The Primary Administrator rights profile is assigned to the most powerful
role on the system. The role that includes the Primary Administrator rights
profile has superuser capabilities.</para><itemizedlist><listitem><para>The <literal>solaris.*</literal> authorization effectively
assigns all of the authorizations that are provided by the Solaris software.</para>
</listitem><listitem><para>The <literal>solaris.grant</literal> authorization lets a
role assign any authorization to any rights profile, role, or user.</para>
</listitem><listitem><para>The command assignment <literal>*:uid=0;gid=0</literal> provides
the ability to run any command with <literal>UID=0</literal> and <literal>GID=0</literal>.</para>
</listitem>
</itemizedlist><para>You can customize the help file <filename>RtPriAdmin.html</filename> for
your site, if necessary. Help files are stored in the <filename>/usr/lib/help/profiles/locale/C</filename> directory.</para><para><indexterm><primary>Primary Administrator (RBAC)</primary><secondary>rights profile contents</secondary></indexterm>Note also that if the Primary Administrator
rights profile is not consistent with a site's security policy, the profile
can be modified or not assigned at all. However, the security capabilities
in the Primary Administrator rights profile would need to be handled in one
or more other rights profiles. Those other rights profiles would then be assigned
to roles.</para><table frame="topbot" id="rbac-tbl-3"><title>Contents of Primary Administrator
Rights Profile</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="44.24*"/><colspec colname="colspec1" colwidth="55.76*"/><thead><row rowsep="1"><entry><para>Purpose</para>
</entry><entry><para>Contents</para>
</entry>
</row>
</thead><tbody><row><entry><para>To perform all administrative tasks</para>
</entry><entry><para><emphasis role="strong">Commands</emphasis>: <literal>*:uid=0;gid=0</literal></para><para><emphasis role="strong">Authorizations</emphasis>: <literal>solaris.*</literal>, <literal>solaris.grant</literal></para><para><emphasis role="strong">Help File</emphasis>: <filename>RtPriAdmin.html</filename></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="rbacref-23"><title>System Administrator Rights Profile</title><para><indexterm><primary>System Administrator (RBAC)</primary><secondary>rights profile</secondary></indexterm>The System Administrator rights profile is
intended for the System Administrator role. Because the System Administrator
does not have the broad capabilities of the Primary Administrator, no wildcards
are used. Instead, this profile is a set of discrete, supplementary administrative
rights profiles that do not deal with security. The commands with security
attributes from one of the supplementary rights profiles are shown.</para><para>Note that the All rights profile is assigned at the end of the list
of supplementary rights profiles.</para><table frame="topbot" id="rbac-tbl-5"><title>Contents of System Administrator
Rights Profile</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="27.07*"/><colspec colname="colspec1" colwidth="72.93*"/><thead><row rowsep="1"><entry><para>Purpose</para>
</entry><entry><para>Contents</para>
</entry>
</row>
</thead><tbody><row><entry><para>To perform most nonsecurity administrative tasks</para>
</entry><entry><para><emphasis role="strong">Supplementary rights profiles</emphasis>: Audit
Review, Printer Management, Cron Management, Device Management, File System
Management, Mail Management, Maintenance and Repair, Media Backup, Media Restore,
Name Service Management, Network Management, Object Access Management, Process
Management, Software Installation, Project Management, User Management, All</para><para><emphasis role="strong">Help File</emphasis>: <filename>RtSysAdmin.html</filename></para>
</entry>
</row><row><entry><para>Commands from one of the supplementary profiles</para>
</entry><entry><para><emphasis role="strong">Object Access Management rights profile</emphasis>,
 <literal>solaris</literal> policy:  <command>/usr/bin/chgrp:privs=file_chown</command>, <command>/usr/bin/chmod:privs=file_chown</command>, <command>/usr/bin/chown:privs=file_chown</command>, <command>/usr/bin/setfacl:privs=file_chown</command></para><para><literal>suser</literal> policy:  <command>/usr/bin/chgrp:euid=0</command>,
 <command>/usr/bin/chmod:euid=0</command>, <command>/usr/bin/chown:euid=0</command>, <command>/usr/bin/getfacl:euid=0</command>, <command>/usr/bin/setfacl:euid=0</command></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="rbacref-24"><title>Operator Rights Profile</title><para><indexterm><primary>Operator (RBAC)</primary><secondary>contents of rights profile</secondary></indexterm>The Operator rights profile is a less
powerful profile that provides the ability to do backups and printer maintenance.
The ability to restore files has more security consequences. Therefore, in
this profile, the default is to not include the ability to restore files.</para><table frame="topbot" id="rbac-tbl-6"><title>Contents of Operator Rights Profile</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="34.95*"/><colspec colname="colspec1" colwidth="65.05*"/><thead><row rowsep="1"><entry><para>Purpose</para>
</entry><entry><para>Contents</para>
</entry>
</row>
</thead><tbody><row><entry><para>To perform simple administrative tasks</para>
</entry><entry><para><emphasis role="strong">Supplementary rights profiles</emphasis>: Printer
Management, Media Backup, All</para><para><emphasis role="strong">Help File</emphasis>: <filename>RtOperator.html</filename></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="rbacref-18"><title>Printer Management Rights Profile</title><para><indexterm><primary>Printer Management rights profile</primary></indexterm>Printer  Management is a typical rights profile that is intended
for a specific task area. This profile includes authorizations and commands.
The following table shows a partial list of commands.</para><table frame="topbot" id="rbac-tbl-2"><title>Contents of Printer Management
Rights Profile</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="40*"/><colspec colname="colspec1" colwidth="60*"/><thead><row rowsep="1"><entry><para>Purpose</para>
</entry><entry><para>Contents</para>
</entry>
</row>
</thead><tbody><row><entry><para>To manage printers, daemons, and spooling</para>
</entry><entry><para><emphasis role="strong">Authorizations</emphasis>: <literal>solaris.print.*</literal>, <literal>solaris.label.print</literal>, <literal>solaris.admin.printer.delete</literal>, <literal>solaris.admin.printer.modify</literal>, <literal>solaris.admin.printer.read</literal></para><para><emphasis role="strong">Commands</emphasis>:   <command>/usr/lib/lp/local/lpadmin:uid=lp;gid
=lp</command>, <command>/usr/sbin/lpfilter:euid=lp;uid=lp</command>, <command>/usr/sbin/lpforms:euid=lp</command>, <command>/usr/sbin/lpusers:euid=lp</command>, <command>/usr/sbin/ppdmgr:euid=0</command></para><para><emphasis role="strong">Help File</emphasis>: <filename>RtPrntMngmnt.html</filename></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="rbac-3"><title>Basic Solaris User Rights Profile</title><para><indexterm><primary>Basic Solaris User rights profile</primary></indexterm><indexterm><primary><filename>policy.conf</filename> file</primary><secondary>Basic Solaris User rights profile</secondary></indexterm>By default,
the Basic Solaris User rights profile is assigned automatically to all users
through the <filename>policy.conf</filename> file. This profile provides basic
authorizations that are useful in normal operations. Note that the convenience
that is offered by the Basic Solaris User rights profile must be balanced
against site security requirements. Sites that need stricter security might
prefer to remove this profile from the <filename>policy.conf</filename> file.</para><table frame="topbot" id="rbac-tbl-1"><title>Contents of Basic Solaris User
Rights Profile</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="30*"/><colspec colname="colspec1" colwidth="70*"/><thead><row rowsep="1"><entry><para>Purpose</para>
</entry><entry><para>Contents</para>
</entry>
</row>
</thead><tbody><row><entry><para>To automatically assign rights to all users</para>
</entry><entry><para><emphasis role="strong">Authorizations</emphasis>: <literal>solaris.profmgr.read</literal>, <literal>solaris.jobs.user</literal>, <literal>solaris.mail.mailq</literal>, <literal>solaris.device.mount.removable</literal>, <literal>solaris.admin.usermgr.read</literal>, <literal>solaris.admin.logsvc.read</literal>, <literal>solaris.admin.fsmgr.read</literal>, <literal>solaris.admin.serialmgr.read</literal>, <literal>solaris.admin.diskmgr.read</literal>, <literal>solaris.admin.procmgr.user</literal>, <literal>solaris.compsys.read</literal>, <literal>solaris.admin.printer.read</literal>, <literal>solaris.admin.prodreg.read</literal>, <literal>solaris.admin.dcmgr.read</literal>, <literal>solaris.snmp.read</literal>, <literal>solaris.project.read</literal>, <literal>solaris.admin.patchmg.read</literal>, <literal>solaris.network.hosts.read</literal>, <literal>solaris.admin.volmgr.read</literal></para><para><emphasis role="strong">Commands</emphasis>:   <command>/usr/bin/cdda2wav.bin:privs=file_dac_read,sys_devices,
proc_priocntl,net_privaddr</command>, <command>/usr/bin/cdrecord.bin:privs=file_dac_read,sys_devices,
proc_lock_memory,proc_priocntl,net_privaddr</command>, <command>/usr/bin/readcd.bin:privs=file_dac_read,sys_devices,net_privaddr</command>, <command>/usr/lib/ospm/lp-queue-helper:euid=lp;gid=lp</command>, </para><para><emphasis role="strong">Supplementary rights profiles</emphasis>: All</para><para><emphasis role="strong">Help File</emphasis>: <filename>RtDefault.html</filename></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="rbacref-5"><title>Console User Rights Profile</title><para><indexterm><primary>Console User (RBAC)</primary><secondary>rights profile</secondary></indexterm>The Console User rights profile is intended for the console user,
that is, the person who is seated in front of the system. This profile is
delivered with a convenient set of authorizations for the console user. You
can customize the Console User rights profile to satisfy your site security
requirements. For an example, see <olink targetptr="rbactask-38" remap="internal">Example&nbsp;9&ndash;20</olink>.</para>
</sect2><sect2 id="rbacref-19"><title>All Rights Profile</title><indexterm><primary>All (RBAC)</primary><secondary>rights profile</secondary>
</indexterm><para>The All rights profile uses the wildcard to include all commands. This
profile provides a role with access to all commands that are not explicitly
assigned in other rights profiles. Without the All rights profile or other
rights profiles that use wildcards, a role has access to explicitly assigned
commands only. Such a limited a set of commands is not very practical.</para><para>The All rights profile, if used, should be the final rights profile
that is assigned. This last position ensures that explicit security attribute
assignments in other rights profiles are not inadvertently overridden.</para><table frame="topbot" id="rbac-tbl-4"><title>Contents of All Rights Profile</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="50*"/><colspec colname="colspec1" colwidth="50*"/><thead><row rowsep="1"><entry><para>Purpose</para>
</entry><entry><para>Contents</para>
</entry>
</row>
</thead><tbody><row><entry><para>To execute any command as the user or role</para>
</entry><entry><para><emphasis role="strong">Commands</emphasis>: *</para><para><emphasis role="strong">Help File</emphasis>: <filename>RtAll.html</filename></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="rbacref-27"><title>Order of Rights Profiles</title><indexterm><primary>rights profiles</primary><secondary>ordering</secondary>
</indexterm><para>The commands in rights profiles are interpreted in order. The first
occurrence of a command is the only version of the command that is used for
that role or user. Different rights profiles can include the same command.
Therefore, the order of rights profiles in a list of profiles is important.
The rights profile with the most capabilities should be listed first.</para><para>Rights profiles are listed in the Solaris Management Console GUI and
in the <filename>prof_attr</filename> file. In the Solaris Management Console
GUI, the rights profile with the most capabilities should be the top profile
in a list of assigned rights profiles. In the <filename>prof_attr</filename> file,
the rights profile with the most capabilities should be the first in a list
of supplementary profiles. This placement ensures that a command with security
attributes is listed before that same command without security attributes.</para>
</sect2><sect2 id="rbacref-21"><title>Viewing the Contents of Rights Profiles</title><indexterm><primary>rights profiles</primary><secondary>viewing contents</secondary>
</indexterm><indexterm><primary>viewing</primary><secondary>contents of rights profiles</secondary>
</indexterm><para>The Solaris Management Console Rights tool provides one way of inspecting
the contents of the rights profiles.</para><para>The <filename>prof_attr</filename> and <filename>exec_attr</filename> files
offer a more fragmented view. The <filename>prof_attr</filename> file contains
the name of every rights profile that is defined on the system. The file also
includes the authorizations and the supplementary rights profiles for each
profile. The <filename>exec_attr</filename> file contains the names of rights
profiles and their commands with security attributes.</para>
</sect2>
</sect1><sect1 id="rbacref-28"><title>Authorization Naming and Delegation</title><indexterm><primary>authorizations (RBAC)</primary><secondary>description</secondary>
</indexterm><para>An RBAC <emphasis>authorization</emphasis> is a discrete right that
can be granted to a role or a user. Authorizations are checked by RBAC-compliant
applications before a user gets access to the application or specific operations
within the application. This check replaces the tests in conventional UNIX
applications for <literal>UID=0</literal>.</para><sect2 id="rbacref-15"><title>Authorization Naming Conventions</title><para>An authorization has a name that is used internally and in files. For
example, <literal>solaris.admin.usermgr.pswd</literal> is the name of an authorization.
An authorization has a short description, which appears in the graphical user
interfaces (GUIs). For example, <literal>Change Passwords</literal> is the
description of the <literal>solaris.admin.usermgr.pswd</literal> authorization.</para><para><indexterm><primary>. (dot)</primary><secondary>authorization name separator</secondary></indexterm><indexterm><primary>dot (<literal>.</literal>)</primary><secondary>authorization name separator</secondary></indexterm><indexterm><primary>authorizations (RBAC)</primary><secondary>naming convention</secondary></indexterm><indexterm><primary>naming conventions</primary><secondary>RBAC authorizations</secondary></indexterm><indexterm><primary>* (asterisk)</primary><secondary>wildcard character</secondary><tertiary>in RBAC authorizations</tertiary></indexterm><indexterm><primary>asterisk (*)</primary><secondary>wildcard character</secondary><tertiary>in RBAC authorizations</tertiary></indexterm><indexterm><primary>wildcard characters</primary><secondary>in RBAC authorizations</secondary></indexterm>By convention, authorization names consist of the reverse order
of the Internet name of the supplier, the subject area, any subareas, and
the function. The parts of the authorization name are separated by dots. An
example would be <literal>com.xyzcorp.device.access</literal>. Exceptions
to this convention are the authorizations from Sun Microsystems, Inc., which
use the prefix <literal>solaris</literal> instead of an Internet name. The
naming convention enables administrators to apply authorizations in a hierarchical
fashion. A wildcard (*) can represent any strings to the right of a dot.</para>
</sect2><sect2 id="rbacref-16"><title>Example of Authorization Granularity</title><indexterm><primary>authorizations (RBAC)</primary><secondary>granularity</secondary>
</indexterm><para>As an example of how authorizations are used, consider the following:
A user in the Operator role might be limited to the <literal>solaris.admin.usermgr.read</literal> authorization, which provides read but not write access to user
configuration files. The System Administrator role naturally has the <literal>solaris.admin.usermgr.read</literal> and the <literal>solaris.admin.usermgr.write</literal> authorizations
for making changes to user files. However, without the <literal>solaris.admin.usermgr.pswd</literal> authorization, the System Administrator cannot change passwords.
The Primary Administrator has all three of these authorizations.</para><para>The <literal>solaris.admin.usermgr.pswd</literal> authorization is required
to make password changes in the Solaris Management Console User tool. This
authorization is also required for using the password modification options
in the <command>smuser</command>, <command>smmultiuser</command>, and <command>smrole</command> commands.</para>
</sect2><sect2 id="rbacref-17"><title>Delegation Authority in Authorizations</title><indexterm><primary>authorizations (RBAC)</primary><secondary>delegating</secondary>
</indexterm><indexterm><primary>delegating</primary><secondary>RBAC authorizations</secondary>
</indexterm><para>An authorization that ends with the suffix <literal>grant</literal> enables
 a user or a role to delegate to other users any assigned authorizations that
begin with the same prefix.</para><para>For example, a role with the authorizations <literal>solaris.admin.usermgr.grant</literal> and <literal>solaris.admin.usermgr.read</literal> can delegate
the <literal>solaris.admin.usermgr.read</literal> authorization to another
user. A role with the <literal>solaris.admin.usermgr.grant</literal> and <literal>solaris.admin.usermgr.*</literal> authorizations can delegate any of the authorizations
with the <literal>solaris.admin.usermgr</literal> prefix to other users.</para>
</sect2>
</sect1><sect1 id="rbacref-6"><title>Databases That Support RBAC</title><indexterm><primary>rights profiles</primary><secondary>databases</secondary><see><filename>prof_attr</filename> database and <filename>exec_attr</filename> database</see>
</indexterm><indexterm><primary>user database (RBAC)</primary><see><filename>user_attr</filename> database</see>
</indexterm><indexterm><primary>authorizations (RBAC)</primary><secondary>database</secondary>
</indexterm><indexterm><primary>RBAC</primary><secondary>databases</secondary>
</indexterm><indexterm><primary>databases</primary><secondary>RBAC</secondary>
</indexterm><itemizedlist><para>The following four databases store the data for the RBAC elements:</para><listitem><para><indexterm><primary><filename>user_attr</filename> database</primary><secondary>description</secondary></indexterm><emphasis role="strong">Extended
user attributes database</emphasis> <filename>(user_attr)</filename> <emphasis role="strong">&ndash;</emphasis> Associates users and roles with authorizations
and rights</para>
</listitem><listitem><para><indexterm><primary><filename>prof_attr</filename> database</primary><secondary>summary</secondary></indexterm><emphasis role="strong">Rights profile
attributes database</emphasis> <filename>(prof_attr)</filename> <emphasis role="strong">&ndash;</emphasis> Defines rights profiles, lists the profiles'
assigned authorizations, and identifies the associated help file</para>
</listitem><listitem><para><indexterm><primary><filename>auth_attr</filename> database</primary><secondary>summary</secondary></indexterm><emphasis role="strong">Authorization
attributes database</emphasis> <filename>(auth_attr)</filename> <emphasis role="strong">&ndash;</emphasis> Defines authorizations and their attributes,
and identifies the associated help file</para>
</listitem><listitem><para><indexterm><primary><filename>exec_attr</filename> database</primary><secondary>summary</secondary></indexterm><emphasis role="strong">Execution
attributes database</emphasis> <filename>(exec_attr)</filename> <emphasis role="strong">&ndash;</emphasis> Identifies the commands with security attributes
that are assigned to specific rights profiles</para>
</listitem>
</itemizedlist><para><indexterm><primary>security policy</primary><secondary>default (RBAC)</secondary></indexterm>The <filename>policy.conf</filename> database contains authorizations,privileges,
and rights profiles that are applied to all users. For more information, see <olink targetptr="rbacref-14" remap="internal">policy.conf File</olink>.</para><sect2 id="rbacref-7"><title>RBAC Database Relationships</title><indexterm><primary> RBAC</primary><secondary>database relationships</secondary>
</indexterm><indexterm><primary><filename>user_attr</filename> database</primary><secondary>RBAC relationships</secondary>
</indexterm><para>Each RBAC database uses a <replaceable>key</replaceable><literal>=</literal><replaceable>value</replaceable> syntax for storing attributes. This method accommodates
future expansion of the databases. The method also enables a system to continue
to operate if the system encounters a keyword that is unknown to its policy.
The <replaceable>key</replaceable><literal>=</literal><replaceable>value</replaceable> contents
link the files. The following linked entries from the four databases illustrate
how the RBAC databases work together.</para><example id="rbacref-29"><title>Showing RBAC Database Connections</title><para>In the following example, the user <literal>jdoe</literal> gets the
capabilities of the File System Management profile through being assigned
the role <literal>filemgr</literal>.</para><orderedlist><listitem><para>The user <literal>jdoe</literal> is assigned the role <literal>filemgr</literal> in the <literal>jdoe</literal> user entry in the <filename>user_attr</filename> database.</para><screen># user_attr - user definition
jdoe::::type=normal;roles=<userinput>filemgr</userinput></screen>
</listitem><listitem><para>The role <literal>filemgr</literal> is assigned the rights
profile File System Management in the role's entry in the <filename>user_attr</filename> database.</para><screen># user_attr - role definition
<userinput>filemgr</userinput>::::profiles=<userinput>File System Management</userinput>;type=role</screen><para>The user and the role are uniquely defined in the <filename>passwd</filename> and <filename>shadow</filename> files on the local system, or in equivalent databases in
a distributed name service.</para>
</listitem><listitem><para>The File System Management rights profile is defined in the <filename>prof_attr</filename> database. This database also assigns three sets of authorizations
to the File System Management entry.</para><screen># prof_attr - rights profile definitions and assigned authorizations
<userinput>File System Management</userinput>:::Manage, mount, share file systems:
help=RtFileSysMngmnt.html;
auths=<userinput>solaris.admin.fsmgr.*</userinput>,solaris.admin.diskmgr.*,solaris.admin.volmgr.*</screen>
</listitem><listitem><para>The authorizations are defined in the <literal>auth_attr</literal> database.</para><screen># auth_attr - authorization definitions
<userinput>solaris.admin.fsmgr.</userinput>:::Mounts and Shares::help=AuthFsmgrHeader.html
<userinput>solaris.admin.fsmgr.read</userinput>:::View Mounts and Shares::help=AuthFsmgrRead.html
<userinput>solaris.admin.fsmgr.write</userinput>:::Mount and Share Files::help=AuthFsmgrWrite.html</screen>
</listitem><listitem><para>The File System Management rights profile is assigned commands
with security attributes in the <filename>exec_attr</filename> database.</para><screen># exec_attr - rights profile names with secured commands
<userinput>File System Management</userinput>:suser:cmd:::/usr/sbin/mount:uid=0
<userinput>File System Management</userinput>:suser:cmd:::/usr/sbin/dfshares:euid=0
&hellip;
<userinput>File System Management</userinput>:solaris:cmd:::/usr/sbin/mount:privs=sys_mount
&hellip;</screen>
</listitem>
</orderedlist>
</example>
</sect2><sect2 id="rbacref-30"><title>RBAC Databases and the Name Service</title><para><indexterm><primary>RBAC</primary><secondary>name services and</secondary></indexterm>The name service scope of the RBAC databases can apply to the
local host only. The scope can also include all hosts that are served by a
name service such as NIS, NIS+, or LDAP. Which name service has precedence
is set for each of the databases in the <filename>/etc/nsswitch.conf</filename> file.</para><itemizedlist><listitem><para><literal>auth_attr</literal> <emphasis role="strong">entry &ndash;</emphasis> Sets the name service precedence for the <filename>auth_attr</filename> database.</para>
</listitem><listitem><para><literal>passwd</literal> <emphasis role="strong">entry &ndash;</emphasis> Sets
the name service precedence for the <filename>user_attr</filename> database.</para>
</listitem><listitem><para><literal>prof_attr</literal> <emphasis role="strong">entry &ndash;</emphasis> Sets the name service precedence for the <filename>prof_attr</filename> database.
Also sets the name service precedence for the <filename>exec_attr</filename> database.</para><para>For example, if a command with security attributes is assigned
to a rights profile that exists in two name service scopes, only the entry
in the first name service scope is used.</para>
</listitem>
</itemizedlist>
</sect2><sect2 id="rbacref-10"><title><filename>user_attr</filename> Database</title><indexterm><primary><filename>user_attr</filename> database</primary><secondary>description</secondary>
</indexterm><indexterm><primary>databases</primary><secondary><filename>user_attr</filename></secondary>
</indexterm><para>The <filename>user_attr</filename> database contains user and role information
that supplements the <filename>passwd</filename> and <filename>shadow</filename> databases.
The <filename>user_attr</filename> database contains extended user attributes
such as authorizations, rights profiles, and assigned roles. The fields in
the <filename>user_attr</filename> database are separated by colons, as follows:</para><screen>user:qualifier:res1:res2:attr</screen><para>The fields have the following meanings:</para><variablelist termlength="wholeline"><varlistentry><term><literal>user</literal></term><listitem><para>The name of the user or role as specified in the <filename>passwd</filename> database.</para>
</listitem>
</varlistentry><varlistentry><term><literal>qualifier:res1:res2</literal></term><listitem><para>These fields are reserved for future use.</para>
</listitem>
</varlistentry><varlistentry><term><literal>attr</literal></term><listitem><para>An optional list of semicolon-separated (<literal>;</literal>)
key-value pairs that describes the security attributes to be applied when
the user runs commands. The four valid keys are <literal>type</literal>, <literal>auths</literal>, <literal>profiles</literal>, and <literal>roles</literal>.</para><itemizedlist><listitem><para>The <literal>type</literal> keyword can be set to <literal>normal</literal>, if this account is for a normal user. The <literal>type</literal> is <literal>role</literal> if this account is for a role.</para>
</listitem><listitem><para><indexterm><primary>* (asterisk)</primary><secondary>wildcard character</secondary><tertiary>in RBAC authorizations</tertiary></indexterm><indexterm><primary>asterisk (*)</primary><secondary>wildcard character</secondary><tertiary>in RBAC authorizations</tertiary></indexterm>The <literal>auths</literal> keyword
specifies a comma-separated list of authorization names that are chosen from
names that are defined in the <filename>auth_attr</filename> database. Authorization
names can include the asterisk (*) character  as a wildcard. For example, <literal>solaris.device.*</literal> means all of the Solaris device authorizations.</para>
</listitem><listitem><para>The <literal>profiles</literal> keyword specifies an ordered,
comma-separated list of rights profile names from the <filename>prof_attr</filename> 
database. The order of rights profiles works similarly to UNIX search paths.
The first profile in the list that contains the command to be executed defines
which (if any) security attributes are to be applied to the command.</para>
</listitem><listitem><para>The <literal>roles</literal> keyword can be assigned to the
user through a comma-separated list of role names. Note that roles are defined
in the same <filename>user_attr</filename> database. Roles are indicated by
setting the type value to <literal>role</literal>. Roles cannot be assigned
to other roles.</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist><para>The following example demonstrates how the Operator role is defined
in a typical <filename>user_attr</filename> database. The example shows how
the role  is assigned to user <literal>jdoe</literal>. Roles and users are
differentiated by the <literal>type</literal> keyword.</para><screen>% <userinput>grep operator /etc/user_attr</userinput> 
jdoe::::type=normal;roles=operator
operator::::profiles=Operator;type=role</screen>
</sect2><sect2 id="rbacref-11"><title><filename>auth_attr</filename> Database</title><indexterm><primary>RBAC</primary><secondary>authorization database</secondary>
</indexterm><indexterm><primary>authorizations (RBAC)</primary><secondary>database</secondary>
</indexterm><indexterm><primary><filename>auth_attr</filename> database</primary><secondary>description</secondary>
</indexterm><indexterm><primary>databases</primary><secondary><filename>auth_attr</filename></secondary>
</indexterm><para>All authorizations are stored in the <filename>auth_attr</filename> database.
Authorizations can be assigned to users, to roles, or to rights profiles.
The preferred method is to place authorizations in a rights profile, to include
the profile in a role's list of profiles, and then to assign the role to a
user.</para><para>The fields in the <filename>auth_attr</filename> database are separated
by colons, as follows:</para><screen>authname:res1:res2:short_desc:long_desc:attr</screen><para>The fields have the following meanings:</para><variablelist><varlistentry><term><literal>authname</literal></term><listitem><para>A unique character string that is used to identify the authorization
in the format <replaceable>prefix</replaceable>.[<replaceable>suffix</replaceable>].
Authorizations for the Solaris OS use <literal>solaris</literal> as a prefix.
All other authorizations should use a prefix that begins with the reverse-order
Internet domain name of the organization that creates the authorization (for
example, <literal>com.xyzcompany</literal>). The suffix indicates what is
being authorized, which is typically the functional area and operation.</para><para>When the <literal>authname</literal> consists of a prefix and functional
area and ends with a period, the <literal>authname</literal> serves as a heading
to be used by applications in their GUIs. A two-part <literal>authname</literal> is
not an actual authorization. The <literal>authname</literal> of <literal>solaris.printmgr.</literal> is an example of a heading.</para><para>When <literal>authname</literal> ends with the word &ldquo;grant,&rdquo;
the <literal>authname</literal> serves as a grant authorization. A grant authorization
enables the user to delegate to other users authorizations with the same prefix
and functional area. The <literal>authname</literal> of <literal>solaris.printmgr.grant</literal> is an example of a grant authorization. <literal>solaris.printmgr.grant</literal> gives the user the right to delegate to other users such authorizations
as <literal>solaris.printmgr.admin</literal> and <literal>solaris.printmgr.nobanner</literal>.</para>
</listitem>
</varlistentry><varlistentry><term><literal>res1:res2</literal></term><listitem><para>Reserved for future use.</para>
</listitem>
</varlistentry><varlistentry><term><literal>short_desc</literal></term><listitem><para>A short name for the authorization. This short name is suitable
for display in user interfaces, such as in a scrolling list in a GUI.</para>
</listitem>
</varlistentry><varlistentry><term><literal>long_desc</literal></term><listitem><para>A long description. This field identifies the purpose of the
authorization, the applications in which the authorization is used, and the
type of user who might  use the authorization. The long description can be
displayed in the help text of an application.</para>
</listitem>
</varlistentry><varlistentry><term><literal>attr</literal></term><listitem><para>An optional list of semicolon-separated (;) key-value pairs
that describe the attributes of an authorization. Zero or more keys can be
specified.</para><para>The keyword <literal>help</literal> identifies a help file in HTML.
Help files can be accessed from the <filename>index.html</filename> file in
the <filename>/usr/lib/help/auths/locale/C</filename> directory.</para>
</listitem>
</varlistentry>
</variablelist><para>The following example shows an <filename>auth_attr</filename> database
with some typical values:</para><screen>% <userinput>grep printer /etc/security/auth_attr</userinput> 
solaris.admin.printer.:::Printer Information::help=AuthPrinterHeader.html
solaris.admin.printer.delete:::Delete Printer Information::help=AuthPrinterDelete.html
solaris.admin.printer.modify:::Update Printer Information::help=AuthPrinterModify.html
solaris.admin.printer.read:::View Printer Information::help=AuthPrinterRead.html</screen><para>Note that <literal>solaris.admin.printer.</literal> is defined
as a heading, because the authorization name ends in a dot (.). Headings are
used by the GUIs to organize families of authorizations.</para>
</sect2><sect2 id="rbacref-12"><title><filename>prof_attr</filename> Database</title><indexterm><primary>RBAC</primary><secondary>rights profile database</secondary>
</indexterm><indexterm><primary><filename>prof_attr</filename> database</primary><secondary>description</secondary>
</indexterm><indexterm><primary>databases</primary><secondary><filename>prof_attr</filename></secondary>
</indexterm><para>The <filename>prof_attr</filename> database stores the name, description,
help file location, and authorizations that are assigned to rights profiles.
The commands and security attributes that are assigned to rights profiles
are stored in the <filename>exec_attr</filename> database. For more information,
see <olink targetptr="rbacref-13" remap="internal">exec_attr Database</olink>. The fields in
the <filename>prof_attr</filename> database are separated by colons, as follows:</para><screen>profname:res1:res2:desc:attr</screen><para>The fields have the following meanings:</para><variablelist><varlistentry><term><literal>profname</literal></term><listitem><para>The name of the rights profile. Rights profile names are case-sensitive.
This name is also used by the <filename>user_attr</filename> database to indicate
the profiles that are assigned to roles and users.</para>
</listitem>
</varlistentry><varlistentry><term><literal>res1:res2</literal></term><listitem><para>Reserved for future use.</para>
</listitem>
</varlistentry><varlistentry><term><literal>desc</literal></term><listitem><para>A long description. This field should explain the purpose
of the rights profile, including what type of user would be interested in
using the profile. The long description should be suitable for display in
the help text of an application.</para>
</listitem>
</varlistentry><varlistentry><term><literal>attr</literal></term><listitem><para>An optional list of key-value pairs that are separated by
semicolons (;) that describes the security attributes to apply to the object
on execution. Zero or more keys can be specified. The two valid keys are <literal>help</literal> and <literal>auths</literal>.</para><para>The keyword <literal>help</literal> identifies a help file in HTML.
Help files can be accessed from the <filename>index.html</filename> file in
the <filename>/usr/lib/help/profiles/locale/C</filename> directory.</para><para>The keyword <literal>auths</literal> specifies a comma-separated list
of authorization names that are chosen from those names that are defined in
the <filename>auth_attr</filename> database. Authorization names can be specified
with the asterisk (*) character as a wildcard.</para>
</listitem>
</varlistentry>
</variablelist><para>The following example shows two typical <filename>prof_attr</filename> database
entries. Note that the Printer Management rights profile is a supplementary
rights profile of the Operator rights profile. The example is wrapped for
display purposes.</para><screen>% <userinput>grep 'Printer Management' /etc/security/prof_attr</userinput>
<userinput>Printer Management</userinput>:::         <lineannotation>Name of rights profile</lineannotation>
Manage printers, daemons, spooling: <lineannotation>Description</lineannotation>
help=RtPrntAdmin.html;              <lineannotation>Help file</lineannotation>
auths=solaris.admin.printer.read, <lineannotation>Authorizations</lineannotation>
solaris.admin.printer.modify,solaris.admin.printer.delete
...
Operator:::                         <lineannotation>Name of rights profile</lineannotation>
Can perform simple administrative tasks: <lineannotation>Description</lineannotation>
profiles=<userinput>Printer Management</userinput>,  <lineannotation>Supplementary rights profiles</lineannotation>
Media Backup,All;
help=RtOperator.html               <lineannotation>Help file</lineannotation></screen>
</sect2><sect2 id="rbacref-13"><title><filename>exec_attr</filename> Database</title><indexterm><primary><filename>exec_attr</filename> database</primary><secondary>description</secondary>
</indexterm><indexterm><primary>databases</primary><secondary><filename>exec_attr</filename></secondary>
</indexterm><para>The <filename>exec_attr</filename> database defines commands that require
security attributes to succeed. The commands are part of a rights profile.
A command with its security attributes can be run by roles to whom the profile
is assigned.</para><para>The fields in the <filename>exec_attr</filename> database are separated
by colons, as follows:</para><screen>name:policy:type:res1:res2:id:attr</screen><para>The fields have the following meanings.</para><variablelist><varlistentry><term><literal>profname</literal></term><listitem><para>The name of the rights profile. Rights profile names are case-sensitive.
The name refers to a profile in the <filename>prof_attr</filename> database.</para>
</listitem>
</varlistentry><varlistentry><indexterm><primary><literal>suser</literal> security policy</primary>
</indexterm><indexterm><primary><literal>solaris</literal> security policy</primary>
</indexterm><term><literal>policy</literal></term><listitem><para>The security policy that is associated with this entry. Currently, <literal>suser</literal> and <literal>solaris</literal> are the valid entries. The <literal>solaris</literal> policy recognizes privileges. The <literal>suser</literal> policy
does not.</para>
</listitem>
</varlistentry><varlistentry><term><literal>type</literal></term><listitem><para>The type of entity that is specified. Currently, the only
valid entity type is <literal>cmd</literal> (command).</para>
</listitem>
</varlistentry><varlistentry><term><literal>res1:res2</literal></term><listitem><para>Reserved for future use.</para>
</listitem>
</varlistentry><varlistentry><term><literal>id</literal></term><listitem><para>A string that identifies the entity. Commands should have
the full path or a path with a wildcard (<literal>*</literal>). To specify
arguments, write a script with the arguments and point the <literal>id</literal> to
the script.</para>
</listitem>
</varlistentry><varlistentry><term><literal>attr</literal></term><listitem><para><indexterm><primary>semicolon (;)</primary><secondary>separator of security attributes</secondary></indexterm><indexterm><primary>; (semicolon)</primary><secondary>separator of security attributes</secondary></indexterm>An optional
list of semicolon (<literal>;</literal>) separated key-value pairs that describes
the security attributes to apply to the entity on execution. Zero or more
keys can be specified. The list of valid keywords depends on the policy that
is enforced.</para><para>For the <literal>suser</literal> policy, the four valid keys are <literal>euid</literal>, <literal>uid</literal>, <literal>egid</literal>, and <literal>gid</literal>.</para><itemizedlist><listitem><para>The <literal>euid</literal> and <literal>uid</literal> keywords
contain a single user name or a numeric user ID (UID). Commands that are designated
with <literal>euid</literal> run with the supplied UID, which is similar to
setting the <literal>setuid</literal> bit on an executable file. Commands
that are designated with <literal>uid</literal> run with both the real UID
and the effective UID.</para>
</listitem><listitem><para>The <literal>egid</literal> and <literal>gid</literal> keywords
contain a single group name or numeric group ID (GID). Commands that are designated
with <literal>egid</literal> run with the supplied GID, which is similar to
setting the <literal>setgid</literal> bit on an executable file. Commands
that are designated with <literal>gid</literal> run with both the real GID
and the  effective GID.</para>
</listitem>
</itemizedlist><para>For the <literal>solaris</literal> policy, the valid keyword is <literal>privs</literal>. The value consists of a list of privileges that are separated
by commas.</para>
</listitem>
</varlistentry>
</variablelist><para>The following example shows some typical values from an <filename>exec_attr</filename> database:</para><screen>% <userinput>grep 'File System Management' /etc/security/exec_attr</userinput>
File System Management:suser:cmd:::/usr/sbin/ff:euid=0
File System Management:solaris:cmd:::/usr/sbin/mount:privs=sys_mount
&hellip;</screen>
</sect2><sect2 id="rbacref-14"><title><filename>policy.conf</filename> File</title><indexterm><primary><filename>policy.conf</filename> file</primary><secondary>description</secondary>
</indexterm><indexterm><primary>users</primary><secondary>assigning RBAC defaults</secondary>
</indexterm><itemizedlist><para><indexterm><primary><filename>policy.conf</filename> file</primary><secondary>keywords</secondary><tertiary>for RBAC authorizations</tertiary></indexterm>The <filename>policy.conf</filename> file provides a way of granting
specific rights profiles, specific authorizations, and specific privileges
to all users. The relevant entries in the file consist of <replaceable>key=value</replaceable> pairs:</para><listitem><para><indexterm><primary><literal>AUTHS_GRANTED</literal> keyword</primary><secondary><filename>policy.conf</filename> file</secondary></indexterm><literal>AUTHS_GRANTED=</literal><replaceable>authorizations</replaceable> &ndash;
Refers to one or more authorizations.</para>
</listitem><listitem><para><indexterm><primary><filename>policy.conf</filename> file</primary><secondary>keywords</secondary><tertiary>for rights profiles</tertiary></indexterm><indexterm><primary><literal>PROFS_GRANTED</literal> keyword</primary><secondary><filename>policy.conf</filename> file</secondary></indexterm><literal>PROFS_GRANTED=</literal><replaceable>rights profiles</replaceable> &ndash;
Refers to one or more rights profiles.</para>
</listitem><listitem><para><indexterm><primary><filename>policy.conf</filename> file</primary><secondary>keywords</secondary><tertiary>for workstation owner</tertiary></indexterm><indexterm><primary><literal>CONSOLE_USER</literal> keyword</primary><secondary><filename>policy.conf</filename> file</secondary></indexterm><literal>CONSOLE_USER=Console User</literal>&ndash; Refers to the Console User rights
profile. This profile is delivered with a convenient set of authorizations
for the console user. You can customize this profile.</para>
</listitem><listitem><para><indexterm><primary><filename>policy.conf</filename> file</primary><secondary>keywords</secondary><tertiary>for privileges</tertiary></indexterm><indexterm><primary><literal>PRIV_DEFAULT</literal> keyword</primary><secondary><filename>policy.conf</filename> file</secondary></indexterm><literal>PRIV_DEFAULT=</literal><replaceable>privileges</replaceable> &ndash; Refers to one or more privileges.</para>
</listitem><listitem><para><indexterm><primary><literal>PRIV_LIMIT</literal> keyword</primary><secondary><filename>policy.conf</filename> file</secondary></indexterm><literal>PRIV_LIMIT=</literal><replaceable>privileges</replaceable> &ndash; Refers
to all privileges.</para>
</listitem>
</itemizedlist><para>The following example shows some typical values from a <filename>policy.conf</filename> database:</para><screen># <userinput>grep AUTHS /etc/security/policy</userinput>
AUTHS_GRANTED=solaris.device.cdrw

# <userinput>grep PROFS /etc/security/policy</userinput>
PROFS_GRANTED=Basic Solaris User

# <userinput>grep PRIV /etc/security/policy</userinput>

#PRIV_DEFAULT=basic
#PRIV_LIMIT=all</screen><para>For more information about privileges, see <olink targetptr="prbac-2" remap="internal">Privileges
(Overview)</olink>.</para>
</sect2>
</sect1><sect1 id="rbacref-22"><title>RBAC Commands</title><para>This section lists commands that are used to administer RBAC. Also provided
is a table of commands whose access can be controlled by authorizations.</para><sect2 id="rbacref-20"><title>Commands That Manage RBAC</title><indexterm><primary>RBAC</primary><secondary>administration commands</secondary>
</indexterm><indexterm><primary>commands</primary><secondary>RBAC administration commands</secondary>
</indexterm><indexterm><primary>RBAC</primary><secondary>commands for managing</secondary>
</indexterm><para>While you can edit the local RBAC databases manually, such editing is
strongly discouraged. The following commands are available for managing access
to tasks with RBAC.</para><table frame="topbot" id="rbacref-tbl-1"><title>RBAC Administration Commands</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="23.13*"/><colspec colname="colspec1" colwidth="76.87*"/><thead><row rowsep="1"><entry><para>Man Page for Command</para>
</entry><entry><para>Description</para>
</entry>
</row>
</thead><tbody><row><entry><para><olink targetdoc="group-refman" targetptr="auths-1" remap="external"><citerefentry><refentrytitle>auths</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>auths</command> command</primary><secondary>description</secondary></indexterm>Displays authorizations for a user.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="makedbm-1m" remap="external"><citerefentry><refentrytitle>makedbm</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>makedbm</command> command</primary><secondary>description</secondary></indexterm>Makes a <literal>dbm</literal> file.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="nscd-1m" remap="external"><citerefentry><refentrytitle>nscd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>nscd</command> (name service cache daemon)</primary><secondary>use</secondary></indexterm><indexterm><primary>daemons</primary><secondary><command>nscd</command> (name service cache daemon)</secondary></indexterm>Name service cache daemon, useful for caching the <filename>user_attr</filename>, <filename>prof_attr</filename>, and <filename>exec_attr</filename> databases.
Use the <command>svcadm</command> command to restart the daemon.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="pam-roles-5" remap="external"><citerefentry><refentrytitle>pam_roles</refentrytitle><manvolnum>5</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>pam_roles</command> command</primary><secondary>description</secondary></indexterm>Role account management module
for PAM. Checks for the authorization to assume role.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="pfexec-1" remap="external"><citerefentry><refentrytitle>pfexec</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>pfexec</command> command</primary><secondary>description</secondary></indexterm>Used by profile shells to execute commands with security
attributes that are specified in the <filename>exec_attr</filename> database.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="policy.conf-4" remap="external"><citerefentry><refentrytitle>policy.conf</refentrytitle><manvolnum>4</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><filename>policy.conf</filename> file</primary><secondary>description</secondary></indexterm><indexterm><primary>configuration files</primary><secondary><filename>policy.conf</filename> file</secondary></indexterm>Configuration file for system security policy. Lists granted authorizations,
granted privileges, and other security information.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="profiles-1" remap="external"><citerefentry><refentrytitle>profiles</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>profiles</command> command</primary><secondary>description</secondary></indexterm>Displays rights profiles for
a specified user.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="roles-1" remap="external"><citerefentry><refentrytitle>roles</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>roles</command> command</primary><secondary>description</secondary></indexterm><indexterm><primary>displaying</primary><secondary>roles you can assume</secondary></indexterm><indexterm><primary>listing</primary><secondary>roles you can assume</secondary></indexterm><indexterm><primary>roles</primary><secondary>listing local roles</secondary></indexterm>Displays roles that
a specified user can assume.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="roleadd-1m" remap="external"><citerefentry><refentrytitle>roleadd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>roleadd</command> command</primary><secondary>description</secondary></indexterm>Adds a role to a local system.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="roledel-1m" remap="external"><citerefentry><refentrytitle>roledel</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>roledel</command> command</primary><secondary>description</secondary></indexterm>Deletes a role from a local
system.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="rolemod-1m" remap="external"><citerefentry><refentrytitle>rolemod</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>rolemod</command> command</primary><secondary>description</secondary></indexterm>Modifies a role's properties
on a local system.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="smattrpop-1m" remap="external"><citerefentry><refentrytitle>smattrpop</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>smattrpop</command> command</primary><secondary>description</secondary></indexterm>Merges the source security attribute
database into the target database. For use in situations where local databases
need to be merged into a name service. Also for use in upgrades where conversion
scripts are not supplied.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="smexec-1m" remap="external"><citerefentry><refentrytitle>smexec</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>smexec</command> command</primary><secondary>description</secondary></indexterm>Manages entries in the <filename>exec_attr</filename> database.
Requires authentication.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="smmultiuser-1m" remap="external"><citerefentry><refentrytitle>smmultiuser</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>smmultiuser</command> command</primary><secondary>description</secondary></indexterm>Manages bulk operations on user
accounts. Requires authentication.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="smprofile-1m" remap="external"><citerefentry><refentrytitle>smprofile</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>smprofile</command> command</primary><secondary>description</secondary></indexterm>Manages rights profiles in the <filename>prof_attr</filename> and <filename>exec_attr</filename> databases. Requires
authentication.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="smrole-1m" remap="external"><citerefentry><refentrytitle>smrole</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>smrole</command> command</primary><secondary>description</secondary></indexterm>Manages roles and users in role accounts. Requires
authentication.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="smuser-1m" remap="external"><citerefentry><refentrytitle>smuser</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>smuser</command> command</primary><secondary>description</secondary></indexterm>Manages user entries. Requires authentication.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="useradd-1m" remap="external"><citerefentry><refentrytitle>useradd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>useradd</command> command</primary><secondary>description</secondary></indexterm>Adds a user account to the system.
The <option>P</option> option assigns a role to a user's account.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="userdel-1m" remap="external"><citerefentry><refentrytitle>userdel</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>userdel</command> command</primary><secondary>description</secondary></indexterm>Deletes a user's login from
the system.</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="usermod-1m" remap="external"><citerefentry><refentrytitle>usermod</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>usermod</command> command</primary><secondary>description</secondary></indexterm>Modifies a user's account properties
on the system.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2><sect2 id="rbacref-4"><title>Commands That Require Authorizations</title><indexterm><primary>authorizations (RBAC)</primary><secondary>commands that require authorizations</secondary>
</indexterm><para>The following table provides examples of how authorizations are used
to limit command options on a Solaris system. For more discussion of authorizations,
see <olink targetptr="rbacref-28" remap="internal">Authorization Naming and Delegation</olink>.</para><table frame="topbot" id="rbac-tbl-9"><title>Commands and Associated Authorizations</title><tgroup cols="2" colsep="0" rowsep="0"><colspec colname="colspec0" colwidth="23.03*"/><colspec colname="colspec1" colwidth="76.97*"/><thead><row rowsep="1"><entry><para>Man Page for Command</para>
</entry><entry><para>Authorization Requirements</para>
</entry>
</row>
</thead><tbody><row><entry><para><olink targetdoc="group-refman" targetptr="at-1" remap="external"><citerefentry><refentrytitle>at</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>at</command> command</primary><secondary>authorizations required</secondary></indexterm><literal>solaris.jobs.user</literal> required
for all options (when neither <filename>at.allow</filename> nor <filename>at.deny</filename> files exist)</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="atq-1" remap="external"><citerefentry><refentrytitle>atq</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>atq</command> command</primary><secondary>authorizations required</secondary></indexterm><literal>solaris.jobs.admin</literal> required
for all options</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="cdrw-1" remap="external"><citerefentry><refentrytitle>cdrw</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>cdrw</command> command</primary><secondary>authorizations required</secondary></indexterm><literal>solaris.device.cdrw</literal> required
for all options, and is granted by default in the <filename>policy.conf</filename> file</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="crontab-1" remap="external"><citerefentry><refentrytitle>crontab</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><filename>crontab</filename> files</primary><secondary>authorizations required</secondary></indexterm><literal>solaris.jobs.user</literal> required for the option to submit a job (when neither <filename>crontab.allow</filename> nor <filename>crontab.deny</filename> files exist)</para><para><literal>solaris.jobs.admin</literal> required for the options to list
or modify other users' <command>crontab</command> files</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="allocate-1" remap="external"><citerefentry><refentrytitle>allocate</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para><literal>solaris.device.allocate</literal> (or other authorization as
specified in <command>device_allocate</command> file) required to allocate
a device</para><para><indexterm><primary><command>allocate</command> command</primary><secondary>authorizations required</secondary></indexterm><literal>solaris.device.revoke</literal> (or other authorization as specified in <filename>device_allocate</filename> file)
required to allocate a device to another user (<option>F</option> option)</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="deallocate-1" remap="external"><citerefentry><refentrytitle>deallocate</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>deallocate</command> command</primary><secondary>authorizations required</secondary></indexterm><literal>solaris.device.allocate</literal> (or other authorization as specified in <command>device_allocate</command> file)
required to deallocate another user's device</para><para><literal>solaris.device.revoke</literal> (or other authorization as
specified in <filename>device_allocate</filename>) required to force deallocation
of the specified device (<option>F</option> option) or all devices (<option>I</option> option)</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="list-devices-1" remap="external"><citerefentry><refentrytitle>list_devices</refentrytitle><manvolnum>1</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>list_devices</command> command</primary><secondary>authorizations required</secondary></indexterm><literal>solaris.device.revoke</literal> required to list another user's devices (<option>U</option> option)</para>
</entry>
</row><row><entry><para><olink targetdoc="group-refman" targetptr="sendmail-1m" remap="external"><citerefentry><refentrytitle>sendmail</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink></para>
</entry><entry><para><indexterm><primary><command>sendmail</command> command</primary><secondary>authorizations required</secondary></indexterm><literal>solaris.mail</literal> required
to access mail subsystem functions; <literal>solaris.mail.mailq</literal> required
to view mail queue</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect2>
</sect1>
</chapter><?Pub *0000065823 0?>