上一主题: 定义用户使用终端的权限下一主题: 建议使用的限制


限制 Root 用户的终端

要考虑的另一个问题是 TERMINAL 类的默认规则。 在初始实施阶段,默认规则设置为允许未定义的任何对象。 在 TERMINAL 情况中,这可能会成为缺点。

考虑以下情况:某站点有几百个终端,您希望大多数用户能够从任何终端登录,但是希望 root 只能从两个预定义的终端登录。

首先,假定将 TERMINAL 类的默认值设置为 READ 可以使任何用户(包括 root)从在数据库中没有特定 TERMINAL 记录的任何终端登录。 您不希望超级用户能够从任何终端登录。 此外,还假定将 TERMINAL 类的默认值设置为 NONE 会强制您定义数据库中的每个终端(这可能并不实际)。

为了解决该问题,CA ControlMinder 支持 TERMINAL 类的 _default 记录中 Access Control 列表的定义。 以下命令显示如何花费最少的工作将 root 限制到两个终端:

newres TERMINAL term1 defaccess(N) owner(root)
newres TERMINAL term2 defaccess(N) owner(root)
newres TERMINAL _default defaccess(R)
authorize TERMINAL _default uid(root) access(N)

前两个命令将 term1 和 term2 定义为 root 拥有的终端,以便超级用户可以登录这两个终端。 newres TERMINAL _default 和 chres 命令将默认访问权限设置为读取,以便任何人都可以访问数据库中未定义的任何终端。 authorize 命令显式拒绝超级用户对未定义终端的访问权限。

注意:UACC 类仍然存在;可以使用它指定资源的默认访问权限。 不过,使用 _default 记录指定资源的默认访问权限要简单得多。