访问控制提供以下各项:
卷访问控制允许将卷分配给一个客户机应用程序。可以允许其他客户机访问该客户机的卷。
命令访问控制允许管理员将特定的 ACSLS 命令分配给特定的客户机。
卷访问控制和命令访问控制均适用于通过 ACSAPI 提交请求的客户机应用程序用户。
访问控制不限制使用 cmd_proc
或 ACSLS GUI 提交磁带库请求的管理用户的访问权限。
启用后,由某一特定用户拥有的卷仅可供该用户或其他可信用户访问。
首次针对卷访问控制配置 ACSLS 时,请执行以下步骤:
在 ACSLS 中启用 volume access
控制。
将客户机应用程序与用户名关联。
定义有权访问该用户的卷的其他用户。
建立卷的所有权。
要在 ACSLS 中启用 volume access
控制,请执行以下操作:
运行配置实用程序 acsss_config
。
此时将显示主菜单。
选择选项 4 "Set Access Control Variables"。
每次列出一个变量,并显示其当前设置。
单击 Enter 键接受当前设置或默认设置。
当实用程序显示 Access control is active for volumes
消息时,选择 [TRUE]
并单击 Enter 键。
当实用程序显示 Default access for volumes [ACCESS/NOACCESS]
消息时,选择以下选项之一...
如果您的目标是禁止特定的用户访问并允许所有其他用户访问,请选择 [ACCESS]
。
这要求在 users.ALL.disallow
文件或特定的 users.COMMAND.disallow 文件中列出特定的用户。请参见定义可以访问该用户的卷的其他用户。
如果您的目标是允许特定的用户访问并禁止所有其他用户访问,请选择 [NOACCESS
]。
这要求在 users.ALL.allow 文件或特定的 users.COMMAND.allow
文件中列出特定的用户。请参见定义可以访问该用户的卷的其他用户。
如果要记录拒绝访问卷的实例,请选择 [TRUE] 响应该提示。
每次启用或禁用卷访问权限时,必须重新启动 ACSLS 才能使更改生效。
Associating a client identity with a user name
并非所有客户机应用程序均使用 ACSLS 请求包传递用户 ID。如果客户机不是由用户名标识,则可分配用户 ID。
转到 access_control
配置目录:
$ACS_HOME/data/external/access_control.
创建名为 internet.addresses 的文件或复制 internet.addresses.SAMPLE
文件。
在此文件中,为每个客户机创建一条记录。每条记录至少包含两个字段:客户机 IP 地址,后跟对应的用户名。您可以包括额外的字段进行注释。
使用空格或制表符分隔这些字段,如以下示例所示:
192.0.2.1 ulyssis payroll department
您可以创建与客户机应用程序一样多的客户机用户关联。
当客户机应用程序使用 ACSLS 请求传递用户名时,internet.addresses 文件将通过指定的 IP 地址验证用户名,并在这两个字段与请求包中的值均不一致时拒绝访问。如果多个客户机通过一个公用平台托管,则此文件中可能会多次出现相同的 IP 地址,且该地址可与正确应用于该 IP 地址的用户名一样多的用户名关联。
如果客户机应用程序不使用该请求传递用户名,则 internet.addresses
文件将为该客户机建立用户名。在这种情况下,只有一个用户名可与任何客户机 IP 地址关联。
将所有更新保存到 internet.addresses
文件中:
运行 acsss_config
。
选择选项 6 "Rebuild Access Control Information"。
ACSLS 将动态识别所做的更改。
对于未使用 TCP/IP 的 SNA 和 OSLAN 客户机,请参阅 access_control
目录中的 lu62.names
或 adi.names
文件。
要授权其他用户访问某用户拥有的卷,请执行以下操作:
在 access_control
目录中,创建 users.ALL.allow
或 users.ALL.disallow
文件。
可以复制模板 users.
SAMPLE.allow 或
users.
SAMPLE.disallow。
在该文件中为每个所有者添加一条记录,并将所有者的用户 ID 放在左边界。
在与每位所有者相同的行中指定受影响的用户。
使用空格或制表符分隔这些用户名,如以下示例所示:
owner_john user-Allie user-andre
u
sers.allow
和 users.disallow
文件中列出的用户名必须唯一(忽略大小写)。用户名中字符的大小写将被忽略。
与所有者不在同一行列出的用户与所有者的卷具备默认(ACCESS
或 NOACCESS
)关系。
注:
对于同一命令或 ALL,users.COMMAND.allow 和 users.COMMAND.disallow 文件中不能同时存在相同的owner_ID
和 user_ID
对。此外,同一 users.COMMAND.allow 和 users.COMMAND.disallow 文件中,不能存在重复的 owner_ID
和 user_ID
对。这包括在同一行中重复相同的 user_ID
。
如果一行无法容纳所有者的许可用户,则许可用户的列表可以继续显示在后续行中。每行必须以所有者 ID 开头。
可以选择为您定义的卷访问策略制定例外情况。
通常,对于处于访问控制下的卷,允许用户具有完全访问权限或不具任何访问权限。但是,可以允许用户对其他用户的卷进行一定程度的受限访问。
例如,您可以设置策略允许任何用户查询由特定用户拥有的卷,即便他们没有挂载或卸载这些卷也是如此。例外情况可应用于任何受访问控制影响的命令:
为特定命令配置卷访问策略的例外情况:
必须创建 users.COMMAND.allow
或 users.COMMAND.disallow
文件(其中,COMMAND 将替换为要授予或限制的特定命令)。
users.COMMAND.allow
和 users.COMMAND.disallow
文件必须具有名称完全按照下列所示指定的命令组件,其中命令的名称以大写字母表示。不支持控制访问命令的其他变体(例如,QUERY_VOLUME
)。
DISMOUNT EJECT LOCK MOUNT (1) MOUNT_READONLY (2) QUERY REGISTER SET_CLEAN SET_SCRATCH UNLOCK
注:
MOUNT (1)-MOUNT
策略也适用于 mount scratch。策略不适用于 mount readonly
MOUNT_READOLNY
(2)-适用于 mount readonly 的策略与 mount 分开定义。
上述有关不允许重复的所有者 ID、许可用户 ID 对和继续在后续行中显示许可用户列表的注意事项也同样适用于非许可用户的列表。
对于每位所有者,请将所有者的名称放置在左边界,后跟策略适用的用户。
将所有更新保存至您定义的策略中:
运行 acsss_config
选择选项 6 "Rebuild Access Control Information"。
ACSLS 将动态识别所做的更改。
卷访问控制仅适用于具有明确所有权的卷。磁带库中无所有者的卷可供任何用户访问。要显式设置卷所有权,请使用 cmd_proc 界面:
ACSSA>set owner "daffy" volume V00100-V00199 Set: owner set for volumes V00100-V00199 Set: Set completed, Success.
您可以采用类似的方式使用空字符串删除所有权:
ACSSA> set owner "" volume V00100-V00199 Set: owner set for volumes V00100-V00199
此操作将清除此范围中所有卷的所有权。有关更多信息,请参阅set owner。
您可以使用 watch_vols 实用程序自动设置卷所有权。有关更多信息,请参阅watch_vols。
您也可以在 ACSLS 中定义用于自动设置和删除所有权的策略。例如,您可以设置一个策略,指出挂载的任何暂存卷均由执行该挂载操作的用户所有。此后,该卷归此用户所有。您可以对同一策略进行增强,使卷每次返回到暂存状态时均删除所有权。您可以写入以下策略:所有装入的卷分配给默认用户或请求执行装入的用户。或者,如果卷先前已归人所有,则分配给上一个所有者。此功能可以为您带来极大的灵活性。
所有权策略是在 access_control 目录下的 ownership.assignments
文件中定义的。您可在此文件中设置策略,使用每个 enter 或 automatic enter、set scratch
或 mount scratch
操作自动分配或取消分配所有权。ownership.assignments
文件允许定义默认所有者。只要卷遇到其中任一操作,其所有权即可分配给:
Owner_default
(默认所有者)
同一人(上一个所有者)
请求者(发出当前请求的用户)
无所有者(从卷取消所有权)
注:
ownership.assignments
文件中详细介绍了定义所有权策略的说明。此文件包括可用于设置卷所有权的命令的完整列表。将所有更新保存至您定义的策略中:
运行 acsss_config
选择选项 6 "Rebuild Access Control Information"。
ACSLS 将动态识别所做的更改。
卷访问控制支持以下命令:
dismount* display eject enter lock set_clean set_scratch mount query_mount query_scratch query_volume unlock
访问控制不适用于 dismount force
,因为强制选项可指示 StorageTek ACSLS 忽略卷 ID 且无条件卸载卷。
下表汇总了启用 volume access control
时应用的上下文。
卷的默认访问权限是 ACCESS | 允许 访问 |
拒绝 访问 |
---|---|---|
通过 |
X |
|
指定卷无所有者 |
X |
|
用户是卷的所有者 |
X |
|
用户与 |
X |
|
如果用户与 |
X |
命令访问控制允许 ACSLS 管理员将特定类的命令限于网络中的特定客户机应用程序或特定用户。受控访问仅适用于通过 ACSAPI 提交的用户命令,不适用于使用 cmd_proc 提交命令的本地用户。
针对命令访问控制配置 ACSLS 的过程包括三个步骤。
首次针对命令访问控制配置 ACSLS 时,请执行以下步骤:
在 ACSLS 中启用命令访问控制。
将客户机身份与用户名关联。
定义哪些命令适用于哪些用户。
要在 ACSLS 中启用命令访问控制,请执行以下操作:
运行配置实用程序 acsss_config
。
此时将显示主菜单。
选择选项 4 "Set Access Control Variables"。
每次列出一个变量,并显示其当前设置。
单击 Enter 键接受当前设置或默认设置。
当实用程序显示 Access control is active for commands
消息时,选择 TRUE 并单击 Enter 键。
显示 "Default access for commands" 消息时:
如果要允许所有用户访问所有命令,请选择 ACCESS
。
要阻止特定用户发出命令,必须在 command.
ALL.disallow
文件或特定的 command.XXX.disallow 文件中列出这些用户,其中:
XXX 是指出访问控制所针对的命令
如果要拒绝用户访问命令,请选择 [NOACCESS
]。
要允许特定用户发出命令,必须在 command.
ALL.allow
文件或特定的 command.
XXX.allow
文件中列出这些用户。
注:
如果要记录拒绝访问命令的实例,请输入 "TRUE" 响应该提示。注:
每次启用或禁用命令访问权限时,必须重新启动 ACSLS 才能使更改生效。此过程取决于您在启用命令访问控制时选择的默认行为。必须在 $ACS_HOME/data/external/access_control
目录中创建策略文件。
如果您在上面定义的默认行为是 [NOACCESS],则必须创建 command.ALL.allow
文件,其中包含每个有权访问所有 ACSLS 命令的客户机的用户 ID。每个用户 ID 均应在该文件的单独一行中列出。
如果只希望向特定的用户授予特定的命令,则必须为允许用户执行的每个命令创建 command.
XXX
.allow
文件。例如,要授权特定用户将卷装入磁带库,可以创建名称为 command.ENTER.allow
的文件,并在该文件的单独一行中列出每个合格 'enter' 用户的 ID。
如果您在上面定义的默认行为是 [ACCESS],则必须创建 command.ALL disallow
文件,其中包含每个无权访问所有 ACSLS 命令的客户机的用户 ID。每个用户 ID 均应在该文件的单独一行中列出。
注:
对于同一命令或 ALL,command
.XXX
.allow
和 command
.XXX
.disallow
command.XXX
文件中不能同时存在相同的 user_ID。command
.XXX
.allow
和 command
.XXX
.disallow
文件必须具有名称完全按照下列所示指定的命令组件,且命令名称以大写字母表示。不支持控制访问命令的其他变体(例如,QUERY_VOLUME
)。
AUDIT CANCEL CHECK_REGISTRATION CLEAR_LOCK DEFINE_POOL DELETE_POOL DISMOUNTDISMOUNT_FORCE DISPLAY EJECT ENTER (1) IDLE LOCK MOUNT (2) QUERY QUERY_LOCK REGISTER SET_CAP SET_CLEAN SET_OWNER SET_SCRATCH START UNLOCK UNREGISTER VARY
注:
ENTER (1)-策略适用于虚拟装入和手动装入,但不适用于自动装入。MOUNT (2)-策略也适用于mount scratch
和 mount readonly
。使用下表作为确定何时允许访问命令的快速参考。
命令的默认访问权限是 NOACCESS | 允许 访问 |
拒绝 访问 |
---|---|---|
请求从 |
X |
|
user_ID 在 |
X |
|
user_ID 在 |
X |
|
- 所有其他情况 - |
X |
命令的默认访问权限是 ACCESS | 允许 访问 |
拒绝 访问 |
---|---|---|
请求从 |
X |
|
user_ID 在 |
X |
|
user_ID 在 |
X |
|
- 所有其他情况 - |
X |
将所有更新保存至您定义的策略中:
运行 acsss_config
选择选项 6 "Rebuild Access Control Information"。
ACSLS 将动态识别所做的更改。
您可以设置策略来记录所有因用户访问被拒绝而失败的事务。消息将显示用户名和尝试的命令。
要启用访问控制日志记录,请执行以下操作:
运行 acsss_config
,然后选择选项 4 "Set Access Control Variables"
在以下提示符下将 [FALSE] 更改为 [TRUE]:"Messages will be logged when access to commands or volumes is denied"。
选择选项 6 "Rebuild access control information"。
ACSLS 将识别所做的更改,并开始在每次命令请求被拒绝时进行日志记录。