X-Git-Url: https://www.dehnerts.com/gitweb/?p=user%2Falex%2Fsoftware%2Fmy-snippets.git;a=blobdiff_plain;f=krbroot;fp=krbroot;h=5f0515dc01a36f6a7a8f189e90e78cfdfd3972a5;hp=387ab569591c760fa86335389bc75bbcad5d3a13;hb=db1c0d04f22fe37c52c3337d5ac676aef57de553;hpb=bf8134f7426c3b4aeaf3f2d9d93b217221822366 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 ;; *)