SUDO 类中的记录存储命令脚本,这样,用户便可以通过借用的权限来运行该脚本。 借用权限的能力由 SUDO 记录以及执行这些脚本的 sesudo 命令严格控制。
在 SUDO 记录中,注释属性用于特殊用途,通常也称为数据属性。
data 属性的值是命令脚本,也可以在其中添加一个或多个要禁用或允许的脚本参数值。 整个 data 属性值必须放在单引号中,并且应该使用可执行文件的完整路径名称引用可执行文件,以防止特洛伊木马获取它们的位置。
以下是 data 属性的格式:
data('cmd[;[prohibited‑values][;permitted‑values]]')
因为禁用和允许的值的列表是可选的,所以一个简单的 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 文件名 |
如果将禁用参数值的列表附加到脚本,请执行以下操作:
newres SUDO scriptname data('cmd;‑9')
其中 cmd 代表您的脚本。
另外,如果不允许使用任何参数值,但希望默认使用所有参数,请按以下方式定义 SUDO 记录:
newres SUDO scriptname data(‘cmd;*’)
newres SUDO scriptname data('cmd;‑9 ‑HUP')
newres SUDO scriptname data('cmd;‑9 ‑HUP | $u')
如果脚本的参数多于列表中的参数,则最后一组禁用参数将适用于所有其余参数。
如果将允许参数值的列表附加到脚本:
newres SUDO scriptname data(cmd;;NAME)
例如,如果您有两个参数,第一个参数必须是数字型但不得是 UNIX 用户名,第二个参数必须是字母型但不得是 UNIX 组名,请输入以下命令:
newres SUDO scriptname data(‘cmd; $u | $g ; $N | $A’)
如果脚本的参数多于列表中的参数,则最后一组允许使用的参数将适用于所有剩余参数。
因此,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')
版权所有 © 2013 CA。
保留所有权利。
|
|