From db1c0d04f22fe37c52c3337d5ac676aef57de553 Mon Sep 17 00:00:00 2001 From: Alex Dehnert Date: Fri, 17 May 2013 02:17:06 -0400 Subject: [PATCH] krbroot: Support non-default instances Also, non-default principals more generally and non-default KRB5CCNAME values. --- krbroot | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/krbroot b/krbroot index 387ab56..5f0515d 100755 --- a/krbroot +++ b/krbroot @@ -1,30 +1,51 @@ #!/bin/sh -export KRB5CCNAME=/tmp/krb5cc_$(id -u).root + +usage="Usage: $0 [-i instance] [-p principal] [-a addrend] subcommand [args]" + +principal="$ATHENA_USER/root@ATHENA.MIT.EDU" +addrend="root" +while getopts "i:p:a:h" options; do + case $options in + i ) addrend="$OPTARG"; principal="$ATHENA_USER/$OPTARG@ATHENA.MIT.EDU";; + p ) principal="$OPTARG";; + a ) addrend="$OPTARG";; + h ) echo "$usage"; exit 0;; + \? ) echo "$usage"; exit 1;; + * ) echo "$usage"; exit 1;; + esac +done +shift `expr $OPTIND - 1 || :` + +export KRB5CCNAME="/tmp/krb5cc_$(id -u).$addrend" export KRBTKFILE=/dev/null +init () { + kinit -F -5 -l15m "$principal" "$@" +} + case $1 in init) shift; - exec kinit -F -5 -l15m $ATHENA_USER/root@ATHENA.MIT.EDU "$@" + exec kinit -F -5 -l15m "$principal" "$@" ;; destroy) exec kdestroy -5 ;; shell) - klist -s || krbroot init || exit 1; - HOST="`hostname` (krbroot)" pagsh -c $SHELL + klist -s || init || exit 1; + HOST="`hostname` (krb:$addrend)" pagsh -c $SHELL ;; screen) - klist -s || krbroot init || exit 1; - HOST="`hostname` (krbroot)" pagsh -c 'exec "$@"' exec "$@" + klist -s || init || exit 1; + HOST="`hostname` (krb:$addrend)" pagsh -c 'exec "$@"' exec "$@" ;; ssh) - klist -s || krbroot init || exit 1; + klist -s || init || exit 1; shift exec ssh -k -l root "$@" ;; rlogin) - klist -s || krbroot init || exit 1; + klist -s || init || exit 1; exec rlogin -x -l root $2 ;; *) -- 2.34.1