上一主题: 设置 Surrogate DO 工具下一主题: 检查用户无操作状态


定义 SUDO 记录(任务指派)

SUDO 类中的记录存储命令脚本,这样,用户便可以通过借用的权限来运行该脚本。 借用权限的能力由 SUDO 记录以及执行这些脚本的 sesudo 命令严格控制。

注意:如果创建交互式 Windows 应用程序的 SUDO 记录,您必须设置 SUDO 记录的交互式标记。 如果不设置交互式标志,应用程序会在后台运行,而您无法与其进行交互。 有关详细信息,请参阅《疑难解答指南》

在 SUDO 记录中,注释属性用于特殊用途,通常也称为数据属性。

comment 属性的值是命令脚本,也可以在其中添加一个或多个要禁止或允许使用的脚本参数值。 整个 comment 属性值必须放在单引号中,并且应该使用可执行文件的完整路径名称引用可执行文件,以防止特洛伊木马获取它们的位置。

以下是 comment 属性的格式:

comment('cmd[;[prohibitedvalues][;permittedvalues]]')

因为禁止和允许使用的值的列表是可选的,所以简单的 comment 属性值可以是:

newres SUDO NET comment('net use')

该命令中的简单值表示命令 sesudo NET 将执行命令“net use”。 不禁用特定脚本参数值;允许使用所有脚本参数值。

使用通配符和功能强大的变量,可以灵活地指定禁用的参数和允许使用的参数。 可以使用的通配符是标准的 Windows 通配符。 禁止使用的参数和允许使用的参数也可以包含下列变量:

变量

说明

$A

字母值

$G

现有 CA ControlMinder 组名

$H

(仅适用于 UNIX)以用户的主目录开头的参数

$N

数字值

$O

运行 sesudo 的 CA ControlMinder 用户的名称

$U

现有 CA ControlMinder 用户名

$e

空条目。

使用此变量为规则指定不带任何参数的 SUDO 命令。

$f

现有文件名

$g

现有 Windows 组名

$h

现有主机名

$r

具有 Windows 读访问权限的现有文件

$u

现有 Windows 用户名

$w

具有 Windows 写访问权限的现有文件

$x

具有 Windows 执行访问权限的现有文件

如果将禁用参数值的列表附加到脚本,请执行以下操作:

如果将允许的参数值的列表附加到脚本:

因此,comment 属性的完整格式为:首先是脚本,然后是逐个参数的禁用值,最后是逐个参数的允许值:

comment('cmd; \
param1_prohib1 param1_prohib2 ... param1_prohibN | \
param2_prohib1 param2_prohib2 ... param2_prohibN | \
 ...
paramN_prohib1 paramN_prohib2 ... paramN_prohibN ; \
param1_permit1 param1_permit2 ... param1_permitN | \
param2_permit1 param2_permit2 ... param2_permitN |
 ...
paramN_permit1 paramN_permit2 ... paramN_permitN')

sesudo 实用程序通过以下方式检查用户输入的每个参数:

  1. 测试参数 N 是否与允许的参数 N 匹配。 (如果允许的参数 N 不存在,则使用上一个允许的参数。)
  2. 测试参数 N 是否与禁止的参数 N 匹配。 (如果禁止的参数 N 不存在,则使用上一个禁止的参数。)

如果所有参数都与允许的参数匹配,但任何参数与禁止的参数都不匹配,则 sesudo 执行该命令。

示例:设置允许用户运行 net send 的任务指派

以下过程说明了如何让用户 Takashi 执行 net send 命令,以及如何防止他执行 net start 命令:

  1. 在 CA ControlMinder 端点管理 中,单击“用户”选项卡,然后单击“授权和指派”子选项卡。

    “授权和指派”菜单选项将显示在左侧。

  2. 单击“任务指派”。

    将显示“任务指派”页面。

  3. 单击“创建任务”。

    将显示“创建任务”页面。

  4. 按如下所示填写对话框中的字段:

窗口项

名称

NET

数据

net;start;send *

所有者

nobody

默认访问权限

None(清除选项)

授权的访问者

USER: Takashi

Allow: Execute

单击“保存”。

将创建新的任务指派 (SUDO) 记录。

  1. 测试任务指派规则:
    1. 以 Takashi 身份登录。
    2. 打开命令提示,执行以下命令:
      	sesudo -do NET start
      

      此时出现以下消息:

      	sesudo:不允许使用“start”作为参数编号 1。
      

      注意:net start 将不执行,因为已将其定义为禁止的值。

    3. 执行以下值:
      	sesudo -do NET send comp message
      

      应该执行该命令。

示例:授权用户使用交互式应用程序执行特权操作

用户可以使用任何管理单元 MSC 模块执行高权限操作,如下例所示:

  1. 在 CA ControlMinder 端点管理 中,单击“用户”选项卡,然后单击“授权和指派”子选项卡。

    “授权和指派”菜单选项将显示在左侧。

  2. 单击“任务指派”。

    将显示“任务指派”页面。

  3. 单击“创建任务”。

    将显示“创建任务”页面。

  4. 按如下所示填写对话框中的字段:

窗口项

名称

服务

数据

c:\winnt\system32\mmc.exe

所有者

nobody

选项

Interactive(选中选项)

默认访问权限

None(清除选项)

授权的访问者

USER: Tori

Allow: Execute

单击“保存”。

将创建新的任务指派 (SUDO) 记录。 “交互式”选项提供了启动服务后登录者可以使用的桌面用户界面。 仅在服务作为 LocalSystem 帐户运行时,该选项才可用。

  1. 测试任务指派规则:
    1. 以 Tori 身份登录。
    2. 打开命令提示,执行以下命令:
      	sesudo -do services
      
    3. mmc.exe 将启动。

更多信息:

任务指派因交互式应用程序而挂起