Sun 企业鉴别机制指南

管理授权对象

本节提供用于借助 SEAM Tool 管理授权对象的一步步的操作指示。可用时,还提供有等效命令行示例,即在每个步骤之后使用 kadmin 命令。

管理授权对象任务图

表 5-2 管理授权对象任务图

任务 

描述 

如要了解操作指示,请转到 ... 

查看授权对象的列表 

通过单击授权对象选项卡,查看授权对象的列表。 

"如何查看授权对象的列表"

查看一个授权对象的属性 

通过在授权对象列表中选择授权对象并单击修改按钮,查看一个授权对象的属性。  

"如何查看一个授权对象的属性"

创建一个新的授权对象 

通过在授权对象列表面板中单击创建新的按钮,创建一个新的授权对象。 

"如何创建一个新的授权对象"

复制一个授权对象 

通过在授权对象列表中选择要复制的授权对象和单击复制按钮,复制一个授权对象。 

"如何复制一个授权对象"

修改一个授权对象 

通过在授权对象列表中选择要修改的授权对象并单击修改按钮,修改一个授权对象。 

请注意,您无法修改一个授权对象的名称。如要重命名一个授权对象,您必须复制授权对象,为其指定一个新的名称,加以保存,然后删除旧的授权对象。 

"如何修改一个授权对象"

删除一个授权对象 

通过在授权对象列表中选择要删除的授权对象并单击删除按钮,删除一个授权对象。 

"如何删除一个授权对象"

为创建新的授权对象设置默认值 

通过从编辑菜单选择属性,为创建新的授权对象设置默认值。 

"如何为创建新的授权对象设置默认值"

修改 Kerberos 管理特权 (kadm5.acl 文件)

限于命令行。 Kerberos 管理特权确定一个授权对象可以在 Kerberos 数据库上进行何种操作,诸如添加和修改。您必须编辑 /etc/krb5/kadm5.acl 文件才能为每个授权对象修改 Kerberos 管理特权。

"如何修改 Kerberos 管理特权"

自动化新的授权对象的创建

尽管 SEAM Tool 提供了使用上的便利,但其并没有提供一个自动化新的授权对象的创建的方法。如果您想要在一个短时间内添加 10 个甚至 100 个新的授权对象,则自动化就特别有用。然而,通过在一个 Bourne 外壳正文中使用 kadmin.local 命令,您就可以做到这一点。

下面的外壳正文行是如何做到这一点的一个示例:

sed -e 's/^\(.*\)$/ank +needchange -pw \1 \1/' < princnames |
       time /usr/krb5/sbin/kadmin.local> /dev/null

本示例业已分为两行,以使其更加可读。正文读入一个称为 princnames 的文件,其中包含授权对象名称及其口令,并将其添加到 Kerberos 数据库。您必须创建 princnames 文件,在每行上包含一个授权对象名称及其口令,其间通过一个或多个空格来加以分隔。 +needchange选项配置授权对象,从而用户在第一次借助授权对象进行登录时,被提示录入一个新的口令,这有助于确保 princnames 文件中的口令并非一个安全隐患。

这只是一个示例。您可以建立更多的精致的正文,诸如在名称服务中使用信息来为授权对象名称获得用户名的列表。您做什么以及您如何做,取决于您的站点需要和您的正文编写经验。

如何查看授权对象的列表

本步骤后面跟有相对应的等效命令行的一个示例。

  1. 如有必要,请启动 SEAM Tool。

    请参见"如何启动 SEAM Tool" ,了解有关细节。

  2. 单击授权对象选项卡。

    授权对象的列表显示出来。

    Graphic
  3. 如要显示一个具体的授权对象或授权对象的子列表,请在过滤器样式字段中录入一个过滤器字符串并按回车。如果过滤器成功,与过滤器匹配的授权对象的列表就显示出来。

    过滤器字符串必须由一个或多个字符构成。因为过滤器机制对大小写敏感,您必须为过滤器使用适当的大写和小写字母。例如,如果您录入过滤器字符串 ge,过滤器机制将只显示其中带有 ge 字符串的授权对象 (例如,georgeedge)。

    如果您想显示整个授权对象的列表,请单击清除过滤器。

示例-查看授权对象的列表 (命令行)

下列示例使用 kadminlist_principals 命令来列示所有匹配 test* 的授权对象。通配符可以用于 list_principals 命令。


kadmin: list_principals test*
test1@ACME.COM
test2@ACME.COM
kadmin: 退出

如何查看一个授权对象的属性

本步骤后面跟有相对应的等效命令行的一个示例。

  1. 如有必要,请启动 SEAM Tool。

    请参见"如何启动 SEAM Tool" ,了解有关细节。

  2. 单击授权对象选项卡。

  3. 选择列表中您想要查看的授权对象并单击修改。

    包含授权对象的某些属性的授权对象基本内容面板显示出来。

  4. 继续单击下一步来观看所有授权对象的属性。

    三个窗口包含属性信息。从帮助菜单选择语境敏感帮助,获得关于每个窗口中的各种各样属性的信息。也可以转到 "SEAM Tool 面板描述",了解所有授权对象属性描述。

  5. 当您查看完毕时,单击取消。

示例-查看一个授权对象的属性

下列示例显示查看 jdb/admin 授权对象时的第一个窗口。

Graphic

示例-查看一个授权对象的属性 (命令行)

下列示例使用 kadminget_principal 命令来查看jdb/admin 授权对象的属性。


kadmin: getprinc jdb/admin
Principal: jdb/admin@ACME.COM 
到期日: Fri Aug 25 17:19:05 PDT 2000 
上次口令更改: [never] 口令到期日: Wed Apr 14 11:53:10 PDT 1999 
最长票券期限: 1 day 16:00:00 
最长续延期限: 1 天 16:00:00 
上次修改: Thu Jan 14 11:54:09 PST 1999 (admin/admin@ACME.COM) 
最近成功鉴别: [never] 
最近失败鉴别: [never] 
失败口令尝试: 0 
密钥数: 1 
密钥: vno 1, DES cbc 模式带 CRC-32, 无 salt 
属性: REQUIRES_HW_AUTH 
策略: [none] 
kadmin: 退出

如何创建一个新的授权对象

本步骤后面跟有相对应的等效命令行的一个示例。

  1. 如有必要,请启动 SEAM Tool。

    请参见"如何启动 SEAM Tool" ,了解有关细节。


    注意:

    如果您正在创建一个可能需要一个新的策略的新的授权对象,则在创建新的授权对象之前,您应当创建新的策略。请转到 "如何创建一个新的策略"


  2. 单击授权对象选项卡。

  3. 单击新建。

    包含一个授权对象的某些属性的授权对象基本内容面板显示出来。

  4. 指定一个授权对象名称和口令。

    授权对象名称和口令两者均为强制性的。

  5. 为授权对象的属性指定值并继续单击下一步来指定更多的属性。

    三个窗口包含属性信息。从帮助菜单选择语境敏感帮助,获得关于每个窗口中的各种各样属性的信息。也可以转到 "SEAM Tool 面板描述",了解所有授权对象属性描述。

  6. 单击保存来保存授权对象,或在最后的面板上单击完成。

  7. 如有必要,请在 /etc/krb5/kadm5.acl 文件中为新的授权对象设置 Kerberos 管理特权。

    请参见"如何修改 Kerberos 管理特权",了解更多的细节。

示例-创建一个新的授权对象

下列示例显示创建一个称为 pak 的新的授权对象时的授权对象基本内容面板。到目前为止,策略业已设定为 testuser

Graphic

示例-创建一个新的授权对象 (命令行)

下列示例使用 kadminadd_principal 命令来创建一个称为 pak 的新的授权对象。授权对象的策略设定为 testuser


kadmin: add_principal -policy testuser pak
为授权对象录入口令 "pak@ACME.COM": <键入口令>
为授权对象重新录入口令 "pak@ACME.COM":  <再次键入口令> 
授权对象 "pak@ACME.COM" 已创建。
kadmin:退出

如何复制一个授权对象

本步骤解释如何使用一个现有的授权对象的所有或某些属性来创建一个新的授权对象。本步骤没有等效命令行。

  1. 如有必要,请启动 SEAM Tool。

    请参见"如何启动 SEAM Tool" ,了解有关细节。

  2. 单击授权对象选项卡。

  3. 在列表中选择您想要复制的授权对象并单击复制。

    授权对象基本内容面板显示出来。所选择授权对象的所有属性得到复制,授权对象名称和口令字段除外,其为空。

  4. 指定一个授权对象名称和口令。

    授权对象名称和口令两者均为强制性的。如果您想制作所选授权对象的一个精确的副本,则请单击保存并跳到最后的步骤。

  5. 为授权对象的属性指定不同的值并继续单击下一步来指定更多的属性。

    三个窗口包含属性信息。从帮助菜单选择语境敏感帮助,获得关于每个窗口中的各种各样属性的信息。也可以转到 "SEAM Tool 面板描述",了解所有授权对象属性描述。

  6. 单击保存来保存授权对象,或在最后的面板上单击完成。

  7. 如有必要,请在 /etc/krb5/kadm5.acl 文件中为新的授权对象设置 Kerberos 管理特权。

    请参见"如何修改 Kerberos 管理特权",了解更多的细节。

如何修改一个授权对象

本步骤后跟有相对应的等效命令行的一个示例。

  1. 如有必要,请启动 SEAM Tool。

    请参见"如何启动 SEAM Tool",了解有关细节。

  2. 单击授权对象选项卡。

  3. 在列表中选择您想要修改的授权对象并单击修改。

    包含授权对象的某些属性的授权对象基本内容面板显示出来。

  4. 修改授权对象的属性,并继续单击下一步,修改更多的属性。

    三个窗口包含属性信息。从帮助菜单选择语境敏感帮助,获得关于每个窗口中的各种各样属性的信息。也可以转到 "SEAM Tool 面板描述",了解所有授权对象属性描述。


    注意:

    您无法修改一个授权对象的名称。如要重命名一个授权对象,您必须复制授权对象,为其指定一个新的名称,加以保存,然后删除旧的授权对象。


  5. 单击保存来保存授权对象,或在最后的面板上单击完成。

  6. /etc/krb5/kadm5.acl 文件中为授权对象修改 Kerberos 管理特权。

    请参见"如何修改 Kerberos 管理特权",了解更多的细节。

示例-修改一个授权对象的口令 (命令行)

下列示例使用 kadminchange_password 命令来为 jdb 授权对象修改口令。 change_password 不让您将口令更改为已存在于授权对象的口令历史记录中的口令。


kadmin: change_password jdb
为授权对象 "jdb" 录入口令: <键入新的口令>
再为授权对象 "jdb" 录入口令: <再次键入口令>
"jdb@ACME.COM" 的口令已更改。
kadmin: 退出

如要为一个授权对象修改其它的属性,您必须使用 kadminmodify_principal 命令。

如何删除一个授权对象

本步骤后面跟有相对应的等效命令行的一个示例。

  1. 如有必要,请启动 SEAM Tool。

    请参见"如何启动 SEAM Tool" ,了解有关细节。

  2. 单击授权对象选项卡。

  3. 在列表中指定您想要删除的授权对象并单击删除。

    在您确认删除之后,授权对象被删除。

  4. 从 Kerberos ACL 文件, /etc/krb5/kadm5.acl, 去除授权对象。

    请参见"如何修改 Kerberos 管理特权",了解更多的细节。

示例-删除一个授权对象 (命令行)

下列示例使用 kadmindelete_principal 命令来删除 jdb 授权对象。


kadmin: delete_principal pak
您确信您想删除授权对象 "pak@ACME.COM" 吗? (是/否): 
授权对象 "pak@ACME.COM" 被删除。
在重新使用之前,请确保您业已从所有的 ACL 去除该授权对象。 
kadmin: 退出

如何为创建新的授权对象设置默认值

本步骤无等效命令行。

  1. 如有必要,请启动 SEAM Tool。

    请参见"如何启动 SEAM Tool" ,了解有关细节。

  2. 从编辑菜单选择属性。

    属性窗口显示出来。

    Graphic
  3. 选择您创建新的授权对象时您想要的默认值。

    从帮助菜单选择语境敏感帮助,获得关于每个窗口中的各种各样属性的信息。

  4. 单击保存。

如何修改 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