上一主题: 设置 Surrogate DO 工具下一主题: 防止密码攻击


定义 SUDO 记录

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

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

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

以下是 data 属性的格式:

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

因为禁用和允许的值的列表是可选的,所以一个简单的 data 属性值可能是:

newres SUDO MountCd data('mount /dev/cdrom /cdr')

命令中的简单值表明命令 sesudo MountCd 执行脚本 mount /dev/cdrom /cdr。 不禁用特定脚本参数值;允许使用所有脚本参数值。

使用通配符和功能强大的变量,可以灵活地指定禁用的参数和允许使用的参数。 可以使用的通配符是标准的 UNIX 通配符。 变量如下表所示:

变量

说明

$A

字母值

$G

现有 CA ControlMinder 组名

$H

用户的主路径模式

$N

数字值

$O

执行者的用户名

$U

现有 CA ControlMinder 用户名

$e

不带任何参数的 SUDO 命令

$f

当前文件名

$g

当前 UNIX 组名

$h

当前主机名

$r

具有 UNIX 读取权限的当前 UNIX 文件名

$u

当前 UNIX 用户名

$w

具有 UNIX 写入权限的当前 UNIX 文件名

$x

具有 UNIX 执行权限的当前 UNIX 文件名

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

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

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

data(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')