1KADMIN(1) General Commands Manual KADMIN(1)
2
3
4
6 kadmin - Kerberos V5 database administration program
7
9 kadmin [-O | -N] [-r realm] [-p principal] [-q query]
10 [[-c cache_name] | [-k [-t keytab]] | -n] [-w password] [-s
11 admin_server[:port]
12
13 kadmin.local [-r realm] [-p principal] [-q query]
14 [-d dbname] [-e "enc:salt ..."] [-m] [-x db_args]
15
17 kadmin and kadmin.local are command-line interfaces to the Kerberos V5
18 KADM5 administration system. Both kadmin and kadmin.local provide
19 identical functionalities; the difference is that kadmin.local runs on
20 the master KDC if the database is db2 and does not use Kerberos to
21 authenticate to the database. Except as explicitly noted otherwise,
22 this man page will use kadmin to refer to both versions. kadmin pro‐
23 vides for the maintenance of Kerberos principals, KADM5 policies, and
24 service key tables (keytabs).
25
26 The remote version uses Kerberos authentication and an encrypted RPC,
27 to operate securely from anywhere on the network. It authenticates to
28 the KADM5 server using the service principal kadmin/admin. If the cre‐
29 dentials cache contains a ticket for the kadmin/admin principal, and
30 the -c credentials_cache option is specified, that ticket is used to
31 authenticate to KADM5. Otherwise, the -p and -k options are used to
32 specify the client Kerberos principal name used to authenticate. Once
33 kadmin has determined the principal name, it requests a kadmin/admin
34 Kerberos service ticket from the KDC, and uses that service ticket to
35 authenticate to KADM5.
36
37 If the database is db2, the local client kadmin.local, is intended to
38 run directly on the master KDC without Kerberos authentication. The
39 local version provides all of the functionality of the now obsolete
40 kdb5_edit(8), except for database dump and load, which is now provided
41 by the kdb5_util(8) utility.
42
43 If the database is LDAP, kadmin.local need not be run on the KDC.
44
45 kadmin.local can be configured to log updates for incremental database
46 propagation. Incremental propagation allows slave KDC servers to
47 receive principal and policy updates incrementally instead of receiving
48 full dumps of the database. This facility can be enabled in the
49 kdc.conf file with the iprop_enable option. See the kdc.conf documen‐
50 tation for other options for tuning incremental propagation parameters.
51
52
54 -r realm
55 Use realm as the default database realm.
56
57 -p principal
58 Use principal to authenticate. Otherwise, kadmin will append
59 "/admin" to the primary principal name of the default ccache,
60 the value of the USER environment variable, or the username as
61 obtained with getpwuid, in order of preference.
62
63 -k Use a keytab to decrypt the KDC response instead of prompting
64 for a password on the TTY. In this case, the default principal
65 will be host/hostname. If there is not a keytab specified with
66 the -t option, then the default keytab will be used.
67
68 -t keytab
69 Use keytab to decrypt the KDC response. This can only be used
70 with the -k option. -n Requests anonymous processing. Two
71 types of anonymous principals are supported. For fully anony‐
72 mous Kerberos, configure pkinit on the KDC and configure
73 pkinit_anchors in the client's krb5.conf. Then use the -n
74 option with a principal of the form @REALM (an empty principal
75 name followed by the at-sign and a realm name). If permitted by
76 the KDC, an anonymous ticket will be returned. A second form of
77 anonymous tickets is supported; these realm-exposed tickets hide
78 the identity of the client but not the client's realm. For this
79 mode, use kinit -n with a normal principal name. If supported
80 by the KDC, the principal (but not realm) will be replaced by
81 the anonymous principal. As of release 1.8, the MIT Kerberos
82 KDC only supports fully anonymous operation.
83
84 -c credentials_cache
85 Use credentials_cache as the credentials cache. The creden‐
86 tials_cache should contain a service ticket for the kadmin/admin
87 service; it can be acquired with the kinit(1) program. If this
88 option is not specified, kadmin requests a new service ticket
89 from the KDC, and stores it in its own temporary ccache.
90
91 -w password
92 Use password instead of prompting for one on the TTY. Note:
93 placing the password for a Kerberos principal with administra‐
94 tion access into a shell script can be dangerous if unauthorized
95 users gain read access to the script.
96
97 -q query
98 pass query directly to kadmin, which will perform query and then
99 exit. This can be useful for writing scripts.
100
101 -d dbname
102 Specifies the name of the Kerberos database. This option does
103 not apply to the LDAP database.
104
105 -s admin_server[:port]
106 Specifies the admin server which kadmin should contact.
107
108 -m Do not authenticate using a keytab. This option will cause kad‐
109 min to prompt for the master database password.
110
111 -e enc:salt_list
112 Sets the list of encryption types and salt types to be used for
113 any new keys created.
114
115 -O Force use of old AUTH_GSSAPI authentication flavor.
116
117 -N Prevent fallback to AUTH_GSSAPI authentication flavor.
118
119 -x db_args
120 Specifies the database specific arguments.
121
122 Options supported for LDAP database are:
123
124 -x host=<hostname>
125 specifies the LDAP server to connect to by a LDAP URI.
126
127 -x binddn=<bind_dn>
128 specifies the DN of the object used by the administration
129 server to bind to the LDAP server. This object should
130 have the read and write rights on the realm container,
131 principal container and the subtree that is referenced by
132 the realm.
133
134 -x bindpwd=<bind_password>
135 specifies the password for the above mentioned binddn. It
136 is recommended not to use this option. Instead, the
137 password can be stashed using the stashsrvpw command of
138 kdb5_ldap_util.
139
141 Various commands in kadmin can take a variety of date formats, specify‐
142 ing durations or absolute times. Examples of valid formats are:
143
144 1 month ago
145 2 hours ago
146 400000 seconds ago
147 last year
148 this Monday
149 next Monday
150 yesterday
151 tomorrow
152 now
153 second Monday
154 a fortnight ago
155 3/31/92 10:00:07 PST
156 January 23, 1987 10:05pm
157 22:00 GMT
158
159 Dates which do not have the "ago" specifier default to being absolute
160 dates, unless they appear in a field where a duration is expected. In
161 that case the time specifier will be interpreted as relative. Specify‐
162 ing "ago" in a duration may result in unexpected behavior.
163
165 add_principal [options] newprinc
166 creates the principal newprinc, prompting twice for a password.
167 If no policy is specified with the -policy option, and the pol‐
168 icy named "default" exists, then that policy is assigned to the
169 principal; note that the assignment of the policy "default" only
170 occurs automatically when a principal is first created, so the
171 policy "default" must already exist for the assignment to occur.
172 This assignment of "default" can be suppressed with the -clear‐
173 policy option. This command requires the add privilege. This
174 command has the aliases addprinc and ank. The options are:
175
176 -x db_princ_args
177 Denotes the database specific options. The options for
178 LDAP database are:
179
180 -x dn=<dn>
181 Specifies the LDAP object that will contain the
182 Kerberos principal being created.
183
184 -x linkdn=<dn>
185 Specifies the LDAP object to which the newly cre‐
186 ated Kerberos principal object will point to.
187
188 -x containerdn=<container_dn>
189 Specifies the container object under which the
190 Kerberos principal is to be created.
191
192 -x tktpolicy=<policy>
193 Associates a ticket policy to the Kerberos princi‐
194 pal.
195
196 -expire expdate
197 expiration date of the principal
198
199 -pwexpire pwexpdate
200 password expiration date
201
202 -maxlife maxlife
203 maximum ticket life for the principal
204
205 -maxrenewlife maxrenewlife
206 maximum renewable life of tickets for the principal
207
208 -kvno kvno
209 explicity set the key version number.
210
211 -policy policy
212 policy used by this principal. If no policy is supplied,
213 then if the policy "default" exists and the -clearpolicy
214 is not also specified, then the policy "default" is used;
215 otherwise, the principal will have no policy, and a warn‐
216 ing message will be printed.
217
218 -clearpolicy
219 -clearpolicy prevents the policy "default" from being
220 assigned when -policy is not specified. This option has
221 no effect if the policy "default" does not exist.
222
223 {-|+}allow_postdated
224 -allow_postdated prohibits this principal from obtaining
225 postdated tickets. (Sets the KRB5_KDB_DISALLOW_POSTDATED
226 flag.) +allow_postdated clears this flag.
227
228 {-|+}allow_forwardable
229 -allow_forwardable prohibits this principal from obtain‐
230 ing forwardable tickets. (Sets the KRB5_KDB_DISAL‐
231 LOW_FORWARDABLE flag.) +allow_forwardable clears this
232 flag.
233
234 {-|+}allow_renewable
235 -allow_renewable prohibits this principal from obtaining
236 renewable tickets. (Sets the KRB5_KDB_DISALLOW_RENEWABLE
237 flag.) +allow_renewable clears this flag.
238
239 {-|+}allow_proxiable
240 -allow_proxiable prohibits this principal from obtaining
241 proxiable tickets. (Sets the KRB5_KDB_DISALLOW_PROXIABLE
242 flag.) +allow_proxiable clears this flag.
243
244 {-|+}allow_dup_skey
245 -allow_dup_skey Disables user-to-user authentication for
246 this principal by prohibiting this principal from obtain‐
247 ing a session key for another user. (Sets the
248 KRB5_KDB_DISALLOW_DUP_SKEY flag.) +allow_dup_skey clears
249 this flag.
250
251 {-|+}requires_preauth
252 +requires_preauth requires this principal to preauthenti‐
253 cate before being allowed to kinit. (Sets the
254 KRB5_KDB_REQUIRES_PRE_AUTH flag.) -requires_preauth
255 clears this flag.
256
257 {-|+}requires_hwauth
258 +requires_hwauth requires this principal to preauthenti‐
259 cate using a hardware device before being allowed to
260 kinit. (Sets the KRB5_KDB_REQUIRES_HW_AUTH flag.)
261 -requires_hwauth clears this flag.
262
263 {-|+}ok_as_delegate
264 +ok_as_delegate sets the OK-AS-DELEGATE flag on tickets
265 issued for use with this principal as the service, which
266 clients may use as a hint that credentials can and should
267 be delegated when authenticating to the service. (Sets
268 the KRB5_KDB_OK_AS_DELEGATE flag.) -ok_as_delegate
269 clears this flag.
270
271 {-|+}allow_svr
272 -allow_svr prohibits the issuance of service tickets for
273 this principal. (Sets the KRB5_KDB_DISALLOW_SVR flag.)
274 +allow_svr clears this flag.
275
276 {-|+}allow_tgs_req
277 -allow_tgs_req specifies that a Ticket-Granting Service
278 (TGS) request for a service ticket for this principal is
279 not permitted. This option is useless for most things.
280 +allow_tgs_req clears this flag. The default is
281 +allow_tgs_req. In effect, -allow_tgs_req sets the
282 KRB5_KDB_DISALLOW_TGT_BASED flag on the principal in the
283 database.
284
285 {-|+}allow_tix
286 -allow_tix forbids the issuance of any tickets for this
287 principal. +allow_tix clears this flag. The default is
288 +allow_tix. In effect, -allow_tix sets the KRB5_KDB_DIS‐
289 ALLOW_ALL_TIX flag on the principal in the database.
290
291 {-|+}needchange
292 +needchange sets a flag in attributes field to force a
293 password change; -needchange clears it. The default is
294 -needchange. In effect, +needchange sets the
295 KRB5_KDB_REQUIRES_PWCHANGE flag on the principal in the
296 database.
297
298 {-|+}password_changing_service
299 +password_changing_service sets a flag in the attributes
300 field marking this as a password change service principal
301 (useless for most things). -password_changing_service
302 clears the flag. This flag intentionally has a long
303 name. The default is -password_changing_service. In
304 effect, +password_changing_service sets the
305 KRB5_KDB_PWCHANGE_SERVICE flag on the principal in the
306 database.
307
308 -randkey
309 sets the key of the principal to a random value
310
311 -pw password
312 sets the key of the principal to the specified string and
313 does not prompt for a password. Note: using this option
314 in a shell script can be dangerous if unauthorized users
315 gain read access to the script.
316
317 -e "enc:salt ..."
318 uses the specified list of enctype-salttype pairs for
319 setting the key of the principal. The quotes are neces‐
320 sary if there are multiple enctype-salttype pairs. This
321 will not function against kadmin daemons earlier than
322 krb5-1.2.
323
324 EXAMPLE:
325 kadmin: addprinc tlyu/admin
326 WARNING: no policy specified for "tlyu/admin@BLEEP.COM";
327 defaulting to no policy.
328 Enter password for principal tlyu/admin@BLEEP.COM:
329 Re-enter password for principal tlyu/admin@BLEEP.COM:
330 Principal "tlyu/admin@BLEEP.COM" created.
331 kadmin:
332
333 kadmin: addprinc -x dn=cn=mwm_user,o=org mwm_user
334 WARNING: no policy specified for "mwm_user@BLEEP.COM";
335 defaulting to no policy.
336 Enter password for principal mwm_user@BLEEP.COM:
337 Re-enter password for principal mwm_user@BLEEP.COM:
338 Principal "mwm_user@BLEEP.COM" created.
339 kadmin:
340
341
342 ERRORS:
343 KADM5_AUTH_ADD (requires "add" privilege)
344 KADM5_BAD_MASK (shouldn't happen)
345 KADM5_DUP (principal exists already)
346 KADM5_UNK_POLICY (policy does not exist)
347 KADM5_PASS_Q_* (password quality violations)
348
349 delete_principal [-force] principal
350 deletes the specified principal from the database. This command
351 prompts for deletion, unless the -force option is given. This
352 command requires the delete privilege. Aliased to delprinc.
353
354
355 EXAMPLE:
356 kadmin: delprinc mwm_user
357 Are you sure you want to delete the principal
358 "mwm_user@BLEEP.COM"? (yes/no): yes
359 Principal "mwm_user@BLEEP.COM" deleted.
360 Make sure that you have removed this principal from
361 all ACLs before reusing.
362 kadmin:
363
364 ERRORS:
365 KADM5_AUTH_DELETE (reequires "delete" privilege)
366 KADM5_UNK_PRINC (principal does not exist)
367
368 modify_principal [options] principal
369 modifies the specified principal, changing the fields as speci‐
370 fied. The options are as above for add_principal, except that
371 password changing and flags related to password changing are
372 forbidden by this command. In addition, the option -clearpolicy
373 will clear the current policy of a principal. This command
374 requires the modify privilege. Aliased to modprinc.
375
376 -x db_princ_args
377 Denotes the database specific options. The options for
378 LDAP database are:
379
380 -x tktpolicy=<policy>
381 Associates a ticket policy to the Kerberos princi‐
382 pal.
383
384 -x linkdn=<dn>
385 Associates a Kerberos principal with a LDAP
386 object. This option is honored only if the Ker‐
387 beros principal is not already associated with a
388 LDAP object.
389
390 ERRORS:
391 KADM5_AUTH_MODIFY (requires "modify" privilege)
392 KADM5_UNK_PRINC (principal does not exist) KADM5_UNK_POL‐
393 ICY (policy does not exist) KADM5_BAD_MASK (shouldn't
394 happen)
395
396 change_password [options] principal
397 changes the password of principal. Prompts for a new password
398 if neither -randkey or -pw is specified. Requires the changepw
399 privilege, or that the principal that is running the program to
400 be the same as the one changed. Aliased to cpw. The following
401 options are available:
402
403 -randkey
404 sets the key of the principal to a random value
405
406 -pw password
407 set the password to the specified string. Not recom‐
408 mended.
409
410 -e "enc:salt ..."
411 uses the specified list of enctype-salttype pairs for
412 setting the key of the principal. The quotes are neces‐
413 sary if there are multiple enctype-salttype pairs. This
414 will not function against kadmin daemons earlier than
415 krb5-1.2.
416
417 -keepold
418 Keeps the previous kvno's keys around. There is no easy
419 way to delete the old keys, and this flag is usually not
420 necessary except perhaps for TGS keys. Don't use this
421 flag unless you know what you're doing. This option is
422 not supported for the LDAP database.
423
424 EXAMPLE:
425 kadmin: cpw systest
426 Enter password for principal systest@BLEEP.COM:
427 Re-enter password for principal systest@BLEEP.COM:
428 Password for systest@BLEEP.COM changed.
429 kadmin:
430
431 ERRORS:
432 KADM5_AUTH_MODIFY (requires the modify privilege)
433 KADM5_UNK_PRINC (principal does not exist)
434 KADM5_PASS_Q_* (password policy violation errors)
435 KADM5_PADD_REUSE (password is in principal's password
436 history)
437 KADM5_PASS_TOOSOON (current password minimum life not
438 expired)
439
440 get_principal [-terse] principal
441 gets the attributes of principal. Requires the inquire privi‐
442 lege, or that the principal that is running the the program to
443 be the same as the one being listed. With the -terse option,
444 outputs fields as quoted tab-separated strings. Alias getprinc.
445
446
447 EXAMPLES:
448 kadmin: getprinc tlyu/admin
449 Principal: tlyu/admin@BLEEP.COM
450 Expiration date: [never]
451 Last password change: Mon Aug 12 14:16:47 EDT 1996
452 Password expiration date: [none]
453 Maximum ticket life: 0 days 10:00:00
454 Maximum renewable life: 7 days 00:00:00
455 Last modified: Mon Aug 12 14:16:47 EDT 1996 (bjaspan/admin@BLEEP.COM)
456 Last successful authentication: [never]
457 Last failed authentication: [never]
458 Failed password attempts: 0
459 Number of keys: 2
460 Key: vno 1, DES cbc mode with CRC-32, no salt
461 Key: vno 1, DES cbc mode with CRC-32, Version 4
462 Attributes:
463 Policy: [none]
464 kadmin: getprinc -terse systest
465 systest@BLEEP.COM 3 86400 604800 1
466 785926535 753241234 785900000
467 tlyu/admin@BLEEP.COM 786100034 0 0
468 kadmin:
469
470 ERRORS:
471 KADM5_AUTH_GET (requires the get (inquire) privilege)
472 KADM5_UNK_PRINC (principal does not exist)
473
474 list_principals [expression]
475 Retrieves all or some principal names. Expression is a shell-
476 style glob expression that can contain the wild-card characters
477 ?, *, and []'s. All principal names matching the expression are
478 printed. If no expression is provided, all principal names are
479 printed. If the expression does not contain an "@" character,
480 an "@" character followed by the local realm is appended to the
481 expression. Requires the list priviledge. Alias listprincs,
482 get_principals, get_princs.
483
484 EXAMPLES:
485 kadmin: listprincs test*
486 test3@SECURE-TEST.OV.COM
487 test2@SECURE-TEST.OV.COM
488 test1@SECURE-TEST.OV.COM
489 testuser@SECURE-TEST.OV.COM
490 kadmin:
491
492 add_policy [options] policy
493 adds the named policy to the policy database. Requires the add
494 privilege. Aliased to addpol. The following options are avail‐
495 able:
496
497 -maxlife time
498 sets the maximum lifetime of a password
499
500 -minlife time
501 sets the minimum lifetime of a password
502
503 -minlength length
504 sets the minimum length of a password
505
506 -minclasses number
507 sets the minimum number of character classes allowed in a
508 password
509
510 -history number
511 sets the number of past keys kept for a principal. This
512 option is not supported for LDAP database
513
514
515 EXAMPLES:
516 kadmin: add_policy -maxlife "2 days" -minlength 5 guests
517 kadmin:
518
519 ERRORS:
520 KADM5_AUTH_ADD (requires the add privilege)
521 KADM5_DUP (policy already exists)
522
523 delete_policy [-force] policy
524 deletes the named policy. Prompts for confirmation before dele‐
525 tion. The command will fail if the policy is in use by any
526 principals. Requires the delete privilege. Alias delpol.
527
528
529 EXAMPLE:
530 kadmin: del_policy guests
531 Are you sure you want to delete the policy "guests"?
532 (yes/no): yes
533 kadmin:
534
535 ERRORS:
536 KADM5_AUTH_DELETE (requires the delete privilege)
537 KADM5_UNK_POLICY (policy does not exist)
538 KADM5_POLICY_REF (reference count on policy is not zero)
539
540 modify_policy [options] policy
541 modifies the named policy. Options are as above for add_policy.
542 Requires the modify privilege. Alias modpol.
543
544
545 ERRORS:
546 KADM5_AUTH_MODIFY (requires the modify privilege)
547 KADM5_UNK_POLICY (policy does not exist)
548
549 get_policy [-terse] policy
550 displays the values of the named policy. Requires the inquire
551 privilege. With the -terse flag, outputs the fields as quoted
552 strings separated by tabs. Alias getpol.
553
554 EXAMPLES:
555 kadmin: get_policy admin
556 Policy: admin
557 Maximum password life: 180 days 00:00:00
558 Minimum password life: 00:00:00
559 Minimum password length: 6
560 Minimum number of password character classes: 2
561 Number of old keys kept: 5
562 Reference count: 17
563 kadmin: get_policy -terse admin
564 admin 15552000 0 6 2 5 17
565 kadmin:
566
567 ERRORS:
568 KADM5_AUTH_GET (requires the get privilege)
569 KADM5_UNK_POLICY (policy does not exist)
570
571 list_policies [expression]
572 Retrieves all or some policy names. Expression is a shell-style
573 glob expression that can contain the wild-card characters ?, *,
574 and []'s. All policy names matching the expression are printed.
575 If no expression is provided, all existing policy names are
576 printed. Requires the list priviledge. Alias listpols,
577 get_policies, getpols.
578
579
580 EXAMPLES:
581 kadmin: listpols
582 test-pol
583 dict-only
584 once-a-min
585 test-pol-nopw
586 kadmin: listpols t*
587 test-pol
588 test-pol-nopw
589 kadmin:
590
591 ktadd [-k keytab] [-q] [-e keysaltlist]
592 [-norandkey] [[principal | -glob princ-exp] [...]
593 Adds a principal or all principals matching princ-exp to a
594 keytab. It randomizes each principal's key in the process, to
595 prevent a compromised admin account from reading out all of the
596 keys from the database. However, kadmin.local has the -norand‐
597 key option, which leaves the keys and their version numbers
598 unchanged, similar to the Kerberos V4 ext_srvtab command. That
599 allows users to continue to use the passwords they know to login
600 normally, while simultaneously allowing scripts to login to the
601 same account using a keytab. There is no significant security
602 risk added since kadmin.local must be run by root on the KDC
603 anyway.
604
605 Requires the inquire and changepw privileges. An entry for each
606 of the principal's unique encryption types is added, ignoring
607 multiple keys with the same encryption type but different salt
608 types. If the -k argument is not specified, the default keytab
609 /etc/krb5.keytab is used. If the -q option is specified, less
610 verbose status information is displayed.
611
612 The -glob option requires the list privilege. princ-exp follows
613 the same rules described for the list_principals command.
614
615
616 EXAMPLE:
617 kadmin: ktadd -k /tmp/foo-new-keytab host/foo.mit.edu
618 Entry for principal host/foo.mit.edu@ATHENA.MIT.EDU with
619 kvno 3, encryption type DES-CBC-CRC added to keytab
620 WRFILE:/tmp/foo-new-keytab
621 kadmin:
622
623 ktremove [-k keytab] [-q] principal [kvno | all | old]
624 Removes entries for the specified principal from a keytab.
625 Requires no permissions, since this does not require database
626 access. If the string "all" is specified, all entries for that
627 principal are removed; if the string "old" is specified, all
628 entries for that principal except those with the highest kvno
629 are removed. Otherwise, the value specified is parsed as an
630 integer, and all entries whose kvno match that integer are
631 removed. If the -k argument is not specifeid, the default
632 keytab /etc/krb5.keytab is used. If the -q option is specified,
633 less verbose status information is displayed.
634
635
636 EXAMPLE:
637 kadmin: ktremove -k /var/kerberos/krb5kdc/kadmind.keytab kadmin/admin
638 Entry for principal kadmin/admin with kvno 3 removed
639 from keytab WRFILE:/var/kerberos/krb5kdc/kadmind.keytab.
640 kadmin:
641
643 principal.db default name for Kerberos principal database
644
645 <dbname>.kadm5 KADM5 administrative database. (This would be
646 "principal.kadm5", if you use the default database
647 name.) Contains policy information.
648
649 <dbname>.kadm5.lock lock file for the KADM5 administrative database.
650 This file works backwards from most other lock
651 files. I.e., kadmin will exit with an error if
652 this file does not exist.
653
654 Note: The above three files are specific to db2 data‐
655 base.
656
657 kadm5.acl file containing list of principals and their kad‐
658 min administrative privileges. See kadmind(8) for
659 a description.
660
661 kadm5.keytab keytab file for kadmin/admin principal.
662
663 kadm5.dict file containing dictionary of strings explicitly
664 disallowed as passwords.
665
667 The kadmin program was originally written by Tom Yu at MIT, as an
668 interface to the OpenVision Kerberos administration program.
669
671 kerberos(1), kpasswd(1), kadmind(8)
672
674 Command output needs to be cleaned up.
675
676 There is no way to delete a key kept around from a "-keepold" option to
677 a password-changing command, other than to do a password change without
678 the "-keepold" option, which will of course cause problems if the key
679 is a TGS key. There will be more powerful key-manipulation commands in
680 the future.
681
682
683
684 KADMIN(1)