使用变量的准则

内容
cminder12901cn
内容
使用变量时,应当遵守以下准则:
  • 您不能删除被其他变量或策略使用的变量。
  • 变量可以有多个值。 您可以添加和删除变量值。
  • 变量可以进行嵌套。 例如,下列规则定义了名为 ac_data 且包含内置的 <!AC_ROOT_PATH> 变量的变量:
    editres ACVAR ac_data value("<!AC_ROOT_PATH>\data")
    具有默认
    Privileged Identity Manager
    安装的 Windows 端点编译此规则时,会创建以下规则:
    editres ACVAR ac_data value("C:\Program Files\CA\AccessControl\data")
  • 每个变量只能有一种类型,例如,您无法定义既是静态变量又是注册表值变量的变量。
  • 您不能部署包含未定义变量的策略。 如果您使用未定义的变量部署策略,该策略的部署状态将更改为“部署挂起”。 要部署该策略,您必须定义此未定义的变量,然后重新部署该策略。
    注意:
    要找到策略中未定义的变量,请查看该策略的 DEPLOYMENT 对象。 不管您已经启用还是禁用了策略验证,
    Privileged Identity Manager
    都会检查未定义的变量。
  • Privileged Identity Manager
    无法解析组合了
    Privileged Identity Manager
    变量和 Windows 系统变量的规则。 例如,
    Privileged Identity Manager
    无法解析定义名为 var1 的变量的以下规则:
    editres ACVAR var1 value("%SYSTEMROOT%\temp")
    要创建将 %SYSTEMROOT% 定义为
    Privileged Identity Manager
    变量且保护 %SYSTEMROOT%\temp 的策略,请使用以下规则:
    editres ACVAR var1 value("SYSTEMROOT") type(osvar) editres ACVAR var2 value("<!var1>\temp")
  • Privileged Identity Manager
    无法解析相互依赖的变量。 例如,
    Privileged Identity Manager
    无法解析下例中的变量 var1 和 var2:
    editres ACVAR var1 value("<!var2>") editres ACVAR var2 value("<!var1>")
  • 使用斜线来定义变量中的目录时,对于 Windows 和 UNIX 端点,
    Privileged Identity Manager
    会按照正确的方向解析斜线。
  • 如果使用 selang 规则来定义变量,则必须使用策略将规则部署到端点。 如果使用 selang 规则在端点上直接更新
    Privileged Identity Manager
    数据库,
    Privileged Identity Manager
    则无法编译这些规则。 例如,如果您已经在端点上定义名为 jboss_home 的变量,而您直接使用下列的 selang 规则更新数据库:
    editres FILE <!jboss_home> audit(all)
    Privileged Identity Manager
    无法编译该规则,而是在数据库中创建名为 <!jboss_home> 的 FILE 对象。
在 UNIX 端点上使用操作系统变量的准则
在 UNIX 上有效
Privileged Identity Manager
操作系统变量(类型为 osvar 的 ACVAR 对象)使用 UNIX 环境变量的值。 因为每个 UNIX 进程都有其自己的一组环境变量,因此建议您不要在 UNIX 端点上使用操作系统变量。
如果确实要在 UNIX 端点上使用操作系统变量,则必须在启动
Privileged Identity Manager
之前设置并导出必要的环境变量。 在 UNIX 端点上使用操作系统变量时,应当遵守以下准则:
  • 如果您在计算机启动时使用 rc 启动脚本来启动
    Privileged Identity Manager
    ,请确认脚本在启动
    Privileged Identity Manager
    之前设置并导出了环境变量。
  • 如果用户停止
    Privileged Identity Manager
    并进行重新启动,则必须在重新启动
    Privileged Identity Manager
    之前设置并导出其会话中的环境变量。
在 Windows 端点上使用操作系统变量的准则
在 Windows 上有效
Privileged Identity Manager
操作系统变量(类型为 osvar 的 ACVAR 对象)使用 Windows 环境变量的值。
在 Windows 端点上使用操作系统变量时,应当遵守以下准则:
  • 环境变量必须是系统变量。
  • 如果您更改了 Windows 环境变量的值,则
    Privileged Identity Manager
    在重新启动之前不会识别此更改。 在 Windows 的某些版本中,您还必须重新启动计算机以便 Windows 服务和
    Privileged Identity Manager
    识别此更改。
端点解析变量的方式
变量让您可以将相同的策略部署到具有不同配置和不同操作系统的端点上。 以下过程说明了在创建并部署了策略之后,
Privileged Identity Manager
端点解析策略中变量的方式:
  1. 当 policyfetcher 提取策略时,
    Privileged Identity Manager
    会检查策略中的变量是否已在策略或
    Privileged Identity Manager
    数据库中进行了定义。 将会发生以下情况之
    • 如果变量未在策略或数据库中定义,策略状态将更改为“部署挂起”。
      注意:
      要部署该策略,您必须定义这些未定义的变量,然后重新部署该策略。
    • 如果变量已在策略或数据库中定义,
      Privileged Identity Manager
      会编译该策略并实施其包含的规则。
  2. 对于每个检测信号,policyfetcher 会检查变量值是否已在
    Privileged Identity Manager
    数据库中更改。
    将会发生以下情况之一
    • 如果没有更改任何变量值,policyfetcher 会重复第 2 步。
    • 如果变量值已更改,端点上使用已更改变量的任何策略的状态将更改为“不同步”。
      注意:
      要清除策略的“不同步”状态,您必须重新部署该策略。