系统管理指南:安全性服务

管理 Kerberos 主体

本节提供使用 SEAM Tool 管理主体的逐步说明,还提供等效命令行示例(如果有)。

管理 Kerberos 主体(任务列表)

任务 

说明 

参考 

查看主体列表。 

通过单击 "Principals" 选项卡来查看主体列表。 

如何查看 Kerberos 主体列表

查看主体属性。 

通过在 "Principal List" 中选择 "Principal",然后单击 "Modify" 按钮来查看主体的属性。 

如何查看 Kerberos 主体属性

创建新主体。 

通过单击 "Principal List" 面板中的 "Create New" 按钮来创建新主体。 

如何创建新的 Kerberos 主体

复制主体。 

通过在 "Principal List" 中选择要复制的主体,然后单击 "Duplicate" 按钮来复制主体。 

如何复制 Kerberos 主体

修改主体。 

通过在 "Principal List" 中选择要修改的主体,然后单击 "Modify" 按钮来修改主体。 

请注意,不能修改主体的名称。要重命名主体,必须首先复制该主体,为其指定一个新名称并保存,然后删除旧主体。 

如何修改 Kerberos 主体

删除主体。 

通过在 "Principal List" 中选择要删除的主体,然后单击 "Delete" 按钮来删除主体。 

如何删除 Kerberos 主体

设置缺省值以创建新主体。 

通过从 "Edit" 菜单中选择 "Properties" 来设置缺省值以创建新主体。 

如何设置缺省值以创建新的 Kerberos 主体

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

仅限命令行。Kerberos 管理权限确定主体可对 Kerberos 数据库执行的操作,如添加和修改。

要修改每个主体的 Kerberos 管理权限,需要编辑 /etc/krb5/kadm5.acl 文件。

如何修改 Kerberos 管理权限

自动创建新的 Kerberos 主体

尽管 SEAM Tool 使用方便,但它不提供自动创建新主体的方法。如果需要在短时间内添加 10 个甚至 100 个新主体,则自动创建尤其有用。而在 Bourne shell 脚本中使用 kadmin.local 命令正好可满足这一需要。

以下 shell 脚本行示例说明了如何自动创建新主体:


awk '{ print "ank +needchange -pw", $2, $1 }' < /tmp/princnames | 

        time /usr/sbin/kadmin.local> /dev/null

为了方便阅读,已将此示例拆分为两行。该脚本将读入一个称为 princnames 的文件(其中包含主体名称及其口令)然后将其添加到 Kerberos 数据库。您必须创建 princnames 文件,并在每一行上包含一个主体名称及其口令,中间用一个或多个空格分隔。+needchange 选项用于配置主体,以便在用户第一次使用该主体登录时提示其输入新口令。此做法有助于确保 princnames 文件中的口令不会引入安全风险。

可以生成更详细的脚本。例如,脚本可使用名称服务中的信息来获取主体名称的用户名列表。所执行的操作和执行操作的方式取决于站点的需要以及脚本编制技术。

Procedure如何查看 Kerberos 主体列表

此过程后附等效命令行示例。

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

    有关更多信息,请参见如何启动 SEAM Tool


    $ /usr/sbin/gkadmin
    
  2. 单击 "Principals" 选项卡。

    此时会显示主体列表。

    标题为 "Seam Administration Tool" 的对话框显示了主体列表和列表过滤器。显示 "Modify"、"Create New"、"Delete" 和 "Duplicate" 按钮。
  3. 显示特定主体或主体子列表。

    在 "Filter" 字段中键入过滤字符串,然后按 "Return"。如果过滤操作成功,则会显示与过滤器匹配的主体列表。

    过滤字符串必须由一个或多个字符组成。由于过滤机制区分大小写,因此需要对过滤器使用正确的大小写字母。例如,如果键入过滤字符串 ge,则过滤机制仅显示包含 ge 字符串的主体(如 georgeedge)。

    如果要显示主体的完整列表,请单击 "Clear Filter"。


示例 24–1 查看 Kerberos 主体列表(命令行)

在以下示例中,kadminlist_principals 命令用于列出与 test* 匹配的所有主体。通配符可与 list_principals 命令一起使用。


kadmin: list_principals test*

test1@EXAMPLE.COM

test2@EXAMPLE.COM

kadmin: quit

Procedure如何查看 Kerberos 主体属性

此过程后附等效命令行示例。

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

    有关更多信息,请参见如何启动 SEAM Tool


    $ /usr/sbin/gkadmin
    
  2. 单击 "Principals" 选项卡。

  3. 在列表中选择要查看的主体,然后单击 "Modify"。

    此时会显示包含该主体某些属性的 "Principal Basics" 面板。

  4. 继续单击 "Next" 以查看该主体的所有属性。

    有三个窗口包含属性信息。请从 "Help" 菜单中选择 "Context-Sensitive Help",获取有关每个窗口中各种属性的信息。或者,转至SEAM Tool 面板说明,了解所有主体属性说明。

  5. 查看完毕后,单击 "Cancel"。


示例 24–2 查看 Kerberos 主体属性

以下示例显示了查看 jdb/admin 主体时的第一个窗口。

标题为 "SEAM Administration Tool" 的对话框显示了 jdb/admin 主体的帐户数据。  显示帐户失效日期和注释。

示例 24–3 查看 Kerberos 主体属性(命令行)

在以下示例中,kadminget_principal 命令用于查看 jdb/admin 主体的属性。


kadmin: getprinc jdb/admin

Principal: jdb/admin@EXAMPLE.COM

Expiration date: Fri Aug 25 17:19:05 PDT 2004

Last password change: [never]

Password expiration date: Wed Apr 14 11:53:10 PDT 2003

Maximum ticket life: 1 day 16:00:00

Maximum renewable life: 1 day 16:00:00

Last modified: Thu Jan 14 11:54:09 PST 2003 (admin/admin@EXAMPLE.COM)

Last successful authentication: [never]

Last failed authentication: [never]

Failed password attempts: 0

Number of keys: 1

Key: vno 1, DES cbc mode with CRC-32, no salt

Attributes: REQUIRES_HW_AUTH

Policy: [none]

kadmin: quit

Procedure如何创建新的 Kerberos 主体

此过程后附等效命令行示例。

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

    有关更多信息,请参见如何启动 SEAM Tool


    注 –

    如果要创建一个可能需要新策略的新主体,则应在创建新主体之前创建新策略。请转至如何创建新的 Kerberos 策略



    $ /usr/sbin/gkadmin
    
  2. 单击 "Principals" 选项卡。

  3. 单击 "New"。

    此时会显示包含某些主体属性的 "Principal Basics" 面板。

  4. 指定主体名称和口令。

    必须提供主体名称和口令。

  5. 指定该主体属性的值,然后继续单击 "Next" 以指定其他属性。

    有三个窗口包含属性信息。请从 "Help" 菜单中选择 "Context-Sensitive Help",获取有关每个窗口中各种属性的信息。或者,转至SEAM Tool 面板说明,了解所有主体属性说明。

  6. 单击 "Save" 以保存主体,或在最后一个面板上单击 "Done"。

  7. 如有必要,在 /etc/krb5/kadm5.acl 文件中为新主体设置 Kerberos 管理权限。

    有关更多详细信息,请参见如何修改 Kerberos 管理权限


示例 24–4 创建新的 Kerberos 主体

以下示例显示了创建称为 pak 的新主体时的 "Principal Basics" 面板。该策略设置为 testuser

标题为 "SEAM Administration Tool" 的对话框显示了 pak 主体的帐户数据。  显示口令、帐户失效日期和 testuser 策略。

示例 24–5 创建新的 Kerberos 主体(命令行)

在以下示例中,kadminadd_principal 命令用于创建称为 pak 的新主体。该主体的策略设置为 testuser


kadmin: add_principal -policy testuser pak

Enter password for principal "pak@EXAMPLE.COM": <Type the password>

Re-enter password for principal "pak@EXAMPLE.COM": <Type the password again>

Principal "pak@EXAMPLE.COM" created.

kadmin: quit

Procedure如何复制 Kerberos 主体

此过程说明如何使用某个现有主体的全部或部分属性来创建新主体。此过程没有等效命令行。

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

    有关更多信息,请参见如何启动 SEAM Tool


    $ /usr/sbin/gkadmin
    
  2. 单击 "Principals" 选项卡。

  3. 在列表中选择要复制的主体,然后单击 "Duplicate"。

    此时会显示 "Principal Basics" 面板。除空的 "Principal Name" 和 "Password" 字段之外,选定主体的其他属性都将被复制。

  4. 指定主体名称和口令。

    必须提供主体名称和口令。要完全复制选定主体,请单击 "Save" 并跳至步骤 7

  5. 指定该主体属性的其他值,然后继续单击 "Next" 以指定其他属性。

    有三个窗口包含属性信息。请从 "Help" 菜单中选择 "Context-Sensitive Help",获取有关每个窗口中各种属性的信息。或者,转至SEAM Tool 面板说明,了解所有主体属性说明。

  6. 单击 "Save" 以保存主体,或在最后一个面板上单击 "Done"。

  7. 如有必要,在 /etc/krb5/kadm5.acl 文件中为主体设置 Kerberos 管理权限。

    有关更多详细信息,请参见如何修改 Kerberos 管理权限

Procedure如何修改 Kerberos 主体

此过程后附等效命令行示例。

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

    有关更多信息,请参见如何启动 SEAM Tool


    $ /usr/sbin/gkadmin
    
  2. 单击 "Principals" 选项卡。

  3. 在列表中选择要修改的主体,然后单击 "Modify"。

    此时会显示包含该主体某些属性的 "Principal Basics" 面板。

  4. 修改该主体的属性,然后继续单击 "Next" 以修改其他属性。

    有三个窗口包含属性信息。请从 "Help" 菜单中选择 "Context-Sensitive Help",获取有关每个窗口中各种属性的信息。或者,转至SEAM Tool 面板说明,了解所有主体属性说明。


    注 –

    不能修改主体的名称。要重命名主体,必须首先复制该主体,为其指定一个新名称并保存,然后删除旧主体。


  5. 单击 "Save" 按钮以保存主体,或在最后一个面板上单击 "Done"。

  6. /etc/krb5/kadm5.acl 文件中,修改该主体的 Kerberos 管理权限。

    有关更多详细信息,请参见如何修改 Kerberos 管理权限


示例 24–6 修改 Kerberos 主体口令(命令行)

在以下示例中,kadminchange_password 命令用于修改 jdb 主体的口令。change_password 命令不允许将口令更改为主体口令历史记录中的口令。


kadmin: change_password jdb

Enter password for principal "jdb": <Type the new password>

Re-enter password for principal "jdb": <Type the password again>

Password for "jdb@EXAMPLE.COM" changed.

kadmin: quit

要修改主体的其他属性,必须使用 kadminmodify_principal 命令。


Procedure如何删除 Kerberos 主体

此过程后附等效命令行示例。

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

    有关更多信息,请参见如何启动 SEAM Tool


    $ /usr/sbin/gkadmin
    
  2. 单击 "Principals" 选项卡。

  3. 在列表中选择要删除的主体,然后单击 "delete"。

    确认删除后,将删除该主体。

  4. 从 Kerberos 访问控制列表 (access control list, ACL) 文件 /etc/krb5/kadm5.acl 中删除该主体。

    有关更多详细信息,请参见如何修改 Kerberos 管理权限


示例 24–7 删除 Kerberos 主体(命令行)

在以下示例中,kadmindelete_principal 命令用于删除 jdb 主体。


kadmin: delete_principal pak

Are you sure you want to delete the principal "pak@EXAMPLE.COM"? (yes/no): yes

Principal "pak@EXAMPLE.COM" deleted.

Make sure that you have removed this principal from all ACLs before reusing.

kadmin: quit

Procedure如何设置缺省值以创建新的 Kerberos 主体

此过程没有等效命令行。

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

    有关更多信息,请参见如何启动 SEAM Tool


    $ /usr/sbin/gkadmin
    
  2. 从 "Edit" 菜单中选择 "Properties"。

    此时会显示 "Properties" 窗口。

    标题为 "Properties" 的对话框显示了新主体和列表控件的缺省值。主体的缺省值包括安全选项和其他选项。
  3. 选择要在创建新主体时使用的缺省值。

    请从 "Help" 菜单中选择 "Context-Sensitive Help",以获取有关每个窗口中各种属性的信息。

  4. 单击 "Save"。

Procedure如何修改 Kerberos 管理权限

尽管您的站点可能有许多用户主体,但您通常只希望一小部分用户能够管理 Kerberos 数据库。管理 Kerberos 数据库的权限由 Kerberos 访问控制列表 (access control list, ACL) 文件 kadm5.acl 确定。通过 kadm5.acl 文件,可以允许或禁用各个主体的权限。或者,可在主体名称中使用 "*" 通配符来指定主体组的权限。

  1. 成为主 KDC 的超级用户。

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

    kadm5.acl 文件中的项必须使用以下格式:


    principal privileges [principal-target]

    principal

    指定要为其授予权限的主体。 主体名称的任何部分都可以包含 "*" 通配符,这在为一组主体提供相同权限时很有用。例如,如果要指定包含 admin 实例的所有主体,则可使用 */admin@realm

    请注意,admin 实例常用于将单独的权限(如对 Kerberos 数据库的管理访问权限)授予单独的 Kerberos 主体。 例如,用户 jdb 可能具有用于管理的主体 jdb/admin。这样,用户 jdb 便仅在实际需要使用这些权限时,才会获取 jdb/admin 票证。

    privileges

    指定主体能够执行和不能执行的操作。 此字段由一个或多个下列字符或其对应大写形式的字符组成。 如果字符为大写形式(或未指定),则不允许执行该操作。 如果字符为小写形式,则允许执行该操作。 

     

    a

    [不]允许添加主体或策略。 

     

    d

    [不]允许删除主体或策略。 

     

    m

    [不]允许修改主体或策略。 

     

    c

    [不]允许更改主体的口令。 

     

    i

    [不]允许查询 Kerberos 数据库。 

     

    l

    [不]允许列出 Kerberos 数据库中的主体或策略。 

     

    x*

    允许所有权限 (admcil)。

    principal-target

    在此字段中指定主体时,privileges 仅在 principalprincipal-target 进行操作时,才应用于 principal。主体名称的任何部分都可以包含 "*" 通配符,这在对主体分组时很有用。


示例 24–8 修改 Kerberos 管理权限

kadm5.acl 文件中的以下项授予 EXAMPLE.COM 领域中包含 admin 实例的任何主体对 Kerberos 数据库的所有权限:


*/admin@EXAMPLE.COM *

kadm5.acl 文件中的以下项授予 jdb@EXAMPLE.COM 主体添加、列出和查询包含 root 实例的任何主体的权限。


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