上一主题: UTF8 解释的审核记录下一主题: 过时的 API


tcllca:LCA 扩展

此部分包含以下主题:

tcllca.so 库

编程指南

tcllca 函数

tcllca.so 库

本附录说明 tcllca.so 库,该库是一个向 TCL 环境添加 LCA 命令的 LCA 扩展。

注意:此信息仅适用于 UNIX。

编程指南

tcllca 比 selang 命令语言更灵活,在添加新命令的同时可模仿 TCL shell 环境中的 selang,以返回有关 TCL 环境中 CA ControlMinder 对象(用户、资源、类和属性)的信息,而无需使用 selang 命令并解析结果。

该扩展为共享库格式,通过 TCL 加载命令进行加载。 您可能需要将 LD_LIBRARY_PATH 设置为 CA ControlMinder 目录中的 lib 子目录。 要成功加载该扩展,您必须具有 CA ControlMinder 管理标志和本地终端访问权限,并且正在运行 CA ControlMinder。

该扩展加载以下共享库:

加载 tcllca 扩展:

  1. 如有必要,使用以下命令设置库路径,其中 ACDir 为 CA ControlMinder 的安装目录:
    setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:ACDir/lib
    
  2. 使用以下命令加载 TCL shell:
    tclsh
    

    此时将显示 % 提示。

    使用以下命令加载 tcllca 库:

    load ACDir/tcllca.so
    

示例程序

以下示例程序先加载 tcllca.so 扩展库,然后查找 root 用户拥有的所有用户。

>setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/opt/CA/AccessControl/lib
>tclsh
%load /opt/CA/eTrustAccessControl/lib/tcllca.so 
%set user_list [se_get_resources user]
%foreach user $user_list {
  if {[se_scan_props user $user OWNER] == “OWNER root”} {
     lappend root_owned $user
  }
} 
%if [info exists root_owned]  {
   puts “users owned by root : $root_owned”
 } else {
   puts “no users owned by root”
} 
%

tcllca 函数

LCA TCL 扩展包括以下函数:

se_class_list 函数

se_class_list 函数输出数据库中的所有类。

se_class_list

se_get_resources 函数

se_get_resources 函数输出指定类中所有对象的名称。 如果您指定对象,该函数将在数据库中搜索此对象。如果对象不存在,则返回错误。 如果对象存在,函数将输出此对象的名称。 如果对象包含通配符,函数将返回对象列表。

例如,以下命令将返回数据库中所有用户的列表:

se_get_resources user
se_get_resources class [object];

segetstat 函数

segetstat 函数告知您最后一个命令返回的状态:

OK

成功处理最后一个命令。

ERROR

未成功处理最后一个命令。

DUP

仅与 newfile、newgrp、newres 以及 newusr 命令相关。 数据库中已存在对象。

NOTICE

信息消息由 selang 命令返回。

最后两个状态(DUP 和 NOTICE)只能由 selang 命令返回。

segetstat

se_grp_usrs 函数

se_grp_usrs 函数输出组中所有用户的列表。 这仅适用于用户组,不适用于其他类(例如,GFILE 和 GHOST)的组。

例如,以下命令将输出名为“system”的组中的所有用户:

se_grp_usrs system
se_grp_usrs group_name

se_is_running 函数

se_is_running 函数告知您 seosd 后台进程当前是否正在运行。 如果 seosd 当前正在运行,则函数返回“yes”;否则,返回“no”。

se_is_running

selang 函数

selang 函数执行 CA ControlMinder 命令。 将参数原样传递给 selang 实用程序。 将 selang 输出作为结果返回。 这是唯一适用于更改数据库内数据的命令。

注意:此函数实际上不调用 selang。 它使用 API 联系数据库或代理,使用与 selang 相同的语法。

例如,以下命令将返回数据库内文件的属性(如果存在);否则,将返回 selang 错误消息:

selang sr file /opt/CA/AccessControl/bin/selang
selang parameters

se_objs_in_grp 函数

se_objs_in_grp 函数输出属于同一类(GHOST、GTERMINAL、GFILE 以及 GSUDO)的资源组中的所有成员。

例如,以下命令将输出 DevTerms 组中的所有主机:

se_objs_in_grp GHOST DevTerms
se_objs_in_grp class object_list

se_scan_props 函数

se_scan_props 函数输出数据库内对象的属性。 如果未指定属性,函数将返回所有对象属性的列表。 您可以指定一系列属性,以空格分隔。

例如,以下命令将返回 root 用户审核模式:

se_scan_props user root AUDIT_MODE
se_scan_props class object [properties]

sewhoami 函数

sewhoami 函数告知您当前以哪个 CA ControlMinder 用户名运行(注意,这可能不同于当前 UNIX 用户)。

Sewhoami