Sun 企业鉴别机制指南

如何修改 Kerberos 管理特权

尽管您的站点可能拥有许多用户授权对象,但您通常只想要几个用户能够管理 Kerberos 数据库。管理 Kerberos 数据库的特权是通过 Kerberos 访问控制列表 (ACL) 文件, kadm5.acl(4),来加以确定的。 kadm5.acl 文件使您可以为单个的授权对象允许或撤销允许特权,您也可以在授权对象名称中使用 '*' 通配符来为成组的授权对象指定特权。

  1. 在主 KDC 上变为超级用户。

  2. 编辑 /etc/krb5/kadm5.acl 文件。

    kadm5.acl 文件中的一个条目必须拥有下列格式:


    授权对象   特权  [principal_target]

    授权对象

    被授予特权的授权对象。授权对象名称的任意部分均可以包括 '*' 通配符,向一组授权对象提供相同的特权时,这就很有用。例如,如果您想将所有授权对象指定为 admin 实例,您会使用 */admin@realm。请注意,admin 实例的一个常见的用法就是,将独立的特权 (诸如对 Kerberos 数据库的管理访问) 授予一个独立的 Kerberos 授权对象。例如,用户 jdb 可能为其管理之用拥有一个授权对象,称为 jdb/admin。这样,只当其实际需要使用上述特权时, jdb 才会获得 jdb/admin 票券。

    特权

    指定授权对象可以或不可以进行何种操作。这是来自下面字符列表的一个或多个字符的字符串或其大写形式。如果字符为大写(或者没有指定),则操作遭到拒绝。如果字符为小写,则操作得到许可。 

     

    a

    [不]允许添加授权对象或策略。 

     

    d

    [不]允许删除授权对象或策略。 

     

    m

    [不]允许修改授权对象或策略。 

     

    c

    [不]允许为授权对象更改口令。 

     

    i

    [不]允许对数据库进行查询。 

     

    l

    [不]允许列示数据库中的授权对象或策略。 

     

    x*

    允许所有特权 (admcil)。

    principal_target

    当该字段中指定有一个授权对象时, 特权只有在对 principal_target 进行操作时,其才适用于 授权对象。授权对象名称的任意部分均可以包括 '*' 通配符,这对授权对象进行归组时很有用。

示例-修改 Kerberos 管理特权

kadm5.acl 文件中下面的条目,向 ACME.COM 区域中的带有 admin 实例的任意授权对象给予对数据库的所有特权。


*/admin@ACME.COM *

kadm5.acl 文件中下面的条目,向 jdb@ACME.COM 授权对象给予添加,列示,和查询带有 root 实例的任意授权对象的特权。


jdb@ACME.COM ali */root@ACME.COM