ctsec_map.global 文件

用途

将本地系统上的操作系统用户标识与网络安全标识相关联以进行授权。

描述

RSCT 可信服务使用身份映射定义文件 ctsec_map.globalctsec_map.local 来确定是否应该授予 RSCT 客户机应用程序的用户对特定 RSCT 功能和资源的访问权。 该文件用于将 RSCT 的集群安全服务所使用的安全网络标识与本地系统上的用户标识相关联。 RSCT 可信服务使用这些文件来确定 RSCT 客户机存在的关联 (如果有) ,然后在检查 RSCT 访问控制以确定是否应该授予 RSCT 客户机访问权时使用此关联。

可以使用两个身份映射定义文件:
  • ctsec_map.global 文件包含要在集群配置中的所有节点上识别的关联
  • ctsec_map.local 文件包含特定于特定节点的关联
在集群配置中,所有 ctsec_map.global 文件应该相同。 应该在 ctsec_map.local 文件中添加该特定系统所需的任何本地系统。

RSCT 在 /opt/rsct/cfg 目录中提供缺省 ctsec_map.global 文件。 请 不要 更改此文件。 如果需要为集群添加更多关联,请将此文件复制到 /var/ct/cfg 目录。 对此新文件进行任何更改: /var/ct/cfg/ctsec_map.global。 缺省 ctsec_map.global 文件中存在的任何条目都必须存在于 /var/ct/cfg 目录中该文件的替换版本中,否则 RSCT 可信服务可能会拒绝访问其他 RSCT 可信服务同级。 RSCT 未提供缺省 ctsec_map.local 文件。 管理员可以创建此文件,该文件也必须位于 /var/ct/cfg 目录中。

ctsec_map.globalctsec_map.local 是 ASCII 格式的文件,可以使用文本编辑器进行查看和修改。 文件中的每一行都构成一个条目。 将忽略空白行以及以井号 (#) 开头的行。 每个条目都用于将安全网络标识与本地操作系统用户标识相关联,或者明确声明不允许对安全网络标识进行关联。

对这些文件中的条目进行排序很重要。 集群安全服务按如下所示解析 ctsec_map.globalctsec_map.local 文件:
  1. 如果 /var/ct/cfg/ctsec_map.local 文件存在,那么集群安全服务会检查此文件中是否存在关联
  2. 如果 /var/ct/cfg/ctsec_map.global 文件存在,那么集群安全服务会检查此文件中是否存在关联
  3. 否则,集群安全服务会检查 /opt/rsct/cfg/ctsec_map.global中是否存在关联 (如果存在此文件)
成功授予或拒绝此搜索路径中的安全网络标识关联的第一个条目是集群安全服务使用的条目。 如果 ctsec_map.globalctsec_map.local 文件中的条目授予同一安全网络标识的不同关联,那么集群安全服务将使用 ctsec_map.local 文件中的条目所声明的关联。 此外,如果 ctsec_map.global 文件中的两个条目授予同一安全网络标识的不同关联,那么集群安全服务将使用 ctsec_map.global 文件中先前列出的条目所授予的关联。 您可以使用 ctsidmck 命令来验证集群安全服务用于特定安全网络标识的关联规则。
集群安全服务将这些字符识别为保留字符: <>:=!@*,并将这些字符以及空格字符视为令牌分隔符。 允许使用通配符 * ,但不应在其他令牌分隔符之间使用多次。 身份映射定义文件的内容使用以下 Backus-Nour 格式:
<mapping_entry> ::= <mechanism_mnemonic> ':' <mapping>>

<mechanism_mnemonic> ::= 'unix', 'krb5'

<mapping> ::= <explicit mapping> | <mapping_rule>

<explicit_mapping> ::= <source_mapping> '=' <local_user_identity>
                       | '!' <source_mapping>

<source_mapping> ::= <network_identity> | <match_pattern>'*'

<target_mapping> ::= <mapped_identity> | '*'

<network_identity> ::= <user_name>'@'<registry_name>

<user_name> ::= <match_pattern>'*' | '*'

<registry_name> ::= <match_pattern> | '*' | <mpm_defined_reserved_word>

<mpm_defined_reserved_word> ::= '<'<alphanumeric_string>'>'

<mapped_identity> ::= <alphanumeric_string>

<match_pattern> ::= null string | <alphanumeric_string>

<alphanumeric_string> ::= any non-empty array of alphanumeric characters not
                          consisting of the reserved token separator characters
<mpm_defined_reserved_word> 是给与安全网络标识符相关联的底层安全机制的特殊指令,指示该机制以特定方式解释标识符。 定义了以下保留字:
<iw>
使用基于 RSCT 主机的认证 (HBA) 安全性机制的安全网络标识的保留字。 此关键字将本地节点的 HBA root 网络标识映射到 root 用户。 当集群安全服务身份映射程序处理 ctsec_map.global 文件时,它会将 <iw> 关键字替换为节点的节点标识。
<群组
使用 HBA 安全机制的安全网络标识的保留字。 如果已知该标识源自集群中当前对本地节点处于活动状态的任何主机,那么该映射条目将应用于安全网络标识。
<any_cluster>
使用 HBA 安全机制的安全网络标识的保留字。 如果已知该标识源自当前定义了本地节点的任何集群中的任何主机,那么该映射条目将应用于安全网络标识。 应用映射时,本地节点不需要在该集群中处于活动状态。
<境界
使用 Kerberos 版本 5 机制的安全网络标识的保留字。 如果已知标识源自当前处于活动状态的 Kerberos 域,那么映射条目将应用于安全网络身份。 请参阅 限制

安全性

  • 所有系统用户都可以读取缺省身份映射定义文件 /opt/rsct/cfg/ctsec_map.global ,但许可权会阻止任何系统用户修改此文件。
  • 创建覆盖身份映射定义文件 /var/ct/cfg/ctsec_map.global/var/ct/cfg/ctsec_map.local时,请确保这些文件可以由任何系统用户读取,但只能由 root 用户或未授予普通系统用户的其他限制性用户身份进行修改。
  • 缺省情况下,这些文件驻留在本地安装的文件系统中。 虽然可以在联网文件系统上安装 /var/ct/cfg 目录,但建议不要使用此做法。 如果 /var/ct/cfg/ctsec_map.local 文件驻留在联网文件系统中,那么有权访问该联网目录的任何节点都将假定这些定义仅在实际共享时特定于该节点。

限制

RSCT 不支持 Kerberos 版本 5 机制。 将不会应用任何使用机制助记符 krb5 或保留字 <realm> 的条目。

实现细节

这些文件是 Reliable Scalable Cluster Technology (RSCT) 集群安全服务的一部分。 默认文件是AIX 的 "rsct.core.sec文件集的一部分。

位置

/opt/rsct/cfg/ctsec_map.global
包含缺省身份映射定义文件。
/var/ct/cfg/ctsec_map.global
包含缺省全局标识映射定义文件的替换项。 必须在此文件中复制缺省 ctsec_map.global 文件中存在的任何条目,否则将拒绝 RSCT 可信服务客户机所需的必要访问。 此文件包含期望由集群中所有节点识别的身份映射定义。 期望此文件对于集群中的每个节点具有相同的内容。
/var/ct/cfg/ctsec_map.local
包含特定于本地节点的其他身份映射定义。 此文件将身份映射定义添加到为整个集群识别的集合。 此文件中的条目应用在 ctsec_map.global 文件中的条目之前。 预期此文件的内容将因集群中的节点而异,并提供仅访问本地节点的客户机所需的映射。

示例

这些保留字符:<、>、:、=、! 和 @,与空白字符一样,被解释为标记分隔符。

有效身份映射定义条目的示例:
unix:zathras@epsilon3.ibm.com=zathras
此条目授予 RSCT HBA 或 HBA2 安全机制标识 zathras@epsilon3.ibm.com 与本地用户标识 zathras的关联。 此条目不适用于其他 RSCT HBA 或 HBA2 身份。
unix:!zathras@greatmachine.net
此条目拒绝 RSCT HBA 或 HBA2 身份 zathras@greatmachine.net的任何本地用户身份关联。 此条目不适用于其他 RSCT HBA 或 HBA2 身份。
unix:entilzah@cluster= root 用户
cluster 保留字与包含源自当前活动集群中任何主机的用户名 entilzah 的任何 RSCT HBA 或 HBA2 身份相匹配。 当本地节点在还包含主机 anglashok.ibm.commimbar.ibm.com的集群中处于活动状态时,这会将此类 RSCT HBA 或 HBA2 身份的关联作为 entilzah@anglashok.ibm.comentilzah@mimbar.ibm.com 授予本地用户 root 用户。 如果主机 whitestar.ibm.com 不是当前处于活动状态的集群的一部分,那么不会将此类 RSCT HBA 或 HBA2 身份的关联授予为 entilzah@whitestar.ibm.com
unix:entilzah@any_cluster= root
cluster 保留字与包含源自当前活动集群中任何主机的用户名 entilzah 的任何 RSCT HBA 或 HBA2 身份相匹配。 当本地节点在包含主机 anglashok.ibm.commimbar.ibm.com的集群中处于活动状态时,这会将 RSCT HBA 或 HBA2 身份 (例如 entilzah@anglashok.ibm.comentilzah@mimbar.ibm.com ) 的关联授予本地用户 root 用户。 如果主机 whitestar.ibm.com 是本地主机已知的任何集群的一部分,那么还将向本地用户 root 用户授予 RSCT HBA 或 HBA2 标识 (例如 entilzah@whitestar.ibm.com ) 的关联。
unix:zathras@ * =zathras
此条目中的 * 字符与包含用户名 zathras 从任何主机到本地用户标识 zathras的任何 RSCT HBA 或 HBA2 身份相匹配。 这会将 RSCT HBA 或 HBA2 标识 (例如 zathras@epsilon3.ibm.comzathras@greatmachine.net ) 的关联授予本地用户标识 zathras
unix:zathras@ *。ibm.com= zathras
此条目中的 * 字符将与包含用户名 zathras 和以 ibm.com® 网络域结尾的主机名的任何 RSCT HBA 或 HBA2 身份与本地用户标识 zathras匹配。 这会将 RSCT HBA 或 HBA2 标识 (例如 zathras@epsilon3.ibm.comzathras@newibm.com ) 的关联授予本地用户标识 zathras
unix:*@epsilon3.ibm.com=zathras
此条目中的 * 字符与来自主机 epsilon3.ibm.com 的任何 RSCT HBA 或 HBA2 身份匹配,并将该客户机与本地用户 zathras关联。 这将授予 RSCT HBA 或 HBA2 身份 (例如 zathras@epsilon3.ibm.comdraal@epsilon3.ibm.com ) 与本地用户标识 zathras的关联。
unix:*@epsilon3.ibm.com=*
此条目中的 * 字符与来自主机 epsilon3.ibm.com 的任何 RSCT HBA 或 HBA2 身份匹配,并将该客户机与名称与来自安全网络标识的用户名匹配的本地用户关联。 这将向本地用户 zathrasdraal@epsilon3.ibm.com 本地用户标识 draal授予 RSCT HBA 或 HBA2 标识 (例如 zathras@epsilon3.ibm.com ) 的关联。
unix:!*@epsilon3.ibm.com
此条目中的 * 字符与来自主机 epsilon3.ibm.com 的任何 RSCT HBA 或 HBA2 身份匹配,并拒绝该客户机与任何本地用户的任何关联。 这将拒绝 RSCT HBA 或 HBA2 身份 (例如 zathras@epsilon3.ibm.comdraal@epsilon3.ibm.com) 的关联,但不会拒绝 UNIX HBA 网络标识 zathras@greatmachine.net的关联。
unix: * @ * = *
此条目中的 * 字符与来自任何主机的任何 RSCT HBA 或 HBA2 身份匹配,并将该客户机与名称与安全网络标识中的用户名匹配的本地用户关联。 这会将 RSCT HBA 或 HBA2 标识 (例如 zathras@epsilon3.ibm.com ) 的关联授予本地用户 zathras ,并将 entilzah@anglashok.ibm.com 授予本地用户标识 entilzah
无效的身份映射定义条目的示例:
*:zathras@epsilon3.ibm.com=zathras
无法确定安全机制。 每个条目都必须显式地命名需要应用以解释条目的安全机制。
unix:zathras@epsilon3.ibm.com=z*
要使用的本地用户身份不明确。
unix:zathras@ * .ibm.* =zathras
此条目在标记分隔符 @ 和 = 之间重复通配符,这会使条目不明确。
unix:*athra*@epsilon3.ibm.com=zathras
此条目在标记分隔符: 和 @ 之间重复通配符,这使条目不明确。
unix: * = *
通配符 * 不明确。 无法确定通配符是否应用于身份名称或身份位置。