This chapter provides step-by-step instructions for protecting devices, in addition to a reference section. The following is a list of the information in this chapter.
For overview information about device protection, see Controlling Access to Devices.
The following task map points to tasks for managing access to devices.
Task |
For Instructions |
---|---|
Manage device policy | |
Manage device allocation | |
Use device allocation |
The following task map points to device configuration procedures that are related to device policy.
Task |
Description |
For Instructions |
---|---|---|
View the device policy for the devices on your system |
Lists the devices and their device policy. | |
Require privilege for device use |
Uses privileges to protect a device. | |
Remove privilege requirements from a device |
Removes or lessens the privileges that are required to access a device. | |
Audit changes in device policy |
Records changes in device policy in the audit trail | |
Access /dev/arp |
Gets Solaris IP MIB-II information. |
Device policy restricts or prevents access to devices that are integral to the system. The policy is enforced in the kernel.
Display the device policy for all devices on your system.
% getdevpolicy | more DEFAULT read_priv_set=none write_priv_set=none ip:* read_priv_set=net_rawaccess write_priv_set=net_rawaccess … |
In this example, the device policy for three devices is displayed.
% getdevpolicy /dev/allkmem /dev/ipsecesp /dev/hme /dev/allkmem read_priv_set=all write_priv_set=all /dev/ipsecesp read_priv_set=sys_net_config write_priv_set=sys_net_config /dev/hme read_priv_set=net_rawaccess write_priv_set=net_rawaccess |
Assume a role that includes the Device Security rights profile, or become superuser.
The Primary Administrator role includes the Device Security rights profile. You can also assign the Device Security rights profile to a role that you create. To create the role and assign the role to a user, see Example 9–3.
Add policy to a device.
# update_drv -a -p policy device-driver |
Specifies a policy for device-driver.
Is the device policy for device-driver. Device policy specifies two sets of privileges. One set is required to read the device. The other set is required to write to the device.
Is the device driver.
For more information, see the update_drv(1M) man page.
In the following example, device policy is added to the ipnat device.
# getdevpolicy /dev/ipnat /dev/ipnat read_priv_set=none write_priv_set=none # update_drv -a \ -p 'read_priv_set=net_rawaccess write_priv_set=net_rawaccess' ipnat # getdevpolicy /dev/ipnat /dev/ipnat read_priv_set=net_rawaccess write_priv_set=net_rawaccess |
In the following example, the read set of privileges is removed from the device policy for the ipnat device.
# getdevpolicy /dev/ipnat /dev/ipnat read_priv_set=net_rawaccess write_priv_set=net_rawaccess # update_drv -a -p write_priv_set=net_rawaccess ipnat # getdevpolicy /dev/ipnat /dev/ipnat read_priv_set=none write_priv_set=net_rawaccess |
By default, the as audit class includes the AUE_MODDEVPLCY audit event.
Assume the Primary Administrator role, or become superuser.
The Primary Administrator role includes the Primary Administrator profile. To create the role and assign the role to a user, see Chapter 2, Working With the Solaris Management Console (Tasks), in System Administration Guide: Basic Administration.
Preselect the audit class that includes AUE_MODDEVPLCY audit event.
Add the as class to the flags line of the audit_control file. The file would appear similar to the following:
# audit_control file dir:/var/audit flags:lo,as minfree:20 naflags:lo |
For detailed instructions, see How to Modify the audit_control File.
Applications that retrieve Solaris IP MIB-II information should open /dev/arp, not /dev/ip.
Determine the device policy on /dev/ip and /dev/arp.
% getdevpolicy /dev/ip /dev/arp /dev/ip read_priv_set=net_rawaccess write_priv_set=net_rawaccess /dev/arp read_priv_set=none write_priv_set=none |
Note that the net_rawaccess privilege is required for reading and writing to /dev/ip. No privileges are required for /dev/arp.
Open /dev/arp and push the tcp and udp modules.
No privileges are required. This method is equivalent to opening /dev/ip and pushing the arp, tcp and udp modules. Because opening /dev/ip now requires a privilege, the /dev/arp method is preferred.
The following task map points to procedures that enable and configure device allocation. Device allocation is not enabled by default. After device allocation is enabled, see Allocating Devices (Task Map).
Task |
Description |
For Instructions |
---|---|---|
Make a device allocatable |
Enables a device to be allocated to one user at a time. | |
Authorize users to allocate a device |
Assigns device allocation authorizations to users. | |
View the allocatable devices on your system |
Lists the devices that are allocatable, and the state of the device. | |
Forcibly allocate a device |
Allocates a device to a user who has an immediate need | |
Forcibly deallocate a device |
Deallocates a device that is currently allocated to a user | |
Change the allocation properties of a device |
Changes the requirements for allocating a device | |
Create a device-clean script |
Purges data from a physical device. | |
Disable device allocation |
Removes allocation restrictions from all devices. | |
Audit device allocation |
Records device allocation in the audit trail |
Device allocation restricts or prevents access to peripheral devices. Restrictions are enforced at user allocation time. By default, users must have authorization to access allocatable devices.
If you have already run the bsmconv command to enable auditing, then device allocation is already enabled on your system. For more information, see the bsmconv(1M) man page.
Assume a role that includes the Audit Control rights profile, or become superuser.
The Primary Administrator role includes the Audit Control rights profile. You can also assign the Audit Control rights profile to a role that you create. To create the role and assign the role to a user, see Example 9–3.
# bsmconv This script is used to enable the Basic Security Module (BSM). Shall we continue with the conversion now? [y/n] y bsmconv: INFO: checking startup file. bsmconv: INFO: move aside /etc/rc3.d/S81volmgt. bsmconv: INFO: turning on audit module. bsmconv: INFO: initializing device allocation files. The Basic Security Module is ready. If there were any errors, please fix them now. Configure BSM by editing files located in /etc/security. Reboot this system now to come up with BSM enabled. |
The Volume Management daemon (/etc/rc3.d/S81volmgt) is disabled by this command.
Assume the Primary Administrator role, or become superuser.
The Primary Administrator role includes the Primary Administrator profile. To create the role and assign the role to a user, see Chapter 2, Working With the Solaris Management Console (Tasks), in System Administration Guide: Basic Administration.
Create a rights profile that contains the appropriate authorization and commands.
Typically, you would create a rights profile that includes the solaris.device.allocate authorization. Follow the instructions in How to Create or Change a Rights Profile. Give the rights profile appropriate properties, such as the following:
Rights profile name: Device Allocation
Granted authorizations: solaris.device.allocate
Commands with security attributes: mount with the sys_mount privilege, and umount with the sys_mount privilege
Create a role for the rights profile.
Follow the instructions in How to Create and Assign a Role by Using the GUI. Use the following role properties as a guide:
Role name: devicealloc
Role full name: Device Allocator
Role description: Allocates and mounts allocated devices
Rights profile: Device Allocation
This rights profile must be at the top of the list of profiles that are included in the role.
Assign the role to every user who is permitted to allocate a device.
Teach the users how to use device allocation.
For examples of allocating removable media, see How to Allocate a Device.
Because the Volume Management daemon (vold) is not running, removable media are not automatically mounted. For examples of mounting a device that has been allocated, see How to Mount an Allocated Device.
Device allocation must be enabled for this procedure to succeed. To enable device allocation, see How to Make a Device Allocatable.
Assume a role that includes the Device Security rights profile, or become superuser.
The Primary Administrator role includes the Device Security rights profile. You can also assign the Device Security rights profile to a role that you create. To create the role and assign the role to a user, see Example 9–3.
Display information about allocatable devices on your system.
# list_devices device-name |
where device-name is one of the following:
audio[n] – Is a microphone and speaker.
fd[n] – Is a diskette drive.
sr[n] – Is a CD-ROM drive.
st[n] – Is a tape drive.
If the list_devices command returns an error message similar to the following, then either device allocation is not enabled, or you do not have sufficient permissions to retrieve the information.
list_devices: No device maps file entry for specified device.
For the command to succeed, enable device allocation and assume a role with the solaris.device.revoke authorization.
Forcible allocation is used when someone has forgotten to deallocate a device. Forcible allocation can also be used when a user has an immediate need for a device.
The user or role must have the solaris.device.revoke authorization.
Determine if you have the appropriate authorizations in your role.
$ auths solaris.device.allocate solaris.device.revoke |
Forcibly allocate the device to the user who needs the device.
In this example, the tape drive is forcibly allocated to the user jdoe.
$ allocate -U jdoe |
Devices that a user has allocated are not automatically deallocated when the process terminates or when the user logs out. Forcible deallocation is used when a user has forgotten to deallocate a device.
The user or role must have the solaris.device.revoke authorization.
Determine if you have the appropriate authorizations in your role.
$ auths solaris.device.allocate solaris.device.revoke |
Forcibly deallocate the device.
In this example, the printer is forcibly deallocated. The printer is now available for allocation by another user.
$ deallocate -f /dev/lp/printer-1 |
Assume a role that includes the Device Security rights profile, or become superuser.
The Primary Administrator role includes the Device Security rights profile. You can also assign the Device Security rights profile to a role that you create. To create the role and assign the role to a user, see Example 9–3.
Specify if authorization is required, or specify the solaris.device.allocate authorization.
Change the fifth field in the device entry in the device_allocate file.
audio;audio;reserved;reserved;solaris.device.allocate;/etc/security/lib/audio_clean fd0;fd;reserved;reserved;solaris.device.allocate;/etc/security/lib/fd_clean sr0;sr;reserved;reserved;solaris.device.allocate;/etc/security/lib/sr_clean |
where solaris.device.allocate indicates that a user must have the solaris.device.allocate authorization to use the device.
In the following example, any user on the system can allocate any device. The fifth field in every device entry in the device_allocate file has been changed to an at sign (@).
$ whoami devicesec $ vi /etc/security/device_allocate audio;audio;reserved;reserved;@;/etc/security/lib/audio_clean fd0;fd;reserved;reserved;@;/etc/security/lib/fd_clean sr0;sr;reserved;reserved;@;/etc/security/lib/sr_clean … |
In the following example, the audio device cannot be used. The fifth field in the audio device entry in the device_allocate file has been changed to an asterisk (*).
$ whoami devicesec $ vi /etc/security/device_allocate audio;audio;reserved;reserved;*;/etc/security/lib/audio_clean fd0;fd;reserved;reserved;solaris device.allocate;/etc/security/lib/fd_clean sr0;sr;reserved;reserved;solaris device.allocate;/etc/security/lib/sr_clean … |
In the following example, no peripheral device can be used. The fifth field in every device entry in the device_allocate file has been changed to an asterisk (*).
$ whoami devicesec $ vi /etc/security/device_allocate audio;audio;reserved;reserved;*;/etc/security/lib/audio_clean fd0;fd;reserved;reserved;*;/etc/security/lib/fd_clean sr0;sr;reserved;reserved;*;/etc/security/lib/sr_clean … |
By default, the device allocation commands are in the other audit class.
Assume the Primary Administrator role, or become superuser.
The Primary Administrator role includes the Primary Administrator profile. To create the role and assign the role to a user, see Chapter 2, Working With the Solaris Management Console (Tasks), in System Administration Guide: Basic Administration.
Preselect the ot class for auditing.
Add the ot class to the flags line of the audit_control file. The file would appear similar to the following:
# audit_control file dir:/var/audit flags:lo,ot minfree:20 naflags:lo |
For detailed instructions, see How to Modify the audit_control File.
The following task map points to procedures that show users how to allocate devices.
Task |
Description |
For Instructions |
---|---|---|
Allocate a device |
Enables a user to use a device, while preventing any other user from using the device. | |
Mount an allocated device |
Enables a user to view a device that requires mounting, such as a CD-ROM or a diskette. | |
Deallocate a device |
Makes an allocatable device available for use by another user. |
Device allocation reserves the use of a device to one user at a time. Devices that require a mount point must be mounted.
Device allocation must be enabled, as described in How to Make a Device Allocatable. If authorization is required, the user must have the authorization.
Allocate the device.
Specify the device by device name.
% allocate device-name |
Verify that the device is allocated.
Run the identical command.
% allocate device-name allocate. Device already allocated. |
In this example, the user jdoe allocates a microphone, audio.
% whoami jdoe % allocate audio |
In this example, a user allocates a printer. No one else can print to printer-1 until the user deallocates it, or until the printer is forcibly allocated to another user.
% allocate /dev/lp/printer-1 |
For an example of forcible deallocation, see Forcibly Deallocating a Device.
In this example, the user jdoe allocates a tape drive, st0.
% whoami jdoe % allocate st0 |
If the allocate command cannot allocate the device, an error message is displayed in the console window. For a list of allocation error messages, see the allocate(1) man page.
The user or role has allocated the device. To mount a device, the user or role must have the privileges that are required for mounting the device. To give the required privileges, see How to Authorize Users to Allocate a Device.
Assume a role that can allocate and mount a device.
% su - role-name Password: <Type role-name password> $ |
Create and protect a mount point in the role's home directory.
You only need to do this step the first time you need a mount point.
$ mkdir mount-point ; chmod 700 mount-point |
List the allocatable devices.
$ list_devices -l List of allocatable devices |
Allocate the device.
Specify the device by device name.
$ allocate device-name |
Mount the device.
$ mount -o ro -F filesystem-type device-path mount-point |
where
Indicates that the device is to be mounted read-only. Use-o rw to indicate that you should be able to write to the device.
Indicates the file system format of the device. Typically, a CD-ROM is formatted with an HSFS file system. A diskette is typically formatted with a PCFS file system.
Indicates the path to the device. The output of the list_devices -l command includes the device-path.
Indicates the mount point that you created in Step 2.
In this example, a user assumes a role that can allocate and mount a diskette drive, fd0. The diskette is formatted with a PCFS file system.
% roles devicealloc % su - devicealloc Password: <Type devicealloc password> $ mkdir /home/devicealloc/mymnt $ chmod 700 /home/devicealloc/mymnt $ list_devices -l ... device: fd0 type: fd files: /dev/diskette /dev/rdiskette /dev/fd0a ... $ allocate fd0 $ mount -o ro -F pcfs /dev/diskette /home/devicealloc/mymnt $ ls /home/devicealloc/mymnt List of the contents of diskette |
In this example, a user assumes a role that can allocate and mount a CD-ROM drive, sr0. The drive is formatted as an HSFS file system.
% roles devicealloc % su - devicealloc Password: <Type devicealloc password> $ mkdir /home/devicealloc/mymnt $ chmod 700 /home/devicealloc/mymnt $ list_devices -l ... device: sr0 type: sr files: /dev/sr0 /dev/rsr0 /dev/dsk/c0t2d0s0 ... ... $ allocate sr0 $ mount -o ro -F hsfs /dev/sr0 /home/devicealloc/mymnt $ cd /home/devicealloc/mymnt ; ls List of the contents of CD-ROM |
If the mount command cannot mount the device, an error message is displayed: mount: insufficient privileges. Check the following:
Make sure that you are executing the mount command in a profile shell. If you have assumed a role, the role has a profile shell. If you are a user who has been assigned a profile with the mount command, you must create a profile shell. The commands pfsh, pfksh, and pfcsh create a profile shell.
Make sure that you own the specified mount point. You should have read, write, and execute access to the mount point.
Contact your administrator if you still cannot mount the allocated device.
Deallocation enables other users to allocate and use the device when you are finished.
You must have allocated the device.
If the device is mounted, unmount the device.
$ cd $HOME $ umount mount-point |
Deallocate the device.
$ deallocate device-name |
In this example, the user jdoe deallocates the microphone, audio.
% whoami jdoe % deallocate audio |
In this example, the Device Allocator role deallocates a CD-ROM drive. After the message is printed, the CD-ROM is ejected.
$ whoami devicealloc $ cd /home/devicealloc $ umount /home/devicealloc/mymnt $ ls /home/devicealloc/mymnt $ $ deallocate sr0 /dev/sr0: 326o /dev/rsr0: 326o … sr_clean: Media in sr0 is ready. Please, label and store safely. |
Devices in the Solaris OS are protected by device policy. Peripheral devices can be protected by device allocation. Device policy is enforced by the kernel. Device allocation is optionally enabled, and is enforced at the user level.
Device management commands administer the device policy on local files. Device policy can include privilege requirements. Only superuser or a role of equivalent capabilities can manage devices.
The following table lists the device management commands.
Table 5–1 Device Management Commands
Command |
Purpose |
Man Page |
---|---|---|
Administers devices and device drivers on a running system. Also loads device policy. The devfsadm command enables the cleanup of dangling /dev links to disk, tape, port, audio, and pseudo devices. Devices for a named driver can also be reconfigured. | ||
Displays the policy associated with one or more devices. This command can be run by any user. | ||
Adds a new device driver to a running system. Contains options to add device policy to the new device. Typically, this command is called in a script when a device driver is being installed. | ||
Updates the attributes of an existing device driver. Contains options to update the device policy for the device. Typically, this command is called in a script when a device driver is being installed. | ||
Removes a device or device driver. |
Device allocation can protect your site from loss of data, computer viruses, and other security breaches. Unlike device policy, device allocation is optional. Devices are not allocatable until the bsmconv script is run. Device allocation uses authorizations to limit access to allocatable devices.
The components of the device allocation mechanism are as follows:
The allocate, deallocate, dminfo, and list_devices commands. For more information, see Device Allocation Commands.
Device-clean scripts for each allocatable device.
These commands and scripts use the following local files to implement device allocation:
The /etc/security/device_allocate file. For more information, see the device_allocate(4) man page.
The /etc/security/device_maps file. For more information, see the device_maps(4) man page.
A lock file, in the /etc/security/dev directory, for each allocatable device.
The changed attributes of the lock files that are associated with each allocatable device.
The /etc/security/dev directory might not be supported in future releases of the Solaris OS.
With uppercase options, the allocate, deallocate, and list_devices commands are administrative commands. Otherwise, these commands are user commands. The following table lists the device allocation commands.
Table 5–2 Device Allocation Commands
By default, users must have the solaris.device.allocate authorization to reserve an allocatable device. To create a rights profile to include the solaris.device.allocate authorization, see How to Authorize Users to Allocate a Device.
Administrators must have the solaris.device.revoke authorization to change the allocation state of any device. For example, the -U option to the allocate and list_devices commands, and the -F option to the deallocate command require the solaris.device.revoke authorization.
For more information, see Commands That Require Authorizations.
A device is put in an allocate error state when the deallocate command fails to deallocate, or when the allocate command fails to allocate. When an allocatable device is in an allocate error state, then the device must be forcibly deallocated. Only superuser or a role with the Device Management rights profile or the Device Security rights profile can handle an allocate error state.
The deallocate command with the -F option forces deallocation. Or, you can use allocate -U to assign the device to a user. Once the device is allocated, you can investigate any error messages that appear. After any problems with the device are corrected, you can forcibly deallocate it.
Device maps are created when you set up device allocation. A default /etc/security/device_maps file is created by the bsmconv command when the auditing service is enabled. This initial device_maps file can be customized for your site. The device_maps file includes the device names, device types, and device-special files that are associated with each allocatable device.
The device_maps file defines the device-special file mappings for each device, which in many cases is not intuitive. This file allows programs to discover which device-special files map to which devices. You can use the dminfo command, for example, to retrieve the device name, the device type, and the device-special files to specify when you set up an allocatable device. The dminfo command uses the device_maps file to report this information.
Each device is represented by a one-line entry of the form:
device-name:device-type:device-list |
The following is an example of an entry in a device_maps file for a diskette drive, fd0:
fd0:\ fd:\ /dev/diskette /dev/rdiskette /dev/fd0a /dev/rfd0a \ /dev/fd0b /dev/rfd0b /dev/fd0c /dev/fd0 /dev/rfd0c /dev/rfd0:\ |
Lines in the device_maps file can end with a backslash (\) to continue an entry on the next line. Comments can also be included. A pound sign (#) comments all subsequent text until the next newline that is not immediately preceded by a backslash. Leading and trailing blanks are allowed in any field. The fields are defined as follows:
Specifies the name of the device. For a list of current device names, see How to View Allocation Information About a Device.
Specifies the generic device type. The generic name is the name for the class of devices, such as st, fd, or audio. The device-type field logically groups related devices.
Lists the device-special files that are associated with the physical device. The device-list must contain all of the special files that allow access to a particular device. If the list is incomplete, a malevolent user can still obtain or modify private information. Valid entries for the device-list field reflect the device files that are located in the /dev directory.
An initial /etc/security/device_allocate file is created by the bsmconv command when the auditing service is enabled. This initial device_allocate file can be used as a starting point. You can modify the device_allocate file to change devices from allocatable to nonallocatable, or to add new devices. A sample device_allocate file follows.
st0;st;;;;/etc/security/lib/st_clean fd0;fd;;;;/etc/security/lib/fd_clean sr0;sr;;;;/etc/security/lib/sr_clean audio;audio;;;*;/etc/security/lib/audio_clean |
An entry in the device_allocate file does not mean that the device is allocatable, unless the entry specifically states that the device is allocatable. In the sample device_allocate file, note the asterisk (*) in the fifth field of the audio device entry. An asterisk in the fifth field indicates to the system that the device is not allocatable. Therefore, the device cannot be used. Other values or no value in this field indicates that the device can be used.
In the device_allocate file, each device is represented by a one-line entry of the form:
device-name;device-type;reserved;reserved;auths;device-exec |
Lines in the device_allocate file can end with a backslash (\) to continue an entry on the next line. Comments can also be included. A pound sign (#) comments all subsequent text until the next newline that is not immediately preceded by a backslash. Leading and trailing blanks are allowed in any field. The fields are defined as follows:
Specifies the name of the device. For a list of current device names, see How to View Allocation Information About a Device.
Specifies the generic device type. The generic name is the name for the class of devices, such as st, fd, and sr. The device-type field logically groups related devices. When you make a device allocatable, retrieve the device name from the device-type field in the device_maps file.
Sun reserves the two fields that are marked reserved for future use.
Specifies whether the device is allocatable. An asterisk (*) in this field indicates that the device is not allocatable. An authorization string, or an empty field, indicates that the device is allocatable. For example, the string solaris.device.allocate in the auths field indicates that the solaris.device.allocate authorization is required to allocate the device. An at sign (@) in this file indicates that the device is allocatable by any user.
Supplies the path name of a script to be invoked for special handling, such as cleanup and object-reuse protection during the allocation process. The device-exec script is run any time that the device is acted on by the deallocate command.
For example, the following entry for the sr0 device indicates that the CD-ROM drive is allocatable by a user with the solaris.device.allocate authorization:
sr0;sr;reserved;reserved;solaris.device.allocate;/etc/security/lib/sr_clean |
You can decide to accept the default devices and their defined characteristics. After you install a new device, you can modify the entries. Any device that needs to be allocated before use must be defined in the device_allocate and device_maps files for that device's system. Currently, cartridge tape drives, diskette drives, CD-ROM drives, and audio chips are considered allocatable. These device types have device-clean scripts.
XylogicsTM tape drives or Archive tape drives also use the st_clean script that is supplied for SCSI devices. You need to create your own device-clean scripts for other devices, such as modems, terminals, graphics tablets, and other allocatable devices. The script must fulfill object-reuse requirements for that type of device.
Device allocation satisfies part of what is called the object reuse requirement. The device-clean scripts address the security requirement that all usable data be purged from a physical device before reuse. The data is cleared before the device is allocatable by another user. By default, cartridge tape drives, diskette drives, CD-ROM drives, and audio devices require device-clean scripts. The Solaris OS provides the scripts. This section describes what device-clean scripts do.
The st_clean device-clean script supports three tape devices:
SCSI ¼-inch tape
Archive ¼-inch tape
Open-reel ½-inch tape
The st_clean script uses the rewoffl option to the mt command to clean up the device. For more information, see the mt(1) man page. If the script runs during system boot, the script queries the device to determine if the device is online. If the device is online, the script determines if the device has media in it. The ¼-inch tape devices that have media in them are placed in the allocate error state. The allocate error state forces the administrator to manually clean up the device.
During normal system operation, when the deallocate command is executed in interactive mode, the user is prompted to remove the media. Deallocation is delayed until the media is removed from the device.
The following device-clean scripts are provided for diskettes and CD-ROM drives:
The scripts use the eject command to remove the media from the drive. If the eject command fails, the device is placed in the allocate error state. For more information, see the eject(1) man page.
Audio devices are cleaned up with an audio_clean script. The script performs an AUDIO_GETINFO ioctl system call to read the device. The script then performs an AUDIO_SETINFO ioctl system call to reset the device configuration to the default.
If you add more allocatable devices to the system, you might need to create your own device-clean scripts. The deallocate command passes a parameter to the device-clean scripts. The parameter, which is shown here, is a string that contains the device name. For more information, see the device_allocate(4) man page.
clean-script -[I|i|f|S] device-name |
Device-clean scripts must return “0” for success and greater than “0” for failure. The options -I, -f, and -S determine the running mode of the script:
Is needed during system boot only. All output must go to the system console. Failure or inability to forcibly eject the media must put the device in the allocate error state.
Is for forced cleanup. The option is interactive and assumes that the user is available to respond to prompts. A script with this option must attempt to complete the cleanup if one part of the cleanup fails.
Is for standard cleanup. The option is interactive and assumes that the user is available to respond to prompts.