KADMIN(1)

πŸ“¦ version 7.8.0, in epel 10, epel 9, fedora 43, fedora 44

✨ KADMIN(1) ✨

okay so bestie, welcome to kadmin, straight outta the General Commands Manual, section 1 πŸŽ€ this is the Kerberos administration utility and she is the main character of your realm, periodt.


πŸ’– NAME πŸ’–

kadmin β€” the Kerberos administration utility 🧚


πŸ¦‹ SYNOPSIS πŸ¦‹

kadmin [-p string | --principal=string] [-K string | --keytab=string]
       [-c file | --config-file=file] [-k file | --key-file=file]
       [-r realm | --realm=realm] [-a host | --admin-server=host]
       [-s port number | --server-port=port number] [-l | --local]
       [-h | --help] [-v | --version] [command]

🌸 DESCRIPTION 🌸

So like, kadmin is the program you use to make modifications to the Kerberos database β€” either remotely via the kadmind(8) daemon, or locally (that's the -l option, iykyk).

Supported options: πŸ‘‘

  • -p string, --principal=string β€” the principal you wanna authenticate as πŸ’…
  • -K string, --keytab=string β€” the keytab for your authentication principal πŸ”‘
  • -c file, --config-file=file β€” where the config file lives πŸ—‚οΈ
  • -k file, --key-file=file β€” where the master key file lives πŸ—οΈ
  • -r realm, --realm=realm β€” which realm to use 🌍
  • -a host, --admin-server=host β€” which server to contact πŸ“‘
  • -s port number, --server-port=port number β€” which port to use πŸšͺ
  • -l, --local β€” local admin mode, no daemon needed bestie πŸ’«

If you don't hand her a command on the command line, kadmin will prompt you for commands to process. And some of the commands that take one or more principals as an argument β€” specifically delete</>, ext_keytab</>, get</>, modify</>, and passwd</> β€” will accept a glob style wildcard, and do the thing to all the matching principals. iconic behaviour honestly.

Commands include: ✨

πŸ’œ add

add [-r | --random-key] [--random-password] [-p string |
--password=string] [--key=string] [--max-ticket-life=lifetime]
[--max-renewable-life=lifetime] [--attributes=attributes]
[--expiration-time=time] [--pw-expiration-time=time]
[--policy=policy-name] principal...

Adds a brand new principal to the database πŸŽ‰ the options you don't pass on the command line? she's gonna prompt you for them. also heads up: the only policy supported by Heimdal servers is default. that's it. that's the list.

πŸ¦‹ add_enctype

add_enctype [-r | --random-key] principal enctypes...

Adds a new encryption type to the principal β€” but ngl, only random key are supported πŸ™ˆ

πŸ“ delete

delete principal...

Removes a principal. bye bestie πŸ‘‹πŸ’€

🌈 del_enctype

del_enctype principal enctypes...

Removes some enctypes from a principal β€” this is genuinely useful if the service belonging to that principal is known to not handle certain enctypes, no cap 🚫

πŸŽ€ ext_keytab

ext_keytab [-k string | --keytab=string] principal...

Creates a keytab with the keys of the specified principals. Requires get-keys rights β€” otherwise the principal's keys are changed and saved in the keytab 😭 so like, be aware of that.

πŸ‘‘ get

get [-l | --long] [-s | --short] [-t | --terse] [-o string |
--column-info=string] principal...

Lists the matching principals πŸ’… short prints the result as a table, while long format gives you the more verbose, extra-detail output. Which columns get printed can be picked with the -o option β€” that argument is a comma separated list</> of column names, optionally with an equal sign (=) and a column header appended. And which columns are printed by default differs slightly between short and long output, so like, vibe check accordingly.

The default terse output format is basically the same as -s -o principal=, just printing the names of the matched principals 🫢

Possible column names include: principal, princ_expire_time, pw_expiration, last_pwd_change, max_life, max_rlife, mod_time, mod_name, attributes, kvno, mkvno, last_success, last_failed, fail_auth_count, policy, and keytypes. ⭐

🌸 modify

modify [-a attributes | --attributes=attributes]
[--max-ticket-life=lifetime] [--max-renewable-life=lifetime]
[--expiration-time=time] [--pw-expiration-time=time] [--kvno=number]
[--policy=policy-name] principal...

Modifies certain attributes of a principal. Run it with no command line options and she'll prompt you. Run it with command line options and it only changes the ones you actually specified 😌

Only policy supported by Heimdal is default.

Possible attributes are: new-princ, support-desmd5, pwchange-service, disallow-svr, requires-pw-change, requires-hw-auth, requires-pre-auth, disallow-all-tix, disallow-dup-skey, disallow-proxiable, disallow-renewable, disallow-tgt-based, disallow-forwardable, disallow-postdated 🧚

Attributes may be negated with a -, e.g.,

kadmin -l modify -a -disallow-proxiable user

πŸ’« passwd

passwd [--keepold] [-r | --random-key] [--random-password] [-p string |
--password=string] [--key=string] principal...

Changes the password of an existing principal πŸ”

πŸ¦„ verify-password-quality

verify-password-quality principal password

Runs the password quality check function locally. You can run this on the host that's configured to run the kadmind process to verify that your configuration file is correct ✨ the verification is done locally β€” if kadmin is run in remote mode, no rpc call is done to the server.

NOTE: if the environment has verify-password-quality configured to use a back-end that stores password history (such as heimdal-history), running verify-quality-password will cause an update to the password database β€” meaning that merely verifying the quality of the password using verify-quality-password invalidates the use of that principal/password in the future πŸ˜­πŸ’€ fr fr, that's a real one.

πŸŽ€ privileges

privileges

Lists the operations you're allowed to perform πŸ‘‘ these include add, add_enctype, change-password, delete, del_enctype, get, get-keys, list, and modify.

πŸ“ rename

rename from to

Renames a principal. This is normally transparent, but since keys are salted with the principal name, they'll end up with a non-standard salt β€” and clients that can't cope with that will fail. Kerberos 4 suffers from this 😬

🌈 check

check [realm]

Checks the database for strange configurations on important principals πŸ‘€ if no realm is given, the default realm is used.


🫢 When running in local mode, the following commands can also be used:

πŸ’œ dump

dump [-d | --decrypt] [-fformat | --format=format] [dump-file]

Writes the database in "machine readable text" form to the specified file, or to standard out πŸ“ if the database is encrypted, the dump will also have encrypted keys β€” unless --decrypt is used. And if --format=MIT is used then the dump will be in MIT format, otherwise it'll be in Heimdal format 🧚

🌸 init

init [--realm-max-ticket-life=string]
[--realm-max-renewable-life=string] realm

Initializes the Kerberos database with entries for a new realm ✨ and yes, it's possible to have more than one realm served by one server, she's versatile like that.

πŸ¦‹ load

load file

Reads a previously dumped database, and re-creates that database from scratch πŸ’₯

⭐ merge

merge file

Similar to load but it just modifies the database with the entries in the dump file 😌

πŸŽ€ stash

stash [-e enctype | --enctype=enctype] [-k keyfile | --key-file=keyfile]
[--convert-file] [--master-key-fd=fd]

Writes the Kerberos master key to a file used by the KDC πŸ”‘πŸ‘‘


πŸ‘€ SEE ALSO πŸ‘€

kadmind(8), kdc(8)


and that's the whole page bestie, you ate πŸ’… this one's from HEIMDAL, dated Feb 22, 2007, filed under KADMIN(1) β€” go forth and admin your Kerberos, you got this 🫢✨🌈

πŸ“¦ where this page comes from