NDMP RBAC Configuration
1. NDMP Service
This document describes the RBAC configuration for the NDMP service, which consists
of the ndmpd(1) daemon and two utility programs: ndmpadm(1M) and ndmpstat(1M).
The following actions require ndmp specific authorization:
- Managing the NDMP service state such as starting, stopping or refreshing
the service.
- Changing NDMP property values stored in SMF, which are normally set
by ndmpadm(1M) and read by ndmpd(1).
- Reading protected properties (Refer to the ndmp_design document section
"4.3 SMF Properties").
The following ndmp specific authorizations have been added to the auth_attr(4)
file to support these activites:
solaris.smf.manage.ndmp:::Manage NDMP Service States::help=SmfNDMPStates.html
solaris.smf.value.ndmp:::Change Values of NDMP Service Properties::help=SmfValueNDMP.html
solaris.smf.read.ndmp:::Read Permission for Protected NDMP Properties::help=AuthReadNDMP.html
2. NDMP Service Management
NDMP service management includes those activities that change the state of the
service such as starting, stopping or refreshing the daemon. The following
authorizations will permit a user to manage the NDMP service:
solaris.smf.manage.ndmp
3. NDMP Service Property Management
NDMP service properties are defined, with default values, in the service
manifest file. Users are not allowed to add or remove the NDMP properties from
the property groups but appropriately authorized users can change the values
of these properties. The values of these properties are set or viewed using
ndmpadm(1M). There are two NDMP service property groups:
- Regular properties group: no special authorization is needed to view the
properties in this group. The "solaris.smf.value.ndmp" authorization permits
a user to change the property values in this property group:
- Protected properties group: the "solaris.smf.read.ndmp" authorization permits
a user to view the NDMP service properties in this protected property group.
The "solaris.smf.value.ndmp" authorization will permit the user to modify the
values. NDMP is dependent on PSARC/2007/177, which describes SMF protected
properties.
The default password values will be null-strings. A non-null password is
required to allow a connection to the ndmpd service. Refer to ndmpadm(1M)
for more details on setting the password.
4. NDMP RBAC Profiles
The NDMP service provides both backup and restore operations and is designed
to be managed via SMF. The Backup and restore operations each require a
different set of privileges. The union of these privileges will be specified
in the method_credential in the service manifest.
In order to perform NDMP administration functions, for example, to use
ndmpadm(1M) or ndmpstat(1M), a user will need the NDMP management profile.
The NDMP Management profile also permits the NDMP service to be started,
stopped or refreshed.
NDMP Management:::Manage the NDMP service:auths=solaris.smf.manage.ndmp,
solaris.smf.value.ndmp,solaris.smf.read.ndmp:help=RtNDMPMngmnt.html
Note: both Media Backup and Media Restore profiles will contain the NDMP
Management profile, which grants users with these profiles the right to
perform NDMP management operations. The System Administrator profile
already contains the Media Backup and Media Restore profiles.
5. NDMP Service Privileges
5.1. NDMP Service Daemon
The NDMP service daemon needs different sets of privileges during backup and restore.
For backup the daemon needs to have sufficient privileges to be able to search all
directories and permission to read all files. The daemon does not need any
special file system write privileges during backup. The privileges required for
NDMP Backup are:
- PRIV_PROC_EXEC: to support calls to exec(2)
- PRIV_PROC_FORK: to support calls to fork(2)
- PRIV_PROC_AUDIT: to support auditing
- PRIV_FILE_DAC_READ: to read all files/directories
- PRIV_FILE_DAC_SEARCH: to search all directories
During restore the daemon needs to have write privileges to update directories, file
content and files attributes, as well as the read and search privileges listed above.
NDMP Restore requires the following privileges:
- PRIV_PROC_EXEC: to support calls to exec(2)
- PRIV_PROC_FORK: to support calls to fork(2)
- PRIV_PROC_AUDIT: to support auditing
- PRIV_FILE_DAC_READ: to read all files/directories
- PRIV_FILE_DAC_SEARCH: to search all directories
- PRIV_FILE_DAC_WRITE: to write to all files/directories
- PRIV_FILE_LINK_ANY: to create hardlinks to other's files
- PRIV_FILE_CHOWN: to change UID or GID
- PRIV_FILE_CHOWN_SELF: to give away files
- PRIV_FILE_SETID: to change owner without clearing set-uid bit
- PRIV_FILE_OWNER: to change file/dir modification/access time
- PRIV_SYS_LINKDIR: to link/unlink directories
The NDMP service manifest will specify the union of the above privilege
lists in the method_context for the start method.
In order to perform the required operations the NDMP service daemon will run as
root:sys. User root is required at startup to write to /var/run which is only
writable as root, and during its normal operation to be able to overwrite files
owned by root and to update directories that are only writable by root. Group
sys will allow access to /dev/rmt and /dev/scsi/changer.
The daemon will surrender privileges unnecessary for NDMP runtime operation
after process startup, for example, PRIV_PROC_EXEC, PRIV_PROC_FORK,
PRIV_PROC_SETID and PRIV_PROC_OWNER.
5.2. NDMP Service Administration and Statistics Reporting
ndmpadm(1M) and ndmpstat(1M) do not require any privileges.