有两个方法您可以用来更改您的 Kerberos 口令:
借助通常的 UNIX passwd 命令。当安装有 SEAM 时, Solaris passwd 命令还自动提示您录入一个新的 Kerberos 口令。
使用 passwd 而不是 kpasswd 的优势在于您可以同时设定两个口令 (UNIX 和 Kerberos) 。然而,一般来讲,您就不是 必须 借助 passwd 对两个口令进行更改了; 您经常可以只更改您的 UNIX 口令而使 Kerberos 口令保持不变,反之亦然。
passwd 的性能取决于 PAM 模块是如何配置的。在某些配置中,可能要求您对两个口令进行更改。对于某些站点, UNIX 口令必须得到更改,而其它站点则要求 Kerberos 口令得到更改。
借助 kpasswd 命令。 kpasswd 十分类似于 passwd。一个区别在于, kpasswd 只变更 Kerberos 口令 - 如果您想更改您的 UNIX 口令的话,您就必须使用 passwd。
另一区别在于, kpasswd 可以为一个并非有效 UNIX 用户的 Kerberos 授权对象更改口令。例如, david/admin 是一个 Kerberos 授权对象,但并非一个实际的 UNIX 用户,因而您必须使用 kpasswd,而不是 passwd。
您更改您的口令之后,让更改通过一个系统得到传播 (特别是跨越一个大型网络),需要花费一些时间。这取决于您的系统是如何设置的,可能会是从几分钟到一个小时或更长时间不等。如果您必须在更改您的口令之后不久就获得新的 Kerberos 票券,则请首先尝试新的口令。如果新的口令无效,则请再次尝试使用旧的口令。
Kerberos V5 允许系统管理员就所允许的口令,为每个用户设定范畴。此类范畴是通过为每个用户设定的 策略 加以定义的 (或通过一个默认的策略)- 请参见"管理策略",了解更多有关策略的信息。例如,假设 jennifer 的策略 (称之为 jenpol) 要求口令为至少八个字母长且包括至少两种字符的混合体。因而 kpasswd 将拒绝把 "sloth" 用作口令的企图:
% kpasswd kpasswd: 更改 jennifer@ENG.ACME.COM 的口令。 旧的口令:<jennifer 录入其现有的口令> kpasswd: jennifer@ENG.ACME.COM 的口令由策略 jenpol 进行控制, 要求来自至少 2 个类的至少 8 个字符, (五类为小写,大写,数字,标点符号,以及所有其它的字符)。 新的口令: <jennifer 录入 'sloth'> 新的口令 (再次):<jennifer 重新录入 'sloth'>kpasswd: 新的口令太短。 请选择一个至少 4 个字符长的口令。 |
这里, jennifer 使用 "slothrop49" 作为一个口令。'slothrop49' 符合范畴,因为其为八个以上字母长且包含两个不同种类的字符 (数字和小写字母):
% kpasswd kpasswd: 更改 jennifer@ENG.ACME.COM 的口令。 旧的口令:<jennifer 录入其现有的口令> kpasswd: jennifer@ENG.ACME.COM 的口令由策略 jenpol 进行控制, 要求来自至少 2 个类的至少 8 个字符, (五类为小写,大写,数字,标点符号,以及所有其它的字符)。 新的口令:<jennifer 录入 'slothrop49'> 新的口令 (再次):<jennifer 重新录入 'slothrop49'> Kerbero口令得到更改。 |
下列示例显示 david 借助 passwd,对其 UNIX 和 Kerberos 口令两者进行更改。
% passwd passwd: 更改 david 的口令 录入登录(NIS+) 口令: <录入当前的 UNIX 口令> 新的口令: <录入新的 UNIX 口令> 重新录入口令: <确认新的 UNIX 口令> 旧的 KRB5 口令: <录入当前的 Kerberos 口令> 新的KRB5 口令: <录入新的 Kerberos 口令> 重新录入新的 KRB5 口令: <确认新的 Kerberos 口令> |
在上面的示例中, passwd 询问 UNIX 和 Kerberos 口令两者; 然而,如果 try_first_pass 在 PAM 模块中得到设定,则 Kerberos 口令自动设定为与 UNIX 口令相同。(这是默认的配置。) 在这种情形下,david 必须使用 kpasswd,将其 Kerberos 口令设定为其它一些内容,如下所示。
该示例显示其借助 kpasswd,只更改其 Kerberos 口令:
% kpasswd kpasswd: 更改的口令 david@ENG.ACME.COM. 旧的口令: <录入当前的 Kerberos 口令> 新的口令: <录入新的 Kerberos 口令> 新的口令 (再次): <确认新的 Kerberos 口令> Kerberos 口令得到更改。 |
在本示例中, david 变更 Kerberos 授权对象 david/admin 的口令 (而这并非一个有效的 UNIX 用户)。如要做到这一点,他必须使用 kpasswd。
% kpasswd david/admink kpasswd: 更改 david/admin 的口令。 旧的口令: <录入当前的 Kerberos 口令> 新的口令: <录入新的 Kerberos 口令> 新的口令 (再次): <确认新的 Kerberos 口令> Kerberos 口令得到更改。 |