- #!/bin/ksh
- #
- # nfskrb5test1.ksh - KDC test script for Windows NFS krb5 setup test #001
- #
- # Written by Roland Mainz <roland.mainz@nrubsig.org>
- #
- export PATH=/usr/bin:/bin:/sbin
- builtin mkdir
- #builtin rm
- kdctestdir='/tmp/kdctest1'
- compound config=(
- hostname="$(hostname --fqdn)"
- kdcport=88
- kadmindport=749
- # realmname must be UPPERCASE!
- realmname='NFSCHICKEN.TEST'
- )
- rm -Rfv -- "$kdctestdir"
- rm -Rfv "/tmp/krb5cc_dir_$(id -u)"
- mkdir -p -- "$kdctestdir"
- export KRB5_KDC_PROFILE="${kdctestdir}/kdc.conf"
- export KRB5_CONFIG="${kdctestdir}/krb5.conf"
- cat >"${KRB5_CONFIG}" <<EOF
- [libdefaults]
- default_realm = ${config.realmname}
- default_ccache_name = DIR:/tmp/krb5cc_dir_%{uid}
- [realms]
- ${config.realmname} = {
- kdc = ${config.hostname}:${config.kdcport}
- admin_server = ${config.hostname}:${config.kadmindport}
- }
- EOF
- cat >"${KRB5_KDC_PROFILE}" <<EOF
- [kdcdefaults]
- kdc_ports = ${config.kdcport}
- kdc_tcp_ports = ${config.kdcport}
- [realms]
- ${config.realmname} = {
- kadmind_port = ${config.kadmindport}
- acl_file = ${kdctestdir}/kadm5.acl
- admin_keytab = ${kdctestdir}/kadm5.keytab
- database_name = ${kdctestdir}/principal
- key_stash_file = ${kdctestdir}/.k5.${config.realmname}
- max_life = 12h 0m 0s
- max_renewable_life = 7d 0h 0m 0s
- master_key_type = aes256-cts-hmac-sha1-96
- supported_enctypes = aes256-cts-hmac-sha1-96:normal aes128-cts-hmac-sha1-96:normal
- }
- [logging]
- kdc = FILE:${kdctestdir}/kdc.log
- admin_server = FILE:${kdctestdir}/kadmin.log
- default = FILE:${kdctestdir}/default.log
- EOF
- {
- printf '%s\n' 'tiger12maus'
- printf '%s\n' 'tiger12maus'
- } | kdb5_util create -r "${config.realmname}" -s
- #
- # add admin user
- #
- {
- printf "addprinc admin/admin@${config.realmname}\n"
- printf '%s\n' 'tiger12maus'
- printf '%s\n' 'tiger12maus'
- } | kadmin.local
- #
- # add plain (Windows) user
- #
- {
- printf "addprinc roland_mainz@${config.realmname}\n"
- printf '%s\n' 'tiger12maus'
- printf '%s\n' 'tiger12maus'
- } | kadmin.local
- #
- # add Linux host
- #
- {
- printf "addprinc host/debnfskrb5001@${config.realmname}\n"
- printf '%s\n' 'tiger12maus'
- printf '%s\n' 'tiger12maus'
- } | kadmin.local
- {
- printf "addprinc host/debnfskrb5001.nfschicken.test@${config.realmname}\n"
- printf '%s\n' 'tiger12maus'
- printf '%s\n' 'tiger12maus'
- } | kadmin.local
- #
- # add NFS service on Linux host
- #
- {
- printf "addprinc nfs/debnfskrb5001@${config.realmname}\n"
- printf '%s\n' 'tiger12maus'
- printf '%s\n' 'tiger12maus'
- } | kadmin.local
- {
- printf "addprinc nfs/debnfskrb5001.nfschicken.test@${config.realmname}\n"
- printf '%s\n' 'tiger12maus'
- printf '%s\n' 'tiger12maus'
- } | kadmin.local
- # create /etc/krb5.keytab
- rm -f /tmp/nfs01.keytab
- {
- printf 'ktadd -k /tmp/nfs01.keytab nfs/debnfskrb5001.nfschicken.test@NFSCHICKEN.TEST\n'
- } | kadmin.local
- mv -f /tmp/nfs01.keytab /etc/krb5.keytab
- #
- # setup Windows machine
- # On Windows machine use:
- # --- snip ---
- # printf '10.49.202.233\t\tdebnfskrb5001.nfschicken.test\n' >>/cygdrive/c/Windows/System32/drivers/etc/hosts
- # printf '10.49.202.233\t\tdebnfskrb5001\n' >>/cygdrive/c/Windows/System32/drivers/etc/hosts
- # ksetup /setrealm NFSCHICKEN.TEST
- # ksetup /addkdc NFSCHICKEN.TEST debnfskrb5001.nfschicken.test
- # ksetup /setrealmflags NFSCHICKEN.TEST tcpsupported
- # ksetup /mapuser roland_mainz@NFSCHICKEN.TEST roland_mainz
- # ksetup /setcomputerpassword tiger12maus
- # # mount with
- # nfs_mount -o sec=krb5,rw 'K' nfs://10.49.202.233//nfsdata
- # --- snip ---
- #
- {
- printf "addprinc host/wingrendel02@${config.realmname}\n"
- printf '%s\n' 'tiger12maus'
- printf '%s\n' 'tiger12maus'
- } | kadmin.local
- {
- printf "addprinc host/wingrendel02.nfschicken.test@${config.realmname}\n"
- printf '%s\n' 'tiger12maus'
- printf '%s\n' 'tiger12maus'
- } | kadmin.local
- krb5kdc -n &
- (( kdc_pid=$! ))
- sleep 10
- {
- printf '%s\n' 'tiger12maus'
- } | kinit "admin/admin@${config.realmname}"
- {
- printf '%s\n' 'tiger12maus'
- } | kinit "roland_mainz@${config.realmname}"
- klist -A
- sleep 10000
- kill $kdc_pid
- wait $kdc_pid
- # EOF.
nfskrb5test1.ksh - KDC test script for Windows NFS krb5 setup test #001
Posted by Anonymous on Mon 24th Aug 2026 18:31
raw | new post
Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.
nrubsig.kpaste.net RSS