(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:tid) op: Equal rhs: {(DQ ('disallow agent attach from other uid'))} spids: [7] ) ] spids: [7] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:UNPRIV) op:Equal rhs:{(nobody)} spids:[13])] spids: [13] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ASOCK) op: Equal rhs: {(${ VSub_Name OBJ) (/agent)} spids: [16] ) ] spids: [16] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SSH_AUTH_SOCK) op:Equal rhs:{(/nonexistent)} spids:[22])] spids: [22] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(config_defined)} {(HAVE_GETPEEREID)} {(HAVE_GETPEERUCRED)} {(HAVE_SO_PEERCRED)}) terminator: <Op_Semi ';'> ) ] action: [(C {(Lit_Other ':')})] spids: [-1 38] ) ] else_action: [(C {(echo)} {(DQ ('skipped (not supported on this platform)'))}) (C {(exit)} {(0)})] spids: [43 57] ) (Case to_match: {(DQ (x) ($ VSub_Name '$SUDO'))} arms: [ (case_arm pat_list: [{(xsudo)}] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:sudo) op:Equal rhs:{(1)} spids:[72])] spids: [72] ) ] spids: [69 70 74 -1] ) (case_arm pat_list:[{(xdoas)}] spids:[777880-1]) (case_arm pat_list: [{(x)}] action: [ (C {(echo)} {(DQ ('need SUDO to switch to uid ') ($ VSub_Name '$UNPRIV'))}) (C {(exit)} {(0)}) ] spids: [83 84 99 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(DQ ('unsupported ') ($ VSub_Name '$SUDO') (' - ')) (doas) (DQ (' and ')) (sudo) (DQ (' are allowed')) } ) (C {(exit)} {(0)}) ] spids: [102 103 127 -1] ) ] spids: [59 66 129] ) (C {(trace)} {(DQ ('start agent'))}) (SimpleCommand words: [ {(eval)} { (CommandSubPart command_list: (CommandList children: [(C {(${ VSub_Name SSHAGENT)} {(-s)} {(-a)} {(${ VSub_Name ASOCK)})] ) left_token: <Left_Backtick '`'> spids: [140 152] ) } ] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[154])] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:r) op:Equal rhs:{($ VSub_QMark '$?')} spids:[158])] spids: [158] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$r')} {(-ne)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(fail)} {(DQ ('could not start ssh-agent: exit code ') ($ VSub_Name '$r'))})] spids: [-1 174] ) ] else_action: [ (C {(chmod)} {(644)} {(${ VSub_Name SSH_AUTH_SOCK)}) (SimpleCommand words: [{(${ VSub_Name SSHADD)} {(-l)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[203]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[207]) ] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:r) op:Equal rhs:{($ VSub_QMark '$?')} spids:[211])] spids: [211] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$r')} {(-ne)} {(1)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(fail)} {(DQ ('ssh-add failed with ') ($ VSub_Name '$r') (' != 1'))})] spids: [-1 228] ) ] spids: [-1 240] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$sudo'))}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(${ VSub_Name SUDO)} {(-n)} {(-u)} {(${ VSub_Name UNPRIV)} {(${ VSub_Name SSHADD)} {(-l)} ] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[280])] ) ] spids: [-1 255] ) ] else_action: [ (SimpleCommand words: [ {(${ VSub_Name SUDO)} {(-S)} {(-u)} {(${ VSub_Name UNPRIV)} {(${ VSub_Name SSHADD)} {(-l)} ] redirects: [ (Redir op_id:Redir_Less fd:-1 arg_word:{(/dev/null)} spids:[291]) (Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[313]) ] ) ] spids: [284 317] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:r) op:Equal rhs:{($ VSub_QMark '$?')} spids:[320])] spids: [320] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$r')} {(-lt)} {(2)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(fail)} { (DQ ('ssh-add did not fail for ') (${ VSub_Name UNPRIV) (': ') ($ VSub_Name '$r') (' < 2') ) } ) ] spids: [-1 337] ) ] spids: [-1 353] ) (C {(trace)} {(DQ ('kill agent'))}) (SimpleCommand words: [{(${ VSub_Name SSHAGENT)} {(-k)}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[370])] ) ] spids: [184 374] ) (C {(rm)} {(-f)} {(${ VSub_Name OBJ) (/agent)}) ] )