'\" te .\" Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved. .TH smf_security 5 "24 Sep 2015" "SunOS 5.11" "Standards, Environments, and Macros" .SH NAME smf_security \- service management facility security behavior .SH DESCRIPTION .sp .LP The configuration subsystem for the service management facility, \fBsmf\fR(5), requires privilege to modify the configuration of a service. Privileges are granted to a user by associating the authorizations described below to the user through \fBuser_attr\fR(4) and \fBprof_attr\fR(4). See \fBrbac\fR(5). .sp .LP The following authorization is used to manipulate services and service instances. .sp .ne 2 .mk .na \fB\fBsolaris.smf.modify\fR\fR .ad .RS 22n .rt Authorized to add, delete, or modify services, service instances, or their properties, and to read protected property values. .RE .SS "Property Group Authorizations" .sp .LP The \fBsmf\fR(5) configuration subsystem associates properties with each service and service instance. Related properties are grouped. Groups can represent an execution method, credential information, application data, or restarter state. The ability to create or modify property groups can cause \fBsmf\fR(5) components to perform actions that can require operating system privilege. Accordingly, the framework requires appropriate authorization to manipulate property groups. .sp .LP Each property group has a type corresponding to its purpose. The core property group types are \fBmethod\fR, \fBdependency\fR, \fBframework\fR, and \fBapplication\fR (where \fBapplication\fR is the recommended type for property groups containing application data) . The following basic authorizations, however, apply only to the core property group types: .sp .ne 2 .mk .na \fB\fBsolaris.smf.modify.method\fR\fR .ad .sp .6 .RS 4n Authorized to change values or create, delete, or modify a property group of type \fBmethod\fR. .RE .sp .ne 2 .mk .na \fB\fBsolaris.smf.modify.dependency\fR\fR .ad .sp .6 .RS 4n Authorized to change values or create, delete, or modify a property group of type \fBdependency\fR. .RE .sp .ne 2 .mk .na \fB\fBsolaris.smf.modify.application\fR\fR .ad .sp .6 .RS 4n Authorized to change values, read protected values, and create, delete, or modify a property group of type application. .RE .sp .ne 2 .mk .na \fB\fBsolaris.smf.modify.framework\fR\fR .ad .sp .6 .RS 4n Authorized to change values or create, delete, or modify a property group of type \fBframework\fR. .RE .sp .ne 2 .mk .na \fB\fBsolaris.smf.modify\fR\fR .ad .sp .6 .RS 4n Authorized to add, delete, or modify services, service instances, or their properties, and to read protected property values. .RE .sp .LP Property group-specific authorization can be specified by properties contained in the property group. .sp .ne 2 .mk .na \fB\fBmodify_authorization\fR\fR .ad .sp .6 .RS 4n Authorizations allow the addition, deletion, or modification of properties within the property group, and the retrieval of property values from the property group if protected. .RE .sp .ne 2 .mk .na \fB\fBvalue_authorization\fR\fR .ad .sp .6 .RS 4n Authorizations allow changing the values of any property of the property group except \fBmodify_authorization\fR, and the retrieval of any property values except modify_authorization from the property group if protected. .RE .sp .ne 2 .mk .na \fB\fBread_authorization\fR\fR .ad .sp .6 .RS 4n Authorizations allow the retrieval of property values within the property group. The presence of a string-valued property with this name identifies the containing property group as protected. This property has no effect on property groups of types other than application. See \fBProtected Property Groups\fR. .RE .sp .LP The above authorization properties are only used if they have type \fBastring\fR. If an instance property group does not have one of the properties, but the instance's service has a property group of the same name with the property, its values are used. .SS "Protected Property Groups" .sp .LP Normally, all property values in the repository can be read by any user without explicit authorization. Property groups of non-framework types can be used to store properties with values that require protection. They must not be revealed except upon proper authorization. A property group's status as protected is indicated by the presence of a string-valued \fBread_authorization\fR property. If this property is present, the values of all properties in the property group is retrievable only as described in \fBProperty Group Authorizations\fR. .sp .LP Administrative domains with policies that prohibit backup of data considered sensitive should exclude the SMF repository databases from their backups. In the face of such a policy, non-protected property values can be backed up by using the \fBsvccfg\fR(1M) archive command to create an archive of the repository without protected property values. .SS "Service Action Authorization" .sp .LP Certain actions on service instances can result in service interruption or deactivation. These actions require an authorization to ensure that any denial of service is a deliberate administrative action. Such actions include a request for execution of the refresh or restart methods, or placement of a service instance in the maintenance or other non-operational state. The following authorization allows such actions to be requested: .sp .ne 2 .mk .na \fB\fBsolaris.smf.manage\fR\fR .ad .RS 22n .rt Authorized to request restart, refresh, or other state modification of any service instance. .RE .sp .LP In addition, the \fBgeneral/action_authorization\fR property can specify additional authorizations that permit service actions to be requested for that service instance. The \fBsolaris.smf.manage\fR authorization is required to modify this property. .SS "Defined Rights Profiles" .sp .LP Two rights profiles are included that offer grouped authorizations for manipulating typical \fBsmf\fR(5) operations. .sp .ne 2 .mk .na \fBService Management\fR .ad .sp .6 .RS 4n A service manager can manipulate any service in the repository in any way. It corresponds to the \fBsolaris.smf.manage\fR and \fBsolaris.smf.modify\fR authorizations. .sp The service management profile is the minimum required to use the \fBpkg\fR(1) command to add or remove software packages that contain an inventory of services in its service manifest. .RE .sp .ne 2 .mk .na \fBService Operator\fR .ad .sp .6 .RS 4n A service operator has the ability to enable or disable any service instance on the system, as well as request that its restart or refresh method be executed. It corresponds to the \fBsolaris.smf.manage\fR and \fBsolaris.smf.modify.framework\fR authorizations. .sp Sites can define additional rights profiles customized to their needs. .RE .SS "Remote Repository Modification" .sp .LP Remote repository servers can deny modification attempts due to additional privilege checks. See NOTES. .SH EXAMPLES .LP \fBExample 1 \fRAllow user to modify \fBsystem/cron\fR services without becoming root. .sp .LP Adding the following line to \fB/etc/user_att\fRr allows the user "johndoe" to restart, enable, disable or other state modification of \fBsystem/cron\fR service without becoming root. .sp .in +2 .nf johndoe::::auths=solaris.smf.manage.cron .fi .in -2 .LP \fBExample 2 \fRAllow user to modify any property on any service and modify \fBsystem/cron\fR services without becoming root. .sp .LP Adding the following line to \fB/etc/user_attr\fR allows the user "janedoe" to modify any property on any service, and restart, enable, disable or other state modification of \fBsystem/cron\fR service without becoming root .sp .in +2 .nf janedoe::::auths=solaris.smf.modify,solaris.smf.manage.cron .fi .in -2 .SH SEE ALSO .sp .LP \fBauths\fR(1), \fBprofiles\fR(1), \fBsvccfg\fR(1M), \fBprof_attr\fR(4), \fBuser_attr\fR(4), \fBrbac\fR(5), \fBsmf\fR(5), \fBpkg\fR(1) .sp .LP \fIPackaging and Delivering Software With the Image Packaging System in Oracle Solaris 11.3\fR .SH NOTES .sp .LP The present version of \fBsmf\fR(5) does not support remote repositories. .sp .LP When a service is configured to be started as root but with privileges different from \fBlimit_privileges\fR, the resulting process is privilege aware. This can be surprising to developers who expect \fBseteuid()\fR to reduce privileges to basic or less.