From: Alex Dehnert Date: Fri, 17 May 2013 06:17:06 +0000 (-0400) Subject: krbroot: Support non-default instances X-Git-Url: https://www.dehnerts.com/gitweb/?p=user%2Falex%2Fsoftware%2Fmy-snippets.git;a=commitdiff_plain;h=db1c0d04f22fe37c52c3337d5ac676aef57de553 krbroot: Support non-default instances Also, non-default principals more generally and non-default KRB5CCNAME values. --- 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 ;; *)