1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | #!/bin/ksh ###################################################################### # Script Name: pbsu # Purpose: To simplify the PowerBroker su - functionality. # Maintainer: Martin Pelletier # Reviewer: ESM # Repository: elxin001:/opt/ess/pb/scripts ###################################################################### # History # ------- # 2009-Feb-13 - Martin Pelletier - Initial file creation # 2009-Feb-19 - Martin Pelletier - Added -r # 2009-Mar-06 - Corrected FUsage to say FuncUsage # 2009-Mar-13 - Added verbose messages # - Changed LOGIN to LOGIN_SWITCH ###################################################################### ###################################################################### # FUNCTION: FuncUsage # DESCRIPTION: Display a usage message when the script is called with # the -h option, or when a usage error occurs. ###################################################################### FuncUsage() { echo "Usage: pbsu [-vv] [-|-l] [<username>]" echo " or: esm-audit -h" echo '' echo ' - Make the shell a login shell' echo ' -l Same as -' echo ' -h Display this message' echo ' -v Specify verbose mode' echo '' } ###################################################################### # GETTING COMMAND LINE ARGUMENTS AND ASSOCIATED OPTIONS ###################################################################### REMOTEHOST="" while getopts :lr:hv OPTION; do case $OPTION in v) VERBOSE=$(( ${VERBOSE:-0} + 1 )) ;; l) LOGIN_SWITCH="-l" ;; h) HELP="I_NEED_SOMEBODY" ;; r) REMOTEHOST="$OPTARG" ;; :) echo "ERROR: -$OPTARG missing argument!" echo ""; FuncUsage exit 2 ;; \?) echo "ERROR: -$OPTARG is an invalid option!" echo ""; FuncUsage exit 2 ;; esac done shift $OPTIND-1 ### Set -x if the user executes the script with -vv [ "$VERBOSE" -gt 2 ] && set -x ### If the script was executed with - or -l, emulate su behavior by ### setting LOGIN_SWITCH to -l so that pbksh will be launched with the -l ### option (launching the session as a login session). Once LOGIN_SWITCH is ### set, set shift the command line options, and set FIRST_ARG to the ### new $1, which should be the username. FIRST_ARG="$1" if [ "$FIRST_ARG" = '-' ]; then LOGIN_SWITCH="-l" shift FIRST_ARG="$1" fi ### Set USERNAME based on the contents of FIRST_ARG. If FIRST_ARG is ### blank, then set USERNAME to root (emulating su behavior). if [ -z "$FIRST_ARG" ]; then USERNAME="root" else USERNAME="$FIRST_ARG" fi [ "$VERBOSE" -gt 1 ] && print " USERNAME: $USERNAME" [ "$VERBOSE" -gt 1 ] && print "REMOTE HOST: $REMOTEHOST" [ "$VERBOSE" -gt 1 ] && print "LOGIN VALUE: $LOGIN_SWITCH" ### If command was executed with -h, display help message, otherwise, ### execute pbksh to elevate the user to the desired privileges. if [ -n "$HELP" ]; then FuncUsage exit else [ -n "$REMOTEHOST" ] && /usr/local/bin/pbrun -h $REMOTEHOST -u $USERNAME /usr/local/bin/pbksh $LOGIN_SWITCH [ -n "$REMOTEHOST" ] || /usr/local/bin/pbrun -b -u $USERNAME /usr/local/bin/pbksh $LOGIN_SWITCH fi |
IyEvYmluL2tzaAojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgU2NyaXB0IE5hbWU6IHBic3UKIyBQdXJwb3NlOiBUbyBzaW1wbGlmeSB0aGUgUG93ZXJCcm9rZXIgc3UgLSBmdW5jdGlvbmFsaXR5LgojIE1haW50YWluZXI6IE1hcnRpbiBQZWxsZXRpZXIKIyBSZXZpZXdlcjogRVNNCiMgUmVwb3NpdG9yeTogZWx4aW4wMDE6L29wdC9lc3MvcGIvc2NyaXB0cwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgSGlzdG9yeQojIC0tLS0tLS0KIyAyMDA5LUZlYi0xMyAtIE1hcnRpbiBQZWxsZXRpZXIgLSBJbml0aWFsIGZpbGUgY3JlYXRpb24KIyAyMDA5LUZlYi0xOSAtIE1hcnRpbiBQZWxsZXRpZXIgLSBBZGRlZCAtcgojIDIwMDktTWFyLTA2IC0gQ29ycmVjdGVkIEZVc2FnZSB0byBzYXkgRnVuY1VzYWdlCiMgMjAwOS1NYXItMTMgLSBBZGRlZCB2ZXJib3NlIG1lc3NhZ2VzCiMgICAgICAgICAgICAgLSBDaGFuZ2VkIExPR0lOIHRvIExPR0lOX1NXSVRDSAojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgRlVOQ1RJT046IEZ1bmNVc2FnZQojIERFU0NSSVBUSU9OOiBEaXNwbGF5IGEgdXNhZ2UgbWVzc2FnZSB3aGVuIHRoZSBzY3JpcHQgaXMgY2FsbGVkIHdpdGgKIyB0aGUgLWggb3B0aW9uLCBvciB3aGVuIGEgdXNhZ2UgZXJyb3Igb2NjdXJzLgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCkZ1bmNVc2FnZSgpIHsKCiAgIGVjaG8gIlVzYWdlOiBwYnN1IFstdnZdIFstfC1sXSBbPHVzZXJuYW1lPl0iCiAgIGVjaG8gIiAgIG9yOiBlc20tYXVkaXQgLWgiCiAgIGVjaG8gJycKICAgZWNobyAnICAgICAgIC0gIE1ha2UgdGhlIHNoZWxsIGEgbG9naW4gc2hlbGwnCiAgIGVjaG8gJyAgICAgICAtbCBTYW1lIGFzIC0nCiAgIGVjaG8gJyAgICAgICAtaCBEaXNwbGF5IHRoaXMgbWVzc2FnZScKICAgZWNobyAnICAgICAgIC12IFNwZWNpZnkgdmVyYm9zZSBtb2RlJwogICBlY2hvICcnCgp9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgR0VUVElORyBDT01NQU5EIExJTkUgQVJHVU1FTlRTIEFORCBBU1NPQ0lBVEVEIE9QVElPTlMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpSRU1PVEVIT1NUPSIiCndoaWxlIGdldG9wdHMgOmxyOmh2IE9QVElPTjsgZG8KICAgY2FzZSAkT1BUSU9OIGluCiAgICAgIHYpIFZFUkJPU0U9JCgoICR7VkVSQk9TRTotMH0gKyAxICkpIDs7CiAgICAgIGwpIExPR0lOX1NXSVRDSD0iLWwiIDs7CiAgICAgIGgpIEhFTFA9IklfTkVFRF9TT01FQk9EWSIgIDs7CiAgICAgIHIpIFJFTU9URUhPU1Q9IiRPUFRBUkciICA7OwogICAgICA6KSBlY2hvICJFUlJPUjogLSRPUFRBUkcgbWlzc2luZyBhcmd1bWVudCEiCiAgICAgICAgIGVjaG8gIiI7IEZ1bmNVc2FnZQogICAgICAgICBleGl0IDIgOzsKICAgICAgXD8pIGVjaG8gIkVSUk9SOiAtJE9QVEFSRyBpcyBhbiBpbnZhbGlkIG9wdGlvbiEiCiAgICAgICAgICBlY2hvICIiOyBGdW5jVXNhZ2UKICAgICAgICAgIGV4aXQgMiA7OwogICBlc2FjCmRvbmUKc2hpZnQgJE9QVElORC0xCgojIyMgU2V0IC14IGlmIHRoZSB1c2VyIGV4ZWN1dGVzIHRoZSBzY3JpcHQgd2l0aCAtdnYKWyAiJFZFUkJPU0UiIC1ndCAyIF0gJiYgc2V0IC14CgojIyMgSWYgdGhlIHNjcmlwdCB3YXMgZXhlY3V0ZWQgd2l0aCAtIG9yIC1sLCBlbXVsYXRlIHN1IGJlaGF2aW9yIGJ5CiMjIyBzZXR0aW5nIExPR0lOX1NXSVRDSCB0byAtbCBzbyB0aGF0IHBia3NoIHdpbGwgYmUgbGF1bmNoZWQgd2l0aCB0aGUgLWwKIyMjIG9wdGlvbiAobGF1bmNoaW5nIHRoZSBzZXNzaW9uIGFzIGEgbG9naW4gc2Vzc2lvbikuICBPbmNlIExPR0lOX1NXSVRDSCBpcwojIyMgc2V0LCBzZXQgc2hpZnQgdGhlIGNvbW1hbmQgbGluZSBvcHRpb25zLCBhbmQgc2V0IEZJUlNUX0FSRyB0byB0aGUKIyMjIG5ldyAkMSwgd2hpY2ggc2hvdWxkIGJlIHRoZSB1c2VybmFtZS4KRklSU1RfQVJHPSIkMSIKaWYgWyAiJEZJUlNUX0FSRyIgPSAnLScgXTsgdGhlbgogICBMT0dJTl9TV0lUQ0g9Ii1sIgogICBzaGlmdAogICBGSVJTVF9BUkc9IiQxIgpmaQoKIyMjIFNldCBVU0VSTkFNRSBiYXNlZCBvbiB0aGUgY29udGVudHMgb2YgRklSU1RfQVJHLiAgSWYgRklSU1RfQVJHIGlzCiMjIyBibGFuaywgdGhlbiBzZXQgVVNFUk5BTUUgdG8gcm9vdCAoZW11bGF0aW5nIHN1IGJlaGF2aW9yKS4KaWYgWyAteiAiJEZJUlNUX0FSRyIgXTsgdGhlbgogICBVU0VSTkFNRT0icm9vdCIKZWxzZQogICBVU0VSTkFNRT0iJEZJUlNUX0FSRyIKZmkKClsgIiRWRVJCT1NFIiAtZ3QgMSBdICYmIHByaW50ICIgICBVU0VSTkFNRTogJFVTRVJOQU1FIgpbICIkVkVSQk9TRSIgLWd0IDEgXSAmJiBwcmludCAiUkVNT1RFIEhPU1Q6ICRSRU1PVEVIT1NUIgpbICIkVkVSQk9TRSIgLWd0IDEgXSAmJiBwcmludCAiTE9HSU4gVkFMVUU6ICRMT0dJTl9TV0lUQ0giCgojIyMgSWYgY29tbWFuZCB3YXMgZXhlY3V0ZWQgd2l0aCAtaCwgZGlzcGxheSBoZWxwIG1lc3NhZ2UsIG90aGVyd2lzZSwKIyMjIGV4ZWN1dGUgcGJrc2ggdG8gZWxldmF0ZSB0aGUgdXNlciB0byB0aGUgZGVzaXJlZCBwcml2aWxlZ2VzLgppZiBbIC1uICIkSEVMUCIgXTsgdGhlbgogICBGdW5jVXNhZ2UKICAgZXhpdAplbHNlCiAgIFsgLW4gIiRSRU1PVEVIT1NUIiBdICYmIC91c3IvbG9jYWwvYmluL3BicnVuIC1oICRSRU1PVEVIT1NUIC11ICRVU0VSTkFNRSAvdXNyL2xvY2FsL2Jpbi9wYmtzaCAkTE9HSU5fU1dJVENICiAgIFsgLW4gIiRSRU1PVEVIT1NUIiBdIHx8IC91c3IvbG9jYWwvYmluL3BicnVuIC1iIC11ICRVU0VSTkFNRSAvdXNyL2xvY2FsL2Jpbi9wYmtzaCAkTE9HSU5fU1dJVENICmZpCg==
-
upload with new input
-
result: Success time: 0s memory: 5312 kB returned value: 127
prog.sh: line 54: shift: 1-1: numeric argument required prog.sh: line 57: [: : integer expression expected prog.sh: line 79: [: : integer expression expected prog.sh: line 80: [: : integer expression expected prog.sh: line 81: [: : integer expression expected prog.sh: line 90: /usr/local/bin/pbrun: No such file or directory


