USER_ATTR(5) File Formats and Configurations USER_ATTR(5)
NAME
user_attr - extended user attributes database
SYNOPSIS
/etc/user_attrDESCRIPTION
/etc/user_attr is a local source of extended attributes associated
with users and roles.
user_attr can be used with other user attribute
sources, including the LDAP people container and the
user_attr NIS map. Programs use the
getuserattr(3SECDB) routines to gain access to
this information.
The search order for multiple
user_attr sources is specified in the
/etc/nsswitch.conf file, as described in the
nsswitch.conf(5) man
page. The search order follows that for
passwd(5).
Each entry in the
user_attr databases consists of a single line with
five fields separated by colons (
:). Line continuations using the
backslash (
\) character are permitted. Each entry has the form:
user:
qualifier:
res1:
res2:
attr user The name of the user as specified in the
passwd(5) database.
qualifier Reserved for future use.
res1 Reserved for future use.
res2 Reserved for future use.
attr An optional list of semicolon-separated (
;) key-value pairs that
describe the security attributes to apply to the object upon
execution. Zero or more keys may be specified. The following keys
are currently interpreted by the system:
auths Specifies a comma-separated list of authorization names
chosen from those names defined in the
auth_attr(5) database.
Authorization names may be specified using the asterisk (
*)
character as a wildcard. For example,
solaris.printer.* means
all of Sun's printer authorizations.
profiles Contains an ordered, comma-separated list of profile names
chosen from
prof_attr(5). Profiles are enforced by the
profile shells,
pfcsh,
pfksh, and
pfsh. See
pfsh(1). A
default profile is assigned in
/etc/security/policy.conf (see
policy.conf(5)). If no profiles are assigned, the profile
shells do not allow the user to execute any commands.
roleauth Specifies whether a user assuming a role is required to use
the role password or their own password. If the
roleauth key
value is not specified, the role password is required for
users assuming the role.
roles Can be assigned a comma-separated list of role names from the
set of user accounts in this database whose
type field
indicates the account is a role. If the
roles key value is
not specified, the user is not permitted to assume any role.
type Can be assigned one of these strings:
normal, indicating that
this account is for a normal user, one who logs in; or
role,
indicating that this account is for a role. Roles can only be
assumed by a normal user after the user has logged in.
project Can be assigned a name of one project from the
project(5) database to be used as a default project to place the user in
at login time. For more information, see
getdefaultproj(3PROJECT).
defaultpriv The default set of privileges assigned to a user's
inheritable set upon login. See "Privileges Keywords,"
below.
limitpriv The maximum set of privileges a user or any process started
by the user, whether through
su(8) or any other means, can
obtain. The system administrator must take extreme care when
removing privileges from the limit set. Removing any basic
privilege has the ability of crippling all applications;
removing any other privilege can cause many or all
applications requiring privileges to malfunction. See
"Privileges Keywords," below.
lock_after_retries Specifies whether an account is locked after the count of
failed logins for a user equals or exceeds the allowed number
of retries as defined by
RETRIES in
/etc/default/login.
Possible values are
yes or
no. The default is
no. Account
locking is applicable only to local accounts.
The following keys are available only if the system is configured
with the Trusted Extensions feature:
clearance Contains the maximum label at which the user can operate. If
unspecified, in the Defense Intelligence Agency (
DIA)
encodings scheme, the default is specified in
label_encodings(5) (see
label_encodings(5) and
labels(7) in
the
Solaris Trusted Extensions Reference Manual).
min_label Contains the minimum label at which the user can log in. If
unspecified, in the
DIA encodings scheme, the default is
specified in
label_encodings(5) (see
label_encodings(5) and
labels(7) in the
Solaris Trusted Extensions Reference Manual).
Except for the
type key, the
key=
value fields in
/etc/user_attr can
be added using
roleadd(8) and
useradd(8). You can use
rolemod(8) and
usermod(8) to modify
key=
value fields in
/etc/user_attr. Modification
of the
type key is restricted as described in
rolemod and
usermod.
Privileges Keywords
The
defaultpriv and
limitpriv are the privileges-related keywords and
are described above.
See
privileges(7) for a description of privileges. The command
ppriv -l (see
ppriv(1)) produces a list of all supported privileges. Note
that you specify privileges as they are displayed by
ppriv. In
privileges(7), privileges are listed in the form
PRIV_<privilege_name>. For example, the privilege
file_chown, as you
would specify it in
user_attr, is listed in
privileges(7) as
PRIV_FILE_CHOWN.
See
usermod(8) for examples of commands that modify privileges and
their subsequent effect on
user_attr.
EXAMPLES
Example 1: Assigning a Profile to Root
The following example entry assigns to root the
All profile, which
allows root to use all commands in the system, and also assigns two
authorizations:
root::::auths=solaris.*,solaris.grant;profiles=All;type=normal
The
solaris.* wildcard authorization shown above gives root all the
solaris authorizations; and the
solaris.grant authorization gives
root the right to grant to others any
solaris authorizations that
root has. The combination of authorizations enables root to grant to
others all the
solaris authorizations. See
auth_attr(5) for more
about authorizations.
FILES
/etc/nsswitch.conf See
nsswitch.conf(5).
/etc/user_attr Described here.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Availibility | SUNWcsr |
+--------------------+-----------------+
|Interface Stability | See below |
+--------------------+-----------------+
The command-line syntax is Committed. The output is Uncommitted.
SEE ALSO
auths(1),
pfcsh(1),
pfksh(1),
pfsh(1),
ppriv(1),
profiles(1),
roles(1),
getdefaultproj(3PROJECT),
getuserattr(3SECDB),
auth_attr(5),
exec_attr(5),
nsswitch.conf(5),
passwd(5),
policy.conf(5),
prof_attr(5),
project(5),
attributes(7),
privileges(7),
roleadd(8),
rolemod(8),
useradd(8),
usermod(8) System Administration Guide: Security ServicesNOTES
The root user is usually defined in local databases for a number of
reasons, including the fact that root needs to be able to log in and
do system maintenance in single-user mode, before the network name
service databases are available. For this reason, an entry should
exist for root in the local
user_attr file, and the precedence shown
in the example
nsswitch.conf(5) file entry under EXAMPLES is highly
recommended.
Because the list of legal keys is likely to expand, any code that
parses this database must be written to ignore unknown key-value
pairs without error. When any new keywords are created, the names
should be prefixed with a unique string, such as the company's stock
symbol, to avoid potential naming conflicts.
In the
attr field, escape the following symbols with a backslash (
\)
if you use them in any value: colon (
:), semicolon (
;), carriage
return (
\n), equals (
=), or backslash (
\).
October 1, 2020 USER_ATTR(5)