本章介绍了保护设备的逐步说明,并包含一个参考部分。以下是本章中的信息列表:
有关设备保护的概述信息,请参见控制对设备的访问。
以下任务列表介绍了管理设备访问的任务。
任务 |
参考 |
---|---|
管理设备策略 | |
管理设备分配 | |
使用设备分配 |
以下任务列表介绍了与设备策略相关的设备配置过程。
任务 |
说明 |
参考 |
---|---|---|
查看系统上设备的设备策略 |
列出设备及其设备策略。 | |
要求使用设备的权限 |
使用权限保护设备。 | |
删除设备的权限要求 |
删除或减少访问设备所需的权限。 | |
审计设备策略中的更改 |
在审计跟踪中记录设备策略的更改。 | |
访问 /dev/arp |
获取 Solaris IP MIB-II 信息。 |
设备策略会限制或防止对作为系统整体部分的设备进行访问。策略在内核中实施。
显示系统上所有设备的设备策略。
% getdevpolicy | more DEFAULT read_priv_set=none write_priv_set=none ip:* read_priv_set=net_rawaccess write_priv_set=net_rawaccess … |
此示例显示了三个设备的设备策略。
% 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 |
承担拥有设备安全权限配置文件的角色或成为超级用户。
主管理员角色拥有设备安全权限配置文件。还可以将设备安全权限配置文件指定给所创建的角色。有关如何创建角色并将其指定给用户的信息,请参见示例 9–3。
向设备中添加策略。
# update_drv -a -p policy device-driver |
指定 device-driver 的 policy。
device-driver 的设备策略。设备策略指定两组权限。一组用于读取设备,另一组用于写入设备。
设备驱动程序。
有关更多信息,请参见 update_drv(1M) 手册页。
以下示例向 ipnat 设备中添加设备策略。
# 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 |
以下示例从 ipnat 设备的设备策略中删除读取的一组权限。
# 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 |
缺省情况下,as 审计类包括 AUE_MODDEVPLCY 审计事件。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
预选包括 AUE_MODDEVPLCY 审计事件的审计类。
将 as 类添加到 audit_control 文件的 flags 行中。此文件的显示将与以下内容类似:
# audit_control file dir:/var/audit flags:lo,as minfree:20 naflags:lo |
有关详细说明,请参见如何修改 audit_control 文件。
检索 Solaris IP MIB-II 信息的应用程序应该打开 /dev/arp,而不是 /dev/ip。
确定 /dev/ip 和 /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 |
请注意,读写 /dev/ip 需要具有 net_rawaccess 权限,而 /dev/arp 不需要权限。
打开 /dev/arp 并推送 tcp 和 udp 模块。
此方法不需要权限,与打开 /dev/ip 并推送 arp、tcp 和 udp 模块等效。由于现在打开 /dev/ip 需要权限,因此首选使用 /dev/arp 方法。
以下任务列表介绍了启用和配置设备分配的过程。缺省情况下不会启用设备分配。启用设备分配之后,请参见分配设备(任务列表)。
任务 |
说明 |
参考 |
---|---|---|
使设备可分配 |
可以一次将一个设备分配给一个用户。 | |
授权用户分配设备 |
将设备分配授权指定给用户。 | |
查看系统上的可分配设备 |
列出可分配的设备及其状态。 | |
强制分配设备 |
将设备分配给有即时需要的用户 | |
强制解除设备分配 |
解除当前分配给某用户设备的分配 | |
更改设备的分配属性 |
更改分配设备的要求 | |
创建设备清理脚本 |
清除物理设备中的数据。 | |
禁用设备分配 |
删除所有设备中的分配限制。 | |
审计设备分配 |
在审计跟踪中记录设备分配 |
设备分配会限制或防止对外围设备进行访问。限制在用户分配时实施。缺省情况下,用户必须具有授权才能访问可分配设备。
如果已经运行 bsmconv 命令启用了审计,则已经在系统上启用了设备分配。有关更多信息,请参见 bsmconv(1M) 手册页。
承担拥有审计控制权限配置文件的角色或成为超级用户。
主管理员角色拥有审计控制权限配置文件。还可以将审计控制权限配置文件指定给所创建的角色。有关如何创建角色并将其指定给用户的信息,请参见示例 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. |
此命令禁用 Volume Management 守护进程 (/etc/rc3.d/S81volmgt)。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
创建包含适当授权和命令的权限配置文件。
通常,可以创建包括 solaris.device.allocate 授权的权限配置文件。请按照如何创建或更改权限配置文件中的说明执行。授予权限配置文件适当属性,例如:
权限配置文件名称: Device Allocation
授予的授权: solaris.device.allocate
带有安全属性的命令:带有 sys_mount 权限的 mount 和带有 sys_mount 权限的 umount
创建权限配置文件的角色。
请按照如何使用 GUI 创建和指定角色中的说明执行。使用以下角色属性作为指南:
角色名: devicealloc
角色全名: Device Allocator
角色说明: Allocates and mounts allocated devices
权限配置文件: Device Allocation
此权限配置文件必须在包括于角色中的配置文件列表的顶部。
将此角色指定给允许分配设备的每个用户。
为用户讲授如何使用设备分配。
有关分配可移除介质的示例,请参见如何分配设备。
由于 Volume Management 守护进程 (vold) 未运行,因此不会自动挂载可移除介质。有关挂载已分配设备的示例,请参见如何挂载已分配的设备。
必须启用设备分配,此过程才会成功。有关如何启用设备分配的信息,请参见如何使设备可分配。
承担拥有设备安全权限配置文件的角色或成为超级用户。
主管理员角色拥有设备安全权限配置文件。还可以将设备安全权限配置文件指定给所创建的角色。有关如何创建角色并将其指定给用户的信息,请参见示例 9–3。
# list_devices device-name |
其中,device-name 是以下各项之一:
audio[n]-麦克风和扬声器。
fd[n]-软盘驱动器。
sr[n]-CD-ROM 驱动器。
st[n]-磁带机。
如果 list_devices 命令返回一条类似于以下内容的错误消息,则表明未启用设备分配,或者您不具有足够权限来检索此信息。
list_devices: No device maps file entry for specified device.
为使此命令成功执行,请启用设备分配并承担具有 solaris.device.revoke 授权的角色。
强制分配应在某个用户忘记解除设备分配时使用,也可以在用户对设备有即时需要时使用。
此用户或角色必须具有 solaris.device.revoke 授权。
确定角色中是否具有适当授权。
$ auths solaris.device.allocate solaris.device.revoke |
将设备强制分配给需要此设备的用户。
此示例将磁带机强制分配给用户 jdoe。
$ allocate -U jdoe |
在进程终止或用户注销时,不会自动解除对用户的设备分配。用户忘记解除设备分配时,应使用强制解除分配。
此用户或角色必须具有 solaris.device.revoke 授权。
确定角色中是否具有适当授权。
$ auths solaris.device.allocate solaris.device.revoke |
强制解除设备分配。
此示例强制解除打印机分配。现在,其他用户可以分配此打印机。
$ deallocate -f /dev/lp/printer-1 |
承担拥有设备安全权限配置文件的角色或成为超级用户。
主管理员角色拥有设备安全权限配置文件。还可以将设备安全权限配置文件指定给所创建的角色。有关如何创建角色并将其指定给用户的信息,请参见示例 9–3。
指定是否需要授权,或者指定 solaris.device.allocate 授权。
更改 device_allocate 文件中设备项的第五个字段。
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 |
其中,solaris.device.allocate 指示用户必须具有 solaris.device.allocate 授权才能使用此设备。
在以下示例中,系统上的任何用户都可以分配所有设备。device_allocate 文件中每个设备项的第五个字段都更改为一个 at 符号 (@)。
$ 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 … |
在以下示例中,不能使用音频设备。device_allocate 文件中音频设备项的第五个字段更改为一个星号 (*)。
$ 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 … |
在以下示例中,不能使用外围设备。device_allocate 文件中每个设备项的第五个字段都更改为一个星号 (*)。
$ 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 … |
缺省情况下,设备分配命令位于 other 审计类中。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
预选 ot 类进行审计。
将 ot 类添加到 audit_control 文件的 flags 行中。此文件的显示与以下信息类似:
# audit_control file dir:/var/audit flags:lo,ot minfree:20 naflags:lo |
有关详细说明,请参见如何修改 audit_control 文件。
以下任务列表介绍了向用户说明如何分配设备的过程。
任务 |
说明 |
参考 |
---|---|---|
分配设备 |
使某用户可以用某设备,同时防止任何其他用户使用此设备。 | |
挂载已分配的设备 |
使用户可以查看需要挂载的设备,例如 CD-ROM 或软盘。 | |
解除设备分配 |
使其他用户可以使用可分配设备。 |
设备分配使设备每次只能被一个用户使用。必须挂载需要挂载点的设备。
必须启用设备分配,如如何使设备可分配中所述。如果需要授权,则用户必须具有此授权。
分配设备。
根据设备名称指定设备。
% allocate device-name |
检验是否已分配此设备。
运行相同命令。
% allocate device-name allocate. Device already allocated. |
在此示例中,用户 jdoe 分配麦克风 audio。
% whoami jdoe % allocate audio |
在此示例中,某用户分配打印机。该用户解除打印机分配或打印机被强制分配给其他用户之前,任何其他用户都不能打印到 printer-1。
% allocate /dev/lp/printer-1 |
有关强制解除分配的示例,请参见强制解除设备分配。
在此示例中,用户 jdoe 分配磁带机 st0。
% whoami jdoe % allocate st0 |
如果 allocate 命令不能分配设备,则会在控制台窗口显示一条错误消息。有关分配错误消息的列表,请参见 allocate(1) 手册页。
用户或角色已分配了此设备。要挂载设备,用户或角色必须具有挂载此设备所需的权限。有关如何提供所需权限的信息,请参见如何授权用户来分配设备。
承担可以分配和挂载设备的角色。
% su role-name Password: <键入 role-name 的口令> $ |
在角色起始目录中创建并保护挂载点。
只需在首次需要挂载点的时候执行此步骤。
$ mkdir mount-point ; chmod 700 mount-point |
列出可分配的设备。
$ list_devices -l List of allocatable devices |
分配设备。
根据设备名称指定设备。
$ allocate device-name |
挂载设备。
$ mount -o ro -F filesystem-type device-path mount-point |
其中,
指示将此设备挂载为只读。使用 -o rw 指示应该可以写入此设备。
指示设备的文件系统格式。通常,使用 HSFS 文件系统格式化 CD-ROM。而软盘通常使用 PCFS 文件系统进行格式化。
指示设备的路径。list_devices -l 命令的输出包括 device-path。
指示在步骤 2 中创建的挂载点。
在此示例中,用户承担可以分配和挂载软盘驱动器 fd0 的角色。软盘已使用 PCFS 文件系统进行了格式化。
% roles devicealloc % su devicealloc Password: <键入 devicealloc 的口令> $ 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 |
在此示例中,用户承担可以分配和挂载 CD-ROM 驱动器 sr0 的角色。此驱动器按照 HSFS 文件系统进行格式化。
% roles devicealloc % su devicealloc Password: <键入 devicealloc 的口令> $ 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 |
如果 mount 命令不能挂载设备,则会显示一条错误消息: mount:insufficient privileges。检查以下各项:
确保正在配置文件 shell 中执行 mount 命令。如果已经承担了某角色,则此角色具有一个配置文件 shell。如果您是被指定了带有 mount 命令的配置文件的用户,则必须创建一个配置文件 shell。命令 pfsh、pfksh 和 pfcsh 可创建配置文件 shell。
确保拥有指定的挂载点。您应该具有挂载点的读取、写入和执行权限。
如果仍然不能挂载已分配的设备,请与管理员联系。
解除分配使其他用户可以分配和使用此设备。
必须已经分配此设备。
在此示例中,用户 jdoe解除麦克风 audio 的分配。
% whoami jdoe % deallocate audio |
在此示例中,设备分配器角色解除 CD-ROM 驱动器的分配。消息列显后,会弹出 CD-ROM。
$ 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. |
设备策略保护 Solaris OS 中的设备。设备分配可以保护外围设备。设备策略由内核实施。可以选择启用设备分配,并在用户级别实施。
设备管理命令管理本地文件的设备策略。设备策略可以包括权限要求。只有超级用户或具有等效功能的角色才能管理设备。
下表列出了设备管理命令。
表 4–1 设备管理命令
命令 |
目的 |
手册页 |
---|---|---|
在运行的系统上管理设备和设备驱动程序。还装入设备策略。 使用 devfsadm 命令,可以清除指向磁盘、磁带、端口、音频设备和伪设备的不稳定 /dev 链接。还可以重新配置已命名驱动程序的设备。 | ||
显示与一个或多个设备关联的策略。任何用户都可以运行此命令。 | ||
将新设备驱动程序添加到正在运行的系统。包含将设备策略添加到此新设备的选项。通常,正在安装设备驱动程序时会在脚本中调用此命令。 | ||
更新现有设备驱动程序的属性。包含为此设备更新设备策略的选项。通常,正在安装设备驱动程序时会在脚本中调用此命令。 | ||
删除设备或设备驱动程序。 |
设备分配可以保护站点免受数据丢失、计算机病毒以及其他安全问题的破坏。与设备策略不同,设备分配是可选的。只有在 bsmconv 脚本运行之后才可分配设备。。设备分配使用授权限制对可分配设备的访问。
allocate、deallocate、 dminfo 和 list_devices 命令。有关更多信息,请参见设备分配命令。
各个可分配设备的设备清理脚本。
这些命令和脚本使用以下本地文件实现设备分配:
/etc/security/device_allocate 文件。有关更多信息,请参见 device_allocate(4) 手册页。
/etc/security/device_maps 文件。有关更多信息,请参见 device_maps(4) 手册页。
/etc/security/dev 目录中每个可分配设备的锁定文件。
与每个可分配设备关联的锁定文件的已更改属性。
Solaris OS 的将来发行版可能不支持 /etc/security/dev 目录。
与大写选项一起使用时,allocate、deallocate 和 list_devices 命令是管理命令。否则,这些命令是用户命令。下表列出了设备分配命令。
表 4–2 设备分配命令
缺省情况下,用户必须具有 solaris.device.allocate 授权才能保留可分配设备。有关如何创建包括 solaris.device.allocate 授权的权限配置文件的信息,请参见如何授权用户来分配设备。
管理员必须具有 solaris.device.revoke 授权才能更改任何设备的分配状态。例如,allocate 和 list_devices 命令的 -U 选项,以及 deallocate 命令的 -F 选项需要 solaris.device.revoke 授权。
有关更多信息,请参见要求授权的命令。
当 deallocate 命令解除分配失败,或 allocate 命令分配失败时,设备将被置于分配错误状态。可分配设备处于分配错误状态时,必须强制解除对此设备的分配。只有超级用户或者具有设备管理权限配置文件或设备安全权限配置文件的角色才能处理分配错误状态。
deallocate 命令和 -F 选项一起使用可强制解除分配。或者,可以使用 allocate -U 将设备指定给用户。设备分配后,便可查明出现的任何错误消息。更正设备的所有问题后,可强制解除其分配。
设置设备分配时会创建设备映射。启用审计服务后,bsmconv 命令会创建缺省 /etc/security/device_maps 文件。可以为站点自定义此初始 device_maps 文件。device_maps 文件包括与每个可分配设备关联的设备名称、设备类型和设备特定文件。
device_maps 文件定义每个设备的设备特定文件映射,这在许多情况下并不是直观的。使用此文件,程序可以查看设备特定文件和设备之间的映射关系。例如,可以使用 dminfo 命令,在设置可分配设备时检索要指定的设备名称、设备类型和设备特定文件。dminfo 命令使用 device_maps 文件来报告此信息。
device-name:device-type:device-list |
以下是 device_maps 文件中软盘驱动器 fd0 的项的示例:
fd0:\ fd:\ /dev/diskette /dev/rdiskette /dev/fd0a /dev/rfd0a \ /dev/fd0b /dev/rfd0b /dev/fd0c /dev/fd0 /dev/rfd0c /dev/rfd0:\ |
device_maps 文件中的行可以用反斜杠 (\) 结束,以在下一行继续项。也可以包括注释。井号 (#) 注释前面未紧跟反斜杠的下一个新行之前的所有后续文本。所有字段中都允许前导空格和后缀空格。字段定义如下:
指定此设备的名称。有关当前设备名称的列表,请参见如何查看有关设备的分配信息。
指定通用设备类型。通用名称是设备类的名称,例如 st、fd 或 audio。device-type 字段在逻辑上将相关设备分组。
列出与物理设备关联的设备特定文件。device-list 必须包含所有允许访问特定设备的特定文件。如果此列表不完整,则恶意用户仍可以获取或修改专用信息。device-list 字段的有效项反映位于 /dev 目录中的设备文件。
启用审计服务后,bsmconv 命令会创建初始 /etc/security/device_allocate 文件。此初始 device_allocate 文件可以用作起始点。可以修改 device_allocate 文件,以将设备从可分配更改为不可分配,或者添加新设备。以下是一个 device_allocate 文件样例。
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 |
device_allocate 文件中的项并不表示此设备是可分配的,除非此项专门声明此设备是可分配的。请注意 device_allocate 文件样例中音频设备项第五个字段中的星号 (*)。第五个字段中的星号向系统指示此设备不是可分配的。因此,不能使用此设备。如果此字段中存在其他值或没有值,则指示可以使用此设备。
在 device_allocate 文件中,每个设备由仅占一行的项表示,该项的格式如下:
device-name;device-type;reserved;reserved;auths;device-exec |
device_allocate 文件中的行可以用反斜杠 (\) 结束,以在下一行继续项。也可以包括注释。井号 (#) 注释前面未紧跟反斜杠的下一个新行之前的所有后续文本。所有字段都允许前导空格和后缀空格。字段定义如下:
指定此设备的名称。有关当前设备名称的列表,请参见如何查看有关设备的分配信息。
指定通用设备类型。通用名称是设备类的名称,例如 st、fd 和 sr。device-type 字段在逻辑上将相关设备分组。使设备可分配后,可 device_maps 文件的 device-type 字段中检索设备名称。
Sun 保留两个标记为 reserved 的字段以供将来使用。
指定此设备是否可分配。此字段中的星号 (*) 指示此设备是不可分配的。授权字符串或空字段指示此设备是可分配的。例如,auths 字段中的字符串 solaris.device.allocate 指示需要 solaris.device.allocate 授权才能分配此设备。此文件中的 at 符号 (@) 指示任何用户都可以分配此设备。
提供为特殊处理(例如分配进程期间的清除和对象重用保护)而调用的脚本的路径名称。每当 deallocate 命令对此设备执行操作时,都会运行 device-exec 脚本。
例如,sr0 设备的以下项指示具有 solaris.device.allocate 授权的用户可以分配 CD-ROM 驱动器:
sr0;sr;reserved;reserved;solaris.device.allocate;/etc/security/lib/sr_clean |
可以决定接受缺省设备及其已定义特征。安装新设备后,可以修改这些项。任何需要在使用之前分配的设备都必须在该设备系统的 device_allocate 和 device_maps 文件中定义。当前,将盒式磁带机、软盘驱动器、CD-ROM 驱动器和音频芯片视为可分配的。这些设备类型具有设备清理脚本。
XylogicsTM 磁带机或归档磁带机还使用为 SCSI 设备提供的 st_clean 脚本。需要为其他设备(如调制解调器、终端、图形输入板和其他可分配设备)创建自己的设备清理脚本。脚本必须满足此类型设备的对象重用要求。
设备分配满足称为对象重用的部分要求。设备清理脚本说明安全要求,即在重用之前从物理设备中清除所有可用数据。清除数据后,其他用户才可分配此设备。缺省情况下,盒式磁带机、软盘驱动器、CD-ROM 驱动器和音频设备需要设备清理脚本。Solaris OS 提供了这些脚本。本节介绍设备清理脚本的功能。
st_clean 设备清理脚本支持三种磁带设备:
SCSI ¼ 英寸磁带
归档 ¼ 英寸磁带
开放式卷盘 ½ 英寸磁带
st_clean 脚本使用 mt 命令的 rewoffl 选项来清除此设备。有关更多信息,请参见 mt(1) 手册页。如果此脚本在系统引导期间运行,则会查询此设备以确定它是否联机。如果设备联机,则此脚本确定设备中是否有介质。内含介质的 ¼ 英寸磁带设备会被置于分配错误状态。分配错误状态强制管理员手动清除此设备。
系统正常操作期间,在交互模式下执行 deallocate 命令时,将提示用户删除此介质。从设备中删除此介质之后才会进行解除分配。
为软盘驱动器和 CD-ROM 驱动器提供以下设备清理脚本:
这些脚本使用 eject 命令从驱动器中删除介质。如果 eject 命令失败,则会将此设备置于分配错误状态。有关更多信息,请参见 eject(1) 手册页。
使用 audio_clean 脚本清除音频设备。此脚本执行 AUDIO_GETINFO ioctl 系统调用来读取设备。然后,此脚本执行 AUDIO_SETINFO ioctl 系统调用将此设备的配置重置为缺省值。
如果将更多可分配设备添加到系统,则可能需要创建自己的设备清理脚本。deallocate 命令将参数传送到设备清理脚本中。在此显示的参数是包含设备名称的字符串。有关更多信息,请参见 device_allocate(4) 手册页。
clean-script -[I|i|f|S] device-name |
设备清理脚本在成功时一定会返回 "0",而在失败时返回大于 "0" 的值。-I、-f 和 -S 选项确定脚本的运行模式: