(command.CommandList children: [ (command.ShFunction name: cleanup body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<kdestroy>} {<-q>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP_FILE)} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-r>} {($ Id.VSub_DollarName TMPDIR)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_Number 1)} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: exiting body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Exiting setup, nothing changed'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<cleanup>} {($ Id.VSub_Number 1)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: error_message body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [ {<printf>} {<-->} { (DQ <---------------------------------------------------> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Setup FAILED'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<cleanup>} {<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: check_bin body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'bin='> ($ Id.VSub_Number 1)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_x child: {($ Id.VSub_DollarName bin)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Could not access/execute %s'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName bin)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [244 257] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: cannot_create body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'filename='> (DQ ($ Id.VSub_Number 1))}) (C {<typeset>} {<Id.Lit_VarLike 'stat='> (DQ ($ Id.VSub_Number 2))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_DollarName stat)} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Can not create/edit %s, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName filename)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [313 326] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: update_pam_conf body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<PAM>} {<TPAM>} {<service>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PAM='> name:PAM) op: assign_op.Equal rhs: {<'/etc/pam.conf'>} spids: [377] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TPAM='> name:TPAM) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mktemp>} {<-q>} {<-t>} {<kclient-pamconf.XXXXXX>}) right: <Id.Eof_RParen _> ) } spids: [382] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName TPAM)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Can not create temporary file, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [394 405] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<cp>} {($ Id.VSub_DollarName PAM)} {($ Id.VSub_DollarName TPAM)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Configuring %s'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName PAM)} ) (command.ForEach iter_names: [service] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName SVCs)}]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'svc='> name:svc) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name service> var_name: service suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<':'> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [483] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'auth_type='> name:auth_type) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name service> var_name: service suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Other '*'> <':'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [492] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<egrep>} {<-s>} { (DQ <'^'> ($ Id.VSub_DollarName svc) <'[ \t][ \t]*auth.*pam_krb5*'> ) } {($ Id.VSub_DollarName TPAM)} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'The %s service is already configured for pam_krb5, please merge this service in %s' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName svc)} {($ Id.VSub_DollarName PAM)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] spids: [501 516] ) ] else_action: [ (command.Simple words: [{<exec>}] redirects: [ (redir op: <Id.Redir_DGreat '3>>'> loc: (redir_loc.Fd fd:3) arg: {($ Id.VSub_DollarName TPAM)} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> ($ Id.VSub_DollarName svc) <Id.Lit_BadBackslash '\\'> <'tauth include'> <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <tpam_krb5_> ($ Id.VSub_DollarName auth_type) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] redirects: [] ) ] ) redirects: [] ) (command.Simple words: [{<cp>} {($ Id.VSub_DollarName TPAM)} {($ Id.VSub_DollarName PAM)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {($ Id.VSub_DollarName TPAM)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: modify_nfssec_conf body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'NFSSEC_FILE='> (DQ <'/etc/nfssec.conf'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName NFSSEC_FILE)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<cat>} {($ Id.VSub_DollarName NFSSEC_FILE)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName NFSSEC_FILE) <.sav>} ) ] more_env: [] do_fork: T ) (C {<cannot_create>} {($ Id.VSub_DollarName NFSSEC_FILE) <.sav>} {($ Id.VSub_QMark '?')} ) ] spids: [629 640] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<cat>} {($ Id.VSub_DollarName NFSSEC_FILE)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP_FILE)} ) ] more_env: [] do_fork: T ) (C {<cannot_create>} {($ Id.VSub_DollarName TMP_FILE)} {($ Id.VSub_QMark '?')}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [ {<grep>} {<-s>} {(DQ <'#krb5'>)} {($ Id.VSub_DollarName NFSSEC_FILE)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<sed>} {(DQ <'s%^#krb5%krb5%'>)} {($ Id.VSub_DollarName TMP_FILE)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName NFSSEC_FILE)} ) ] more_env: [] do_fork: T ) (C {<cannot_create>} {($ Id.VSub_DollarName NFSSEC_FILE)} {($ Id.VSub_QMark '?')}) ] spids: [682 702] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: call_kadmin body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'svc='> (DQ ($ Id.VSub_Number 1))}) (C {<typeset>} {<bool1>} {<bool2>} {<bool3>} {<bool4>}) (C {<typeset>} {<service_princ>} {<getprincsubcommand>} {<anksubcommand>} {<ktaddsubcommand>}) (C {<typeset>} {<ktremsubcommand>}) (command.ForEach iter_names: [listentry] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName fqdnlist)}]) body: (command.DoGroup children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bool1='> name:bool1) op: assign_op.Equal rhs: {<1>} spids: [789] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bool2='> name:bool2) op: assign_op.Equal rhs: {<1>} spids: [793] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bool3='> name:bool3) op: assign_op.Equal rhs: {<1>} spids: [797] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bool4='> name:bool4) op: assign_op.Equal rhs: {<1>} spids: [801] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'service_princ='> name: service_princ ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<echo>} {(DQ (${ Id.VSub_Name svc) <'/'> (${ Id.VSub_Name listentry))} ) right: <Id.Eof_RParen _> ) } spids: [806] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'getprincsubcommand='> name: getprincsubcommand ) op: assign_op.Equal rhs: {(DQ <'getprinc '> ($ Id.VSub_DollarName service_princ))} spids: [822] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'anksubcommand='> name: anksubcommand ) op: assign_op.Equal rhs: {(DQ <'addprinc -randkey '> ($ Id.VSub_DollarName service_princ))} spids: [829] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ktaddsubcommand='> name: ktaddsubcommand ) op: assign_op.Equal rhs: {(DQ <'ktadd '> ($ Id.VSub_DollarName service_princ))} spids: [836] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ktremsubcommand='> name: ktremsubcommand ) op: assign_op.Equal rhs: {(DQ <'ktrem '> ($ Id.VSub_DollarName service_princ) <' all'>)} spids: [843] ) ] redirects: [] ) (command.Simple words: [ {<kadmin>} {<-c>} {($ Id.VSub_DollarName KRB5CCNAME)} {<-q>} {(DQ ($ Id.VSub_DollarName getprincsubcommand))} ] redirects: [ (redir op: <Id.Redir_Great '1>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP_FILE)} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) (C {<egrep>} {<-s>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'get_principal: Principal does not exist'>)}) right: <Id.Eof_RParen _> ) ) } {($ Id.VSub_DollarName TMP_FILE)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bool1='> name:bool1) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [889] ) ] redirects: [] ) (C {<egrep>} {<-s>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ <'get_principal: Operation requires '> (command_sub left_token: <Id.Left_Backtick '`'> child: (command.NoOp) right: <Id.Backtick_Right '`'> ) <get> ) } ) right: <Id.Eof_RParen _> ) ) } {($ Id.VSub_DollarName TMP_FILE)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bool2='> name:bool2) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [914] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_DollarName bool1)} right: {<0>} ) right: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_DollarName bool2)} right: {<0>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<kadmin>} {<-c>} {($ Id.VSub_DollarName KRB5CCNAME)} {<-q>} {(DQ ($ Id.VSub_DollarName anksubcommand))} ] redirects: [ (redir op: <Id.Redir_Great '1>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP_FILE)} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) (C {<egrep>} {<-s>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'add_principal: Principal or policy already exists while creating ' > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName service_princ) <'@'> ($ Id.VSub_DollarName realm) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <.> ) } ) right: <Id.Eof_RParen _> ) ) } {($ Id.VSub_DollarName TMP_FILE)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bool3='> name:bool3) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [986] ) ] redirects: [] ) (C {<egrep>} {<-s>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ <'Principal '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName service_princ) <'@'> ($ Id.VSub_DollarName realm) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <' created.'> ) } ) right: <Id.Eof_RParen _> ) ) } {($ Id.VSub_DollarName TMP_FILE)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bool4='> name:bool4) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [1014] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_DollarName bool3)} right: {<0>} ) right: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_DollarName bool4)} right: {<0>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'%s entry ADDED to KDC database'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName service_princ)} ) ] spids: [1019 1040] ) ] else_action: [ (command.Sentence child: (C {<cat>} {($ Id.VSub_DollarName TMP_FILE)}) terminator: <Id.Op_Semi _> ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'kadmin: add_principal of %s failed, exiting'>)} ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName service_princ)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<error_message>}) ] redirects: [] ) ] spids: [919 940] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'%s entry already exists in KDC database'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName service_princ)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) ] redirects: [] ) (command.Simple words: [{<klist>} {<-k>}] redirects: [ (redir op: <Id.Redir_Great '1>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP_FILE)} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) (C {<egrep>} {<-s>} {(DQ ($ Id.VSub_DollarName service_princ) <'@'> ($ Id.VSub_DollarName realm))} {($ Id.VSub_DollarName TMP_FILE)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'%s entry already present in keytab'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName service_princ)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<kadmin>} {<-c>} {($ Id.VSub_DollarName KRB5CCNAME)} {<-q>} {(DQ ($ Id.VSub_DollarName ktremsubcommand))} ] redirects: [ (redir op: <Id.Redir_Great '1>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP_FILE)} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) ] spids: [1151 1164] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<kadmin>} {<-c>} {($ Id.VSub_DollarName KRB5CCNAME)} {<-q>} {(DQ ($ Id.VSub_DollarName ktaddsubcommand))} ] redirects: [ (redir op: <Id.Redir_Great '1>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP_FILE)} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) (C {<egrep>} {<-s>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ <'added to keytab WRFILE:'> ($ Id.VSub_DollarName KRB5_KEYTAB_FILE) <.> ) } ) right: <Id.Eof_RParen _> ) ) } {($ Id.VSub_DollarName TMP_FILE)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<cat>} {($ Id.VSub_DollarName TMP_FILE)}) terminator: <Id.Op_Semi _> ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'kadmin: ktadd of %s failed, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName service_princ)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [1257 1270] ) ] else_action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'%s entry ADDED to keytab'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName service_princ)} ) ] redirects: [] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: writeup_krb5_conf body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<dh>}) (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Setting up %s'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName KRB5_CONFIG_FILE)} ) (command.Simple words: [{<exec>}] redirects: [ (redir op: <Id.Redir_Great '3>'> loc: (redir_loc.Fd fd:3) arg: {($ Id.VSub_DollarName KRB5_CONFIG)} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Can not write to %s, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName KRB5_CONFIG)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [1377 1390] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<printf>} {(DQ <'[libdefaults]'> <Id.Lit_BadBackslash '\\'> <n>)}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName no_keytab)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'tverify_ap_req_nofail = false'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] spids: [1435 1448] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName dns_lookup)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName dnsarg) <' = on'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName dnsarg)} right: {<dns_lookup_kdc>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'tdefault_realm = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'n[domain_realm]'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName fkdc_list)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_names: [kdc] iterable: (for_iter.Words words: [{($ Id.VSub_DollarName fkdc_list)}] ) body: (command.DoGroup children: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName kdc) <' = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] spids: [1541 1552] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName FKDC) <' = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName client_machine) <' = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName short_fqdn)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t.> ($ Id.VSub_DollarName domain) <' = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] spids: [1621 1632] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t.> ($ Id.VSub_DollarName short_fqdn) <' = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName domain_list)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_names: [dh] iterable: (for_iter.Words words: [{($ Id.VSub_DollarName domain_list)}] ) body: (command.DoGroup children: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName dh) <' = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] spids: [1677 1688] ) ] else_action: [] redirects: [] ) ] spids: [1498 1511] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {($ Id.VSub_DollarName dnsarg)} right: {<dns_lookup_realm>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'tdefault_realm = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'n[realms]'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName realm) <' = {'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName kdc_list)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_names: [kdc] iterable: (for_iter.Words words: [{($ Id.VSub_DollarName kdc_list)}] ) body: (command.DoGroup children: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <'tkdc = '> ($ Id.VSub_DollarName kdc) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] spids: [1786 1797] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <'tkdc = '> ($ Id.VSub_DollarName KDC) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] redirects: [] ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <'tadmin_server = '> ($ Id.VSub_DollarName KDC) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName non_solaris)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <'tkpasswd_protocol = SET_CHANGE'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] spids: [1869 1882] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'t}'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] spids: [1728 1741] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'tdefault_realm = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] redirects: [] ) ] redirects: [] ) ] spids: [1467 1480] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'tdefault_realm = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.Simple words: [{<printf>} {(DQ <'[realms]'> <Id.Lit_BadBackslash '\\'> <n>)}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName realm) <' = {'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName kdc_list)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_names: [kdc] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName kdc_list)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <'tkdc = '> ($ Id.VSub_DollarName kdc) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] spids: [1992 2003] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <'tkdc = '> ($ Id.VSub_DollarName KDC) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] redirects: [] ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <'tadmin_server = '> ($ Id.VSub_DollarName KDC) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName non_solaris)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <'tkpasswd_protocol = SET_CHANGE'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] spids: [2075 2088] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'t}'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.Simple words: [{<printf>} {(DQ <'[domain_realm]'> <Id.Lit_BadBackslash '\\'> <n>)}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName fkdc_list)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_names: [kdc] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName fkdc_list)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName kdc) <' = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] spids: [2139 2150] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName FKDC) <' = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName client_machine) <' = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName short_fqdn)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t.> ($ Id.VSub_DollarName domain) <' = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] spids: [2219 2230] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t.> ($ Id.VSub_DollarName short_fqdn) <' = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName domain_list)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_names: [dh] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName domain_list)}]) body: (command.DoGroup children: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName dh) <' = '> ($ Id.VSub_DollarName realm) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) ] spids: [2275 2286] ) ] else_action: [] redirects: [] ) ] redirects: [] ) (command.Simple words: [{<printf>} {(DQ <'[logging]'> <Id.Lit_BadBackslash '\\'> <n>)}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'tdefault = FILE:/var/krb5/kdc.log'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'tkdc = FILE:/var/krb5/kdc.log'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'tkdc_rotate = {'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <'tperiod = 1d'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <'tversions = 10'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'t}'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.Simple words: [{<printf>} {(DQ <'[appdefaults]'> <Id.Lit_BadBackslash '\\'> <n>)}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'tkinit = {'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <'trenewable = true'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <'tforwardable = true'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName no_keytab)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> <Id.Lit_BadBackslash '\\'> <'tno_addresses = true'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] more_env: [] do_fork: T ) ] spids: [2434 2447] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<printf>} {(DQ <Id.Lit_BadBackslash '\\'> <'t}'> <Id.Lit_BadBackslash '\\'> <n>)}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<3>})] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: ask body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'question='> ($ Id.VSub_Number 1)}) (C {<typeset>} {<Id.Lit_VarLike 'default_answer='> ($ Id.VSub_Number 2)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName default_answer)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<printf>} {(DQ ($ Id.VSub_DollarName question) <' :'>)})] spids: [2503 2514] ) ] else_action: [ (C {<printf>} { (DQ ($ Id.VSub_DollarName question) <' ['> ($ Id.VSub_DollarName default_answer) <']: '> ) } ) ] redirects: [] ) (C {<read>} {<answer>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName answer))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'answer='> name:answer) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName default_answer))} spids: [2556] ) ] redirects: [] ) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: yesno body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'question='> (DQ ($ Id.VSub_Number 1))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'answer='> name:answer) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [2580] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'yn='> name:yn) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'y/n'>)}) right: <Id.Eof_RParen _> ) ) } ) right: <Id.Backtick_Right '`'> ) } spids: [2583] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'y='> name:y) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <y>)}) right: <Id.Eof_RParen _> ) ) } ) right: <Id.Backtick_Right '`'> ) } spids: [2601] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'n='> name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <n>)}) right: <Id.Eof_RParen _> ) ) } ) right: <Id.Backtick_Right '`'> ) } spids: [2619] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'yes='> name:yes) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <yes>)}) right: <Id.Eof_RParen _> ) ) } ) right: <Id.Backtick_Right '`'> ) } spids: [2637] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'no='> name:no) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <no>)}) right: <Id.Eof_RParen _> ) ) } ) right: <Id.Backtick_Right '`'> ) } spids: [2655] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName answer)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (C {<ask>} {(DQ ($ Id.VSub_DollarName question))} {($ Id.VSub_DollarName yn)}) (command.Case to_match: {($ Id.VSub_DollarName answer)} arms: [ (case_arm pat_list: [{($ Id.VSub_DollarName y)} {($ Id.VSub_DollarName yes)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'answer='> name:answer) op: assign_op.Equal rhs: {<yes>} spids: [2709] ) ] redirects: [] ) ] spids: [2704 2707 2711 -1] ) (case_arm pat_list: [{($ Id.VSub_DollarName n)} {($ Id.VSub_DollarName no)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'answer='> name:answer) op: assign_op.Equal rhs: {<no>} spids: [2719] ) ] redirects: [] ) ] spids: [2714 2717 2721 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'answer='> name:answer) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [2727] ) ] redirects: [] ) ] spids: [2724 2725 2728 -1] ) ] redirects: [] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: query body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<yesno>} {(DQ ($ Id.VSub_Star '*'))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName answer)} right: {<no>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'No action performed'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ) ] spids: [2754 2767] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: read_profile body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<param>} {<value>}) (C {<typeset>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number 1))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_d child: {($ Id.VSub_DollarName file)} ) ) right: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName file)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<read>} {<param>} {<value>})]) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName param)} arms: [ (case_arm pat_list: [{<REALM>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName realm)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'realm='> name: realm ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName value))} spids: [2875] ) ] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'checkval='> name: checkval ) op: assign_op.Equal rhs: {(DQ <REALM>)} spids: [2881] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_value>} {($ Id.VSub_DollarName realm)}) ] spids: [2861 2872] ) ] else_action: [] redirects: [] ) ] spids: [2858 2859 2895 -1] ) (case_arm pat_list: [{<KDC>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName KDC)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KDC='> name: KDC ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName value))} spids: [2915] ) ] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'checkval='> name: checkval ) op: assign_op.Equal rhs: {(DQ <KDC>)} spids: [2921] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_value>} {($ Id.VSub_DollarName KDC)}) ] spids: [2901 2912] ) ] else_action: [] redirects: [] ) ] spids: [2898 2899 2935 -1] ) (case_arm pat_list: [{<ADMIN>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName ADMIN_PRINC)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ADMIN_PRINC='> name: ADMIN_PRINC ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName value))} spids: [2955] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'checkval='> name: checkval ) op: assign_op.Equal rhs: {(DQ <ADMIN_PRINC>)} spids: [2961] ) ] redirects: [] ) (C {<check_value>} {($ Id.VSub_DollarName ADMIN_PRINC)}) ] spids: [2941 2952] ) ] else_action: [] redirects: [] ) ] spids: [2938 2939 2975 -1] ) (case_arm pat_list: [{<FILEPATH>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName filepath)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'filepath='> name: filepath ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName value))} spids: [2995] ) ] redirects: [] ) ] spids: [2981 2992] ) ] else_action: [] redirects: [] ) ] spids: [2978 2979 3004 -1] ) (case_arm pat_list: [{<NFS>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName add_nfs)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName value)} right: {<1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'add_nfs='> name: add_nfs ) op: assign_op.Equal rhs: {<yes>} spids: [3040] ) ] redirects: [] ) ] spids: [3024 3037] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'add_nfs='> name: add_nfs ) op: assign_op.Equal rhs: {<no>} spids: [3047] ) ] redirects: [] ) ] redirects: [] ) ] spids: [3010 3021] ) ] else_action: [] redirects: [] ) ] spids: [3007 3008 3057 -1] ) (case_arm pat_list: [{<NOKEY>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName no_keytab)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName value)} right: {<1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'no_keytab='> name: no_keytab ) op: assign_op.Equal rhs: {<yes>} spids: [3093] ) ] redirects: [] ) ] spids: [3077 3090] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'no_keytab='> name: no_keytab ) op: assign_op.Equal rhs: {<no>} spids: [3100] ) ] redirects: [] ) ] redirects: [] ) ] spids: [3063 3074] ) ] else_action: [] redirects: [] ) ] spids: [3060 3061 3110 -1] ) (case_arm pat_list: [{<NOSOL>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName non_solaris)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName value)} right: {<1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'non_solaris='> name: non_solaris ) op: assign_op.Equal rhs: {<yes>} spids: [3146] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'no_keytab='> name: no_keytab ) op: assign_op.Equal rhs: {<yes>} spids: [3150] ) ] redirects: [] ) ] spids: [3130 3143] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'non_solaris='> name: non_solaris ) op: assign_op.Equal rhs: {<no>} spids: [3157] ) ] redirects: [] ) ] redirects: [] ) ] spids: [3116 3127] ) ] else_action: [] redirects: [] ) ] spids: [3113 3114 3167 -1] ) (case_arm pat_list: [{<LHN>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName logical_hn)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'logical_hn='> name: logical_hn ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName value))} spids: [3187] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'checkval='> name: checkval ) op: assign_op.Equal rhs: {(DQ <LOGICAL_HOSTNAME>)} spids: [3193] ) ] redirects: [] ) (C {<check_value>} {($ Id.VSub_DollarName logical_hn)}) ] spids: [3173 3184] ) ] else_action: [] redirects: [] ) ] spids: [3170 3171 3207 -1] ) (case_arm pat_list: [{<DNSLOOKUP>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName dnsarg)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'dnsarg='> name: dnsarg ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName value))} spids: [3227] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'checkval='> name: checkval ) op: assign_op.Equal rhs: {(DQ <DNS_OPTIONS>)} spids: [3233] ) ] redirects: [] ) (C {<check_value>} {($ Id.VSub_DollarName dnsarg)}) ] spids: [3213 3224] ) ] else_action: [] redirects: [] ) ] spids: [3210 3211 3247 -1] ) (case_arm pat_list: [{<FQDN>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName fqdnlist)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'fqdnlist='> name: fqdnlist ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName value))} spids: [3267] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'checkval='> name: checkval ) op: assign_op.Equal rhs: {(DQ <FQDN>)} spids: [3273] ) ] redirects: [] ) (C {<check_value>} {($ Id.VSub_DollarName fqdnlist)}) (C {<verify_fqdnlist>} {(DQ ($ Id.VSub_DollarName fqdnlist))} ) ] spids: [3253 3264] ) ] else_action: [] redirects: [] ) ] spids: [3250 3251 3294 -1] ) (case_arm pat_list: [{<MSAD>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName msad)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName value)} right: {<1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'msad='> name: msad ) op: assign_op.Equal rhs: {<yes>} spids: [3330] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'non_solaris='> name: non_solaris ) op: assign_op.Equal rhs: {<yes>} spids: [3334] ) ] redirects: [] ) ] spids: [3314 3327] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'msad='> name: msad ) op: assign_op.Equal rhs: {<no>} spids: [3341] ) ] redirects: [] ) ] redirects: [] ) ] spids: [3300 3311] ) ] else_action: [] redirects: [] ) ] spids: [3297 3298 3351 -1] ) ] redirects: [] ) ] ) redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName file)} ) ] ) ] spids: [2817 2836] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ <'The kclient profile '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ch: '`' ) <'%s\' is not valid, exiting'> ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName file)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: ping_check body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'machine='> (DQ ($ Id.VSub_Number 1))}) (C {<typeset>} {<Id.Lit_VarLike 'string='> (DQ ($ Id.VSub_Number 2))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [{<ping>} {($ Id.VSub_DollarName machine)} {<2>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Id.Lit_Colon ':'>})] spids: [3423 3439] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'%s %s is unreachable, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName string)} {($ Id.VSub_DollarName machine)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName profile)} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName string)} right: {<KDC>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Note, this system and the KDC\'s time must be within 5 minutes of each other for Kerberos to function' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Both systems should run some form of time synchronization system like Network Time Protocol (NTP)' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Break break>) ] spids: [3488 3507] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: check_value body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'arg='> (DQ ($ Id.VSub_Number 1))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName arg)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'No input obtained for %s, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName checkval)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [3581 3592] ) ] else_action: [ (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName arg))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP_FILE)} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<egrep>} {<-s>} {(SQ <'[*$^#!]+'>)} {($ Id.VSub_DollarName TMP_FILE)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Invalid input obtained for %s, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName checkval)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [3635 3648] ) ] else_action: [] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: set_dns_value body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<-l>} {<Id.Lit_VarLike 'arg='> (DQ ($ Id.VSub_Number 1))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName arg)} right: {<dns_lookup_kdc>} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName arg)} right: {<dns_lookup_realm>} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName arg)} right: {<dns_fallback>} ) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dns_lookup='> name:dns_lookup) op: assign_op.Equal rhs: {<yes>} spids: [3735] ) ] redirects: [] ) ] spids: [3703 3732] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName arg)} right: {<none>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'dns_lookup='> name: dns_lookup ) op: assign_op.Equal rhs: {<no>} spids: [3758] ) ] redirects: [] ) ] spids: [3742 3755] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Invalid DNS lookup option, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: verify_kdcs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'k_list='> (DQ ($ Id.VSub_Number 1))}) (C {<typeset>} {<-l>} {<kdc>}) (C {<typeset>} {<list>} {<fqhn>} {<f_list>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kdc_list='> name:kdc_list) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName k_list))}) (C {<sed>} {(SQ <'s/,/ /g'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [3829] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName k_list)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'At least one KDC should be listed'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<usage>}) ] spids: [3848 3859] ) ] else_action: [] redirects: [] ) (command.ForEach iter_names: [kdc] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName k_list)}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName kdc)} right: {($ Id.VSub_DollarName KDC)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'list='> name:list) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName list) <' '> ($ Id.VSub_DollarName kdc)) } spids: [3920] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fkdc='> name:fkdc) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName KLOOKUP)} {($ Id.VSub_DollarName kdc)} ) right: <Id.Backtick_Right '`'> ) } spids: [3928] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [{<ping>} {($ Id.VSub_DollarName fkdc)} {<2>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Id.Lit_Colon ':'>})] spids: [3938 3951] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'%s %s is unreachable, no action performed'>)} ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {(DQ <KDC>)} {($ Id.VSub_DollarName fkdc)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f_list='> name:f_list) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName f_list) <' '> ($ Id.VSub_DollarName fkdc) ) } spids: [3990] ) ] redirects: [] ) ] spids: [3904 3917] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fkdc_list='> name:fkdc_list) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName f_list))} spids: [4005] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kdc_list='> name:kdc_list) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName list))} spids: [4011] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: parse_service body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'service_list='> ($ Id.VSub_Number 1)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'service_list='> name:service_list) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name service_list> var_name: service_list suffix_op: (suffix_op.PatSub pat: {<','>} replace: {<' '>} replace_mode: Id.Lit_Slash slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) } spids: [4033] ) ] redirects: [] ) (command.ForEach iter_names: [service] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName service_list)}]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'svc='> name:svc) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name service> var_name: service suffix_op: (suffix_op.Unary op:<Id.VOp1_Percent '%'> arg_word:{<':'>}) right: <Id.Right_DollarBrace '}'> ) } spids: [4056] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'auth_type='> name:auth_type) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name service> var_name: service suffix_op: (suffix_op.Unary op:<Id.VOp1_Pound '#'> arg_word:{<':'>}) right: <Id.Right_DollarBrace '}'> ) } spids: [4064] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName svc)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName auth_type)} ) ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> ) ] ) (C {<print>} {<-->} {($ Id.VSub_DollarName svc)} {($ Id.VSub_DollarName auth_type)}) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: verify_fqdnlist body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'list='> (DQ ($ Id.VSub_Number 1))}) (C {<typeset>} {<-l>} {<hostname>}) (C {<typeset>} {<-i>} {<Id.Lit_VarLike 'count='> <1>}) (C {<typeset>} {<fqdnlist>} {<eachfqdn>} {<tmpvar>} {<fullhost>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'list='> name:list) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName list))}) (C {<tr>} {<-d>} {(DQ <' '>)}) (C {<tr>} {<-d>} {(DQ <Id.Lit_BadBackslash '\\'> <t>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [4147] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hostname='> name:hostname) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [(C {<uname>} {<-n>}) (C {<cut>} {<-d> (DQ <.>)} {<-f1>})] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [4178] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fqdnlist='> name:fqdnlist) op: assign_op.Equal rhs: {($ Id.VSub_DollarName client_machine)} spids: [4197] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eachfqdn='> name:eachfqdn) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName list))}) (C {<cut>} {<-d> (DQ <','>)} {<-f> ($ Id.VSub_DollarName count)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [4202] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName eachfqdn)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'If the -f option is used, at least one FQDN should be listed' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<usage>}) ] spids: [4224 4235] ) ] else_action: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName eachfqdn)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmpvar='> name:tmpvar) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName eachfqdn))}) (C {<cut>} {<-d> (DQ <.>)} {<-f1>}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [4283] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName tmpvar)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'fullhost='> name: fullhost ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName hostname) ($ Id.VSub_DollarName eachfqdn) ) } spids: [4318] ) ] redirects: [] ) ] spids: [4304 4315] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'fullhost='> name: fullhost ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName hostname) <.> ($ Id.VSub_DollarName eachfqdn) ) } spids: [4328] ) ] redirects: [] ) ] redirects: [] ) (C {<ping_check>} {($ Id.VSub_DollarName fullhost)} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <System>)}) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName fullhost)} right: {($ Id.VSub_DollarName client_machine)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Id.Lit_Colon ':'>})] spids: [4353 4366] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'fqdnlist='> name: fqdnlist ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName fqdnlist) <' '> ($ Id.VSub_DollarName fullhost) ) } spids: [4375] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName list)} right: {<Id.Lit_Other '*'> <Id.Lit_Other ','> <Id.Lit_Other '*'> } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike count) right: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike count) right: {<Id.Lit_Digits 1>} ) ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'eachfqdn='> name: eachfqdn ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName list))}) (C {<cut>} {<-d> (DQ <','>)} {<-f> ($ Id.VSub_DollarName count)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [4419] ) ] redirects: [] ) ] spids: [4387 4402] ) ] else_action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] redirects: [] ) ] ) redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: setup_keytab body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<cname>} {<ask_fqdns>} {<current_release>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName ADMIN_PRINC)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Enter the krb5 administrative principal to be used'>)} ) right: <Id.Eof_RParen _> ) <': '> ) } ) (C {<read>} {<ADMIN_PRINC>}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checkval='> name:checkval) op: assign_op.Equal rhs: {(DQ <ADMIN_PRINC>)} spids: [4523] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_value>} {($ Id.VSub_DollarName ADMIN_PRINC)}) ] spids: [4488 4499] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName ADMIN_PRINC))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP_FILE)} ) ] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName msad)}) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<egrep>} {<-s>} {(SQ <'\\/admin'>)} {($ Id.VSub_DollarName TMP_FILE)}) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Id.Lit_Colon ':'>})] spids: [4561 4574] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<egrep>} {<-s>} {(SQ <'\\/'>)} {($ Id.VSub_DollarName TMP_FILE)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Improper entry for krb5 admin principal, exiting'>)} ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [4587 4600] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ADMIN_PRINC='> name: ADMIN_PRINC ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<echo>} {(DQ ($ Id.VSub_DollarName ADMIN_PRINC) <'/admin'>)}) right: <Id.Eof_RParen _> ) } spids: [4630] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] ) (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Obtaining TGT for %s'>)}) right: <Id.Eof_RParen _> ) <' ...'> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName ADMIN_PRINC)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cname='> name:cname) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<canon_resolve>} {($ Id.VSub_DollarName KDC)}) right: <Id.Eof_RParen _> ) } spids: [4667] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName cname)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<kinit>} {<-S>} {<'kadmin/'> ($ Id.VSub_DollarName cname)} {($ Id.VSub_DollarName ADMIN_PRINC)} ) ] spids: [4675 4686] ) ] else_action: [ (C {<kinit>} {<-S>} {<'kadmin/'> ($ Id.VSub_DollarName FKDC)} {($ Id.VSub_DollarName ADMIN_PRINC)} ) ] redirects: [] ) (command.Simple words: [{<klist>}] redirects: [ (redir op: <Id.Redir_Great '1>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP_FILE)} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<egrep>} {<-s>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Valid starting'>)}) right: <Id.Eof_RParen _> ) ) } {($ Id.VSub_DollarName TMP_FILE)} ) (C {<egrep>} {<-s>} { (DQ <'kadmin/'> ($ Id.VSub_DollarName FKDC) <'@'> ($ Id.VSub_DollarName realm) ) } {($ Id.VSub_DollarName TMP_FILE)} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Id.Lit_Colon ':'>})] spids: [4724 4758] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'kinit of %s failed, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName ADMIN_PRINC)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName options)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<query>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ <'Do you have multiple DNS domains spanning the Kerberos realm'> ) } ) right: <Id.Eof_RParen _> ) <' '> ($ Id.VSub_DollarName realm) <' ?'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ask_fqdns='> name:ask_fqdns) op: assign_op.Equal rhs: {($ Id.VSub_DollarName answer)} spids: [4843] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName ask_fqdns)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Enter a comma-separated list of DNS domain names'>)} ) right: <Id.Eof_RParen _> ) <': '> ) } ) (C {<read>} {<fqdnlist>}) (C {<verify_fqdnlist>} {(DQ ($ Id.VSub_DollarName fqdnlist))}) ] spids: [4847 4860] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fqdnlist='> name:fqdnlist) op: assign_op.Equal rhs: {($ Id.VSub_DollarName client_machine)} spids: [4892] ) ] redirects: [] ) ] redirects: [] ) ] spids: [4813 4824] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName fqdnlist)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fqdnlist='> name:fqdnlist) op: assign_op.Equal rhs: {($ Id.VSub_DollarName client_machine)} spids: [4916] ) ] redirects: [] ) ] spids: [4902 4913] ) ] else_action: [] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName add_nfs)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<echo>}) terminator: <Id.Op_Semi _> ) (C {<call_kadmin>} {<nfs>}) ] spids: [4927 4940] ) ] else_action: [] redirects: [] ) (command.Sentence child:(C {<echo>}) terminator:<Id.Op_Semi _>) (C {<call_kadmin>} {<host>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: setup_lhn body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<-l>} {<logical_hn>}) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName logical_hn))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP_FILE)} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<egrep>} {<-s>} {(SQ <'[^.]\\.[^.]+$'>)} {($ Id.VSub_DollarName TMP_FILE)} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Id.Lit_Colon ':'>})] spids: [4996 5009] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<egrep>} {<-s>} {(SQ <'\\.+'>)} {($ Id.VSub_DollarName TMP_FILE)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Improper format of logical hostname, exiting'>)} ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [5022 5035] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'logical_hn='> name:logical_hn) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<echo>} { (DQ ($ Id.VSub_DollarName logical_hn) <.> ($ Id.VSub_DollarName fqdn) ) } ) right: <Id.Eof_RParen _> ) } spids: [5073] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'client_machine='> name:client_machine) op: assign_op.Equal rhs: {($ Id.VSub_DollarName logical_hn)} spids: [5092] ) ] redirects: [] ) (C {<ping_check>} {($ Id.VSub_DollarName client_machine)} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <System>)}) right: <Id.Eof_RParen _> ) } ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: usage body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Usage: kclient [ options ]'>)}) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'where options are any of the following'>)}) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ <'[ -D domain_list ] configure a client that has mul\n'> <'tiple mappings of doamin and/or hosts to the default realm'> ) } ) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'[ -K ] configure a client that does not have host/service keys'>)} ) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'[ -R realm ] specifies the realm to use'>)}) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'[ -T kdc_vendor ] specifies which KDC vendor is the server'>)} ) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'[ -a adminuser ] specifies the Kerberos administrator'>)}) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < '[ -c filepath ] specifies the krb5.conf path used to configure this client' > ) } ) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < '[ -d dnsarg ] specifies which information should be looked up in DNS (dns_lookup_kdc, dns_lookup_realm, and dns_fallback)' > ) } ) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < '[ -f fqdn_list ] specifies which domains to configure host keys for this client' > ) } ) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < '[ -h logicalhostname ] configure the logical host name for a client that is in a cluster' > ) } ) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < '[ -k kdc_list ] specify multiple KDCs, if -m is not used the first KDC in the list is assumed to be the master. KDC host names are used verbatim.' > ) } ) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'[ -m master ] master KDC server host name'>)}) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'[ -n ] configure client to be an NFS client'>)}) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < '[ -p profile ] specifies which profile file to use to configure this client' > ) } ) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'[ -s pam_list ] update the service for Kerberos authentication'>)} ) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: discover_domain body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<dom>} {<DOMs>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName realm)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<set>} {<-A>} {<DOMs>} {<-->} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName KLOOKUP)} {<_ldap._tcp.dc._msdcs>} {<S>}) right: <Id.Backtick_Right '`'> ) } ) ] spids: [5462 5473] ) ] else_action: [ (C {<set>} {<-A>} {<DOMs>} {<-->} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName KLOOKUP)} {<_ldap._tcp.dc._msdcs.> ($ Id.VSub_DollarName realm)} {<S>} ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DOMs> var_name: DOMs bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) } ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dom='> name:dom) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DOMs> var_name: DOMs bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) } spids: [5543] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dom='> name:dom) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name dom> var_name: dom suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Other '*'> <.>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [5553] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dom='> name:dom) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name dom> var_name: dom suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<' '> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [5562] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'domain='> name:domain) op: assign_op.Equal rhs: {($ Id.VSub_DollarName dom)} spids: [5572] ) ] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: check_nss_hosts_or_ipnodes_config body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<backend>}) (command.ForEach iter_names: [backend] iterable: (for_iter.Words words:[{($ Id.VSub_Number 1)}]) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName backend)} right: {<dns>} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) ] ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: check_nss_conf body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<i>} {<j>} {<hosts_config>}) (command.ForEach iter_names: [i] iterable: (for_iter.Words words:[{<hosts>} {<ipnodes>}]) body: (command.DoGroup children: [ (command.Pipeline children: [ (C {<grep>} {(DQ <'^'> (${ Id.VSub_Name i) <':'>)} {<'/etc/nsswitch.conf'>}) (C {<read>} {<j>} {<hosts_config>}) ] negated: F stderr_indices: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<check_nss_hosts_or_ipnodes_config>} {(DQ ($ Id.VSub_DollarName hosts_config))} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) ] ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: canon_resolve body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<name>} {<ip>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName KLOOKUP)} {($ Id.VSub_Number 1)} {<C>}) right: <Id.Backtick_Right '`'> ) } spids: [5725] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName name)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName KLOOKUP)} {($ Id.VSub_Number 1)} {<A>}) right: <Id.Backtick_Right '`'> ) } spids: [5747] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName name)}) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ip='> name:ip) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName KLOOKUP)} {($ Id.VSub_DollarName name)} {<I>}) right: <Id.Backtick_Right '`'> ) } spids: [5773] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName ip)}) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.ForEach iter_names: [i] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName ip)}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [{<ping>} {($ Id.VSub_DollarName i)} {<2>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [5810 5826] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [5835] ) ] redirects: [] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cname='> name:cname) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName KLOOKUP)} {($ Id.VSub_DollarName ip)} {<P>}) right: <Id.Backtick_Right '`'> ) } spids: [5845] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName cname)}) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (C {<print>} {<-->} {(DQ ($ Id.VSub_DollarName cname))}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: rev_resolve body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<name>} {<ip>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ip='> name:ip) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName KLOOKUP)} {($ Id.VSub_Number 1)} {<I>}) right: <Id.Backtick_Right '`'> ) } spids: [5897] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName ip)}) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName KLOOKUP)} {($ Id.VSub_DollarName ip)} {<P>}) right: <Id.Backtick_Right '`'> ) } spids: [5923] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName name)}) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (C {<print>} {<-->} {($ Id.VSub_DollarName name)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: dn2dns body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<OIFS>} {<dname>} {<dn>} {<comp>} {<components>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dn='> name:dn) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [5982] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dname='> name:dname) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [5986] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OIFS='> name:OIFS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName IFS))} spids: [5990] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {<Id.Lit_Comma ','>} spids: [5996] ) ] redirects: [] ) (C {<set>} {<-A>} {<components>} {<-->} {($ Id.VSub_Number 1)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OIFS))} spids: [6011] ) ] redirects: [] ) (command.ForEach iter_names: [comp] iterable: (for_iter.Words words: [ { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name components> var_name: components bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] ) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ ($ Id.VSub_DollarName comp))} right: {<Id.Lit_Other '['> <dD> <Id.Lit_Other ']'> <Id.Lit_Other '['> <cC> <Id.Lit_Other ']'> <Id.BoolBinary_GlobEqual '='> <Id.Lit_Other '*'> } ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dname='> name:dname) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName dname) <.> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name comp> var_name: comp suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Other '?'> <Id.Lit_Other '?'> <'='>} ) right: <Id.Right_DollarBrace '}'> ) ) } spids: [6061] ) ] redirects: [] ) ] ) redirects: [] ) (C {<print>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name dname> var_name: dname suffix_op: (suffix_op.Unary op:<Id.VOp1_Pound '#'> arg_word:{<.>}) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: getBaseDN body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(DQ ($ Id.VSub_Number 2))}) redirects: [] ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'baseDN='> name:baseDN) op: assign_op.Equal rhs: { (DQ <'CN='> ($ Id.VSub_Number 1) <','> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dns2dn>} {($ Id.VSub_Number 2)}) right: <Id.Eof_RParen _> ) ) } spids: [6116] ) ] redirects: [] ) ] spids: [6100 6113] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'baseDN='> name:baseDN) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dns2dn>} {($ Id.VSub_Number 2)}) right: <Id.Eof_RParen _> ) ) } spids: [6132] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: dns2dn body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<OIFS>} {<dn>} {<labels>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OIFS='> name:OIFS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName IFS))} spids: [6167] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {<.>} spids: [6173] ) ] redirects: [] ) (C {<set>} {<-A>} {<labels>} {<-->} {($ Id.VSub_Number 1)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OIFS))} spids: [6188] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dn='> name:dn) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [6195] ) ] redirects: [] ) (command.ForEach iter_names: [label] iterable: (for_iter.Words words: [ { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name labels> var_name: labels bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dn='> name:dn) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name dn) <',DC='> ($ Id.VSub_DollarName label))} spids: [6217] ) ] redirects: [] ) ] ) redirects: [] ) (C {<print>} {<-->} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name dn> var_name: dn suffix_op: (suffix_op.Unary op:<Id.VOp1_Pound '#'> arg_word:{<','>}) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: getSRVs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<srv>} {<port>}) (command.Pipeline children: [ (C {($ Id.VSub_DollarName KLOOKUP)} {($ Id.VSub_Number 1)} {<S>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<read>} {<srv>} {<port>})]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [{<ping>} {($ Id.VSub_DollarName srv)} {<2>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<print>} {<-->} {($ Id.VSub_DollarName srv)} {($ Id.VSub_DollarName port)} ) ] spids: [6281 6297] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] negated: F stderr_indices: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: getKDC body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<j>}) (C {<set>} {<-A>} {<KPWs>} {<-->} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<getSRVs>} {<_kpasswd._tcp.> ($ Id.VSub_DollarName dom) <.>}) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kpasswd='> name:kpasswd) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KPWs> var_name: KPWs bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) } spids: [6347] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName siteName)} ) redirects: [] ) ] ) action: [ (C {<set>} {<-A>} {<KDCs>} {<-->} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<getSRVs>} {<_kerberos._tcp.> ($ Id.VSub_DollarName siteName) <._sites.> ($ Id.VSub_DollarName dom) <.> } ) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kdc='> name:kdc) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KDCs> var_name: KDCs bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) } spids: [6390] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName kdc)} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> ) ] ) ] spids: [6357 6368] ) ] else_action: [] redirects: [] ) (C {<set>} {<-A>} {<KDCs>} {<-->} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<getSRVs>} {<_kerberos._tcp.> ($ Id.VSub_DollarName dom) <.>}) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kdc='> name:kdc) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KDCs> var_name: KDCs bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) } spids: [6437] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName kdc)}) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (C {<set>} {<-A>} {<KDCs>} {<-->} {($ Id.VSub_DollarName DomainDnsZones)} {<88>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kdc='> name:kdc) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ForestDnsZones)} spids: [6477] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: getDC body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<j>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName siteName)} ) redirects: [] ) ] ) action: [ (C {<set>} {<-A>} {<DCs>} {<-->} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<getSRVs>} {<_ldap._tcp.> ($ Id.VSub_DollarName siteName) <._sites.dc._msdcs.> ($ Id.VSub_DollarName dom) <.> } ) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dc='> name:dc) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DCs> var_name: DCs bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) } spids: [6529] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName dc)} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> ) ] ) ] spids: [6496 6507] ) ] else_action: [] redirects: [] ) (C {<set>} {<-A>} {<DCs>} {<-->} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<getSRVs>} {<_ldap._tcp.dc._msdcs.> ($ Id.VSub_DollarName dom) <.>}) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dc='> name:dc) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DCs> var_name: DCs bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) } spids: [6576] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName dc)}) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (C {<set>} {<-A>} {<DCs>} {<-->} {($ Id.VSub_DollarName DomainDnsZones)} {<389>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dc='> name:dc) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DomainDnsZones)} spids: [6616] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: write_ads_krb5conf body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<kdcs>}) (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Setting up %s'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName KRB5_CONFIG_FILE)} ) (command.ForEach iter_names: [i] iterable: (for_iter.Words words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KDCs> var_name: KDCs bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName i)} right: {(word_part.ExtGlob op:<Id.ExtGlob_Plus '+('> arms:[{<'[0-9]'>}])} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName kdcs)} ) redirects: [] ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kdcs='> name:kdcs) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName kdcs) <','> ($ Id.VSub_DollarName i))} spids: [6706] ) ] redirects: [] ) ] spids: [6692 6703] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kdcs='> name:kdcs) op: assign_op.Equal rhs: {($ Id.VSub_DollarName i)} spids: [6717] ) ] redirects: [] ) ] redirects: [] ) ] ) redirects: [] ) (C {($ Id.VSub_DollarName KCONF)} {<-f>} {($ Id.VSub_DollarName KRB5_CONFIG)} {<-r>} {($ Id.VSub_DollarName realm)} {<-k>} {($ Id.VSub_DollarName kdcs)} {<-m>} {($ Id.VSub_DollarName KDC)} {<-p>} {<SET_CHANGE>} {<-d>} {<.> ($ Id.VSub_DollarName dom)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Can not update %s, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName KRB5_CONFIG)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [6757 6770] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: getForestName body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (C {<ldapsearch>} {<-R>} {<-T>} {<-h>} {($ Id.VSub_DollarName dc)} {($ Id.VSub_DollarName ldap_args)} {<-b>} {(DQ )} {<-s>} {<base>} {(DQ )} {<schemaNamingContext>} ) (C {<grep>} {<Id.Lit_Other '^'> <schemaNamingContext>}) (C {<read>} {<j>} {<schemaNamingContext>}) ] negated: F stderr_indices: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Can\'t find forest'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [6855 6868] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'schemaNamingContext='> name: schemaNamingContext ) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name schemaNamingContext> var_name: schemaNamingContext suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<'CN=Schema,CN=Configuration,'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [6896] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName schemaNamingContext)} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'forest='> name:forest) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [6921] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName schemaNamingContext)} ) redirects: [] ) ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'schemaNamingContext='> name: schemaNamingContext ) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name schemaNamingContext> var_name: schemaNamingContext suffix_op: (suffix_op.Unary op:<Id.VOp1_Pound '#'> arg_word:{<'DC='>}) right: <Id.Right_DollarBrace '}'> ) } spids: [6938] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'forest='> name:forest) op: assign_op.Equal rhs: {(${ Id.VSub_Name forest) <.> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name schemaNamingContext> var_name: schemaNamingContext suffix_op: (suffix_op.Unary op: <Id.VOp1_DPercent '%%'> arg_word: {<','> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [6946] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ ($ Id.VSub_DollarName schemaNamingContext))} right: {<Id.Lit_Other '*'> <Id.Lit_Other ','> <Id.Lit_Other '*'>} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'schemaNamingContext='> name: schemaNamingContext ) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name schemaNamingContext> var_name: schemaNamingContext suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Other '*'> <','>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [6978] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'forest='> name:forest) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name forest> var_name: forest suffix_op: (suffix_op.Unary op:<Id.VOp1_Pound '#'> arg_word:{<.>}) right: <Id.Right_DollarBrace '}'> ) } spids: [6990] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: getGC body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<j>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName gc)}) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName siteName)} ) redirects: [] ) ] ) action: [ (C {<set>} {<-A>} {<GCs>} {<-->} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<getSRVs>} {<_ldap._tcp.> ($ Id.VSub_DollarName siteName) <._sites.gc._msdcs.> ($ Id.VSub_DollarName forest) <.> } ) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'gc='> name:gc) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name GCs> var_name: GCs bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) } spids: [7062] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName gc)} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> ) ] ) ] spids: [7029 7040] ) ] else_action: [] redirects: [] ) (C {<set>} {<-A>} {<GCs>} {<-->} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<getSRVs>} {<_ldap._tcp.gc._msdcs.> ($ Id.VSub_DollarName forest) <.>}) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'gc='> name:gc) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name GCs> var_name: GCs bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) right: <Id.Right_DollarBrace '}'> ) } spids: [7109] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName gc)}) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (C {<set>} {<-A>} {<GCs>} {<-->} {($ Id.VSub_DollarName ForestDnsZones)} {<3268>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'gc='> name:gc) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ForestDnsZones)} spids: [7149] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: ipAddr2num body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<OIFS>}) (C {<typeset>} {<-ui16>} {<num>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_Number 1))} right: {(word_part.ExtGlob op:<Id.ExtGlob_Plus '+('> arms:[{<'[0-9]'>}]) <.> (word_part.ExtGlob op: <Id.ExtGlob_Plus '+('> arms: [{<'[0-9]'>}] ) <.> (word_part.ExtGlob op:<Id.ExtGlob_Plus '+('> arms:[{<'[0-9]'>}]) <.> (word_part.ExtGlob op: <Id.ExtGlob_Plus '+('> arms: [{<'[0-9]'>}] ) } ) redirects: [] ) ] ) action: [ (C {<print>} {<0>}) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [7190 7219] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OIFS='> name:OIFS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName IFS))} spids: [7236] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {<.>} spids: [7242] ) ] redirects: [] ) (C {<set>} {<-->} {($ Id.VSub_Number 1)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OIFS))} spids: [7253] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'num='> name:num) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Pipe left: (arith_expr.Binary op_id: Id.Arith_Pipe left: (arith_expr.Binary op_id: Id.Arith_Pipe left: (arith_expr.Binary op_id: Id.Arith_DLess left: {(${ Id.VSub_Number 1)} right: {<Id.Lit_Digits 24>} ) right: (arith_expr.Binary op_id: Id.Arith_DLess left: {(${ Id.VSub_Number 2)} right: {<Id.Lit_Digits 16>} ) ) right: (arith_expr.Binary op_id: Id.Arith_DLess left: {(${ Id.VSub_Number 3)} right: {<Id.Lit_Digits 8>} ) ) right: {(${ Id.VSub_Number 4)} ) ) } spids: [7260] ) ] redirects: [] ) (C {<print>} {<-->} {($ Id.VSub_DollarName num)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: num2ipAddr body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<-ui16>} {<num>}) (C {<typeset>} {<-ui10>} {<a>} {<b>} {<c>} {<d>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'num='> name:num) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [7346] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_DGreat left: ($ Id.Lit_ArithVarLike num) right: {<Id.Lit_Digits 24>} ) ) } spids: [7350] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Amp left: (arith_expr.Binary op_id: Id.Arith_DGreat left: ($ Id.Lit_ArithVarLike num) right: {<Id.Lit_Digits 16>} ) right: {<Id.Lit_Digits 16> <Id.Lit_Pound '#'> <Id.Lit_ArithVarLike ff>} ) ) } spids: [7360] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'c='> name:c) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Amp left: (arith_expr.Binary op_id: Id.Arith_DGreat left: ($ Id.Lit_ArithVarLike num) right: {<Id.Lit_Digits 8>} ) right: {<Id.Lit_Digits 16> <Id.Lit_Pound '#'> <Id.Lit_ArithVarLike ff>} ) ) } spids: [7375] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'd='> name:d) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Amp left: ($ Id.Lit_ArithVarLike num) right: {<Id.Lit_Digits 16> <Id.Lit_Pound '#'> <Id.Lit_ArithVarLike ff>} ) ) } spids: [7390] ) ] redirects: [] ) (C {<print>} {<-->} {($ Id.VSub_DollarName a) <.> ($ Id.VSub_DollarName b) <.> ($ Id.VSub_DollarName c) <.> ($ Id.VSub_DollarName d) } ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: netmask2length body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<-ui16>} {<netmask>}) (C {<typeset>} {<-i>} {<len>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'netmask='> name:netmask) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [7455] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'len='> name:len) op: assign_op.Equal rhs: {<32>} spids: [7459] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Percent left: ($ Id.Lit_ArithVarLike netmask) right: {<Id.Lit_Digits 2>} ) ) } right: {<0>} ) redirects: [] ) ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'netmask='> name:netmask) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_DGreat left: ($ Id.Lit_ArithVarLike netmask) right: {<Id.Lit_Digits 1>} ) ) } spids: [7486] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'len='> name:len) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: ($ Id.Lit_ArithVarLike len) right: {<Id.Lit_Digits 1>} ) ) } spids: [7495] ) ] redirects: [] ) ] ) redirects: [] ) (C {<print>} {($ Id.VSub_DollarName len)}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: getSubnets body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<-ui16>} {<addr>} {<netmask>}) (C {<typeset>} {<-ui16>} {<Id.Lit_VarLike 'classa='> <16> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\#'> ch:'#') <ff000000> } ) (C {<typeset>} {<-ui16>} {<Id.Lit_VarLike 'classb='> <16> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\#'> ch:'#') <ffff0000> } ) (C {<typeset>} {<-ui16>} {<Id.Lit_VarLike 'classc='> <16> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\#'> ch:'#') <ffffff00> } ) (command.Pipeline children: [ (C {<ifconfig>} {<-a>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<read>} {<line>})]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'addr='> name:addr) op: assign_op.Equal rhs: {<0>} spids: [7592] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'netmask='> name:netmask) op: assign_op.Equal rhs: {<0>} spids: [7596] ) ] redirects: [] ) (C {<set>} {<-->} {($ Id.VSub_DollarName line)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Number 1)} right: {<inet>} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: {($ Id.VSub_Pound '#')} right: {<0>} ) redirects: [] ) ] ) body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number 1))} arms: [ (case_arm pat_list: [{<inet>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'addr='> name: addr ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<ipAddr2num>} {($ Id.VSub_Number 2)}) right: <Id.Eof_RParen _> ) } spids: [7650] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] spids: [7647 7648 7659 -1] ) (case_arm pat_list: [{<netmask>}] action: [ (command.Sentence child: (C {<eval>} {<Id.Lit_VarLike 'netmask='> <16> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\#'> ch: '#' ) ($ Id.VSub_Number 2) } ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] spids: [7662 7663 7674 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Sentence child: (C {<Id.Lit_Colon ':'>}) terminator: <Id.Op_Semi _> ) ] spids: [7677 7678 -1 7684] ) ] redirects: [] ) (C {<shift>}) ] ) redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_DollarName addr)} right: {<0>} ) right: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_DollarName netmask)} right: {<0>} ) ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Amp left: ($ Id.Lit_ArithVarLike addr) right: ($ Id.Lit_ArithVarLike classa) ) ) } right: {<16> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\#'> ch: '#' ) <7f000000> } ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (C {<print>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<num2ipAddr>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Amp left: ($ Id.Lit_ArithVarLike addr) right: ($ Id.Lit_ArithVarLike netmask) ) ) } ) right: <Id.Eof_RParen _> ) <'/'> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<netmask2length>} {($ Id.VSub_DollarName netmask)}) right: <Id.Eof_RParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName netmask)} {<-gt>} {($ Id.VSub_DollarName classc)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<print>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<num2ipAddr>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Amp left: ($ Id.Lit_ArithVarLike addr) right: ($ Id.Lit_ArithVarLike classc) ) ) } ) right: <Id.Eof_RParen _> ) <'/'> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<netmask2length>} {($ Id.VSub_DollarName classc)}) right: <Id.Eof_RParen _> ) } ) ] spids: [7764 7777] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName netmask)} {<-gt>} {($ Id.VSub_DollarName classb)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<print>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<num2ipAddr>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Amp left: ($ Id.Lit_ArithVarLike addr) right: ($ Id.Lit_ArithVarLike classb) ) ) } ) right: <Id.Eof_RParen _> ) <'/'> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<netmask2length>} {($ Id.VSub_DollarName classb)}) right: <Id.Eof_RParen _> ) } ) ] spids: [7805 7818] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName netmask)} {<-gt>} {($ Id.VSub_DollarName classa)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<print>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<num2ipAddr>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Amp left: ($ Id.Lit_ArithVarLike addr) right: ($ Id.Lit_ArithVarLike classa) ) ) } ) right: <Id.Eof_RParen _> ) <'/'> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<netmask2length>} {($ Id.VSub_DollarName classa)}) right: <Id.Eof_RParen _> ) } ) ] spids: [7846 7859] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] negated: F stderr_indices: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: getSite body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<subnet>} {<siteDN>} {<j>} {<ldapsrv>} {<subnet_dom>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<eval>} { (DQ <'[[ -n '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <siteName> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' ]]'> ) } ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.ForEach iter_names: [subnet] iterable: (for_iter.Words words: [ { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<getSubnets>}) right: <Id.Eof_RParen _> ) } ] ) body: (command.DoGroup children: [ (command.Pipeline children: [ (C {<ldapsearch>} {<-R>} {<-T>} {<-h>} {($ Id.VSub_DollarName dc)} {($ Id.VSub_DollarName ldap_args)} {<-p>} {<3268>} {<-b>} {(DQ )} {<-s>} {<sub>} {<Id.Lit_VarLike 'cn='> ($ Id.VSub_DollarName subnet)} {<dn>} ) (C {<grep>} {<Id.Lit_Other '^'> <dn>}) (C {<read>} {<j>} {<subnetDN>}) ] negated: F stderr_indices: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName subnetDN)} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'subnet_dom='> name:subnet_dom) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dn2dns>} {($ Id.VSub_DollarName subnetDN)}) right: <Id.Eof_RParen _> ) } spids: [8002] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ldapsrv='> name:ldapsrv) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<canon_resolve>} {<DomainDnsZones.> ($ Id.VSub_DollarName subnet_dom)} ) right: <Id.Eof_RParen _> ) } spids: [8010] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName ldapsrv)} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (command.Pipeline children: [ (C {<ldapsearch>} {<-R>} {<-T>} {<-h>} {($ Id.VSub_DollarName ldapsrv)} {($ Id.VSub_DollarName ldap_args)} {<-b>} {(DQ ($ Id.VSub_DollarName subnetDN))} {<-s>} {<base>} {(DQ )} {<siteObject>} ) (C {<grep>} {<Id.Lit_Other '^'> <siteObject>}) (C {<read>} {<j>} {<siteDN>}) ] negated: F stderr_indices: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName siteDN)} ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (C {<eval>} {<Id.Lit_VarLike 'siteName='> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name siteDN> var_name: siteDN suffix_op: (suffix_op.Unary op: <Id.VOp1_DPercent '%%'> arg_word: {<','> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } ) (C {<eval>} {<Id.Lit_VarLike 'siteName='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <Id.Lit_LBrace '{'> <siteName> <Id.Lit_Pound '#'> <Id.Lit_VarLike 'CN='> <Id.Lit_RBrace '}'> } ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: doKRB5config body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName KRB5_CONFIG_FILE)} ) redirects: [] ) (C {<cp>} {($ Id.VSub_DollarName KRB5_CONFIG_FILE)} {(${ Id.VSub_Name KRB5_CONFIG_FILE) <-pre-kclient>} ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {($ Id.VSub_DollarName KRB5_KEYTAB_FILE)} ) redirects: [] ) (C {<cp>} {($ Id.VSub_DollarName KRB5_KEYTAB_FILE)} {(${ Id.VSub_Name KRB5_KEYTAB_FILE) <-pre-kclient>} ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_s child: {($ Id.VSub_DollarName KRB5_CONFIG)} ) redirects: [] ) (C {<cp>} {($ Id.VSub_DollarName KRB5_CONFIG)} {($ Id.VSub_DollarName KRB5_CONFIG_FILE)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_s child: {($ Id.VSub_DollarName KRB5_CONFIG_FILE)} ) redirects: [] ) (C {<chmod>} {<0644>} {($ Id.VSub_DollarName KRB5_CONFIG_FILE)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_s child: {($ Id.VSub_DollarName new_keytab)} ) redirects: [] ) (C {<cp>} {($ Id.VSub_DollarName new_keytab)} {($ Id.VSub_DollarName KRB5_KEYTAB_FILE)}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_s child: {($ Id.VSub_DollarName KRB5_KEYTAB_FILE)} ) redirects: [] ) (C {<chmod>} {<0600>} {($ Id.VSub_DollarName KRB5_KEYTAB_FILE)}) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: addDNSRR body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'smbFMRI='> name:smbFMRI) op: assign_op.Equal rhs: {<svc> <Id.Lit_Colon ':'> <'/network/smb/server'> <Id.Lit_Colon ':'> <default>} spids: [8251] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ddnsProp='> name:ddnsProp) op: assign_op.Equal rhs: {<'smbd/ddns_enable'>} spids: [8259] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'enProp='> name:enProp) op: assign_op.Equal rhs: {<'general/enabled'>} spids: [8263] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'enabled='> name:enabled) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<svcprop>} {<-p>} {($ Id.VSub_DollarName enProp)} {($ Id.VSub_DollarName smbFMRI)} ) right: <Id.Backtick_Right '`'> ) } spids: [8268] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ddns_enable='> name:ddns_enable) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<svcprop>} {<-p>} {($ Id.VSub_DollarName ddnsProp)} {($ Id.VSub_DollarName smbFMRI)} ) right: <Id.Backtick_Right '`'> ) } spids: [8282] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName enabled)} right: {<true>} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName ddns_enable)} right: {<true>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Warning: won\'t create DNS records for client'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'%s property not set to \'true\' for the %s FMRI'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName ddnsProp)} {($ Id.VSub_DollarName smbFMRI)} ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] spids: [8297 8318] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<kdestroy>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.Simple words: [{($ Id.VSub_DollarName KDYNDNS)} {<-d>} {($ Id.VSub_Number 1)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Warning: unable to create DNS records for client'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'This could mean that \'%s\' is not included as a \'nameserver\' in the /etc/resolv.conf file or some other type of error' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName dc)} ) ] spids: [8398 8411] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: setSMB body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<Id.Lit_VarLike 'domain='> ($ Id.VSub_Number 1)}) (C {<typeset>} {<Id.Lit_VarLike 'server='> ($ Id.VSub_Number 2)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'smbFMRI='> name:smbFMRI) op: assign_op.Equal rhs: {<svc> <Id.Lit_Colon ':'> <'/network/smb/server'>} spids: [8488] ) ] redirects: [] ) (command.Pipeline children: [ (C {<printf>} {(DQ <'%s'>)} {(DQ ($ Id.VSub_DollarName newpw))}) (C {($ Id.VSub_DollarName KSMB)} {<-d>} {($ Id.VSub_DollarName domain)} {<-s>} {($ Id.VSub_DollarName server)} ) ] negated: F stderr_indices: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Warning: unable to set %s domain, server and password information' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName smbFMRI)} ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] spids: [8518 8531] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<svcadm>} {<restart>} {($ Id.VSub_DollarName smbFMRI)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Warning: unable to restart %s'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName smbFMRI)} ) ] spids: [8573 8586] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: compareDomains body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<oldDom>} {<hspn>} {<Id.Lit_VarLike 'newDom='> ($ Id.VSub_Number 1)}) (command.Pipeline children: [ (command.Simple words: [{<klist>} {<-k>}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] more_env: [] do_fork: T ) (C {<grep>} {<Id.Lit_At '@'>}) (C {<read>} {<j>} {<hspn>}) ] negated: F stderr_indices: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName hspn)}) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'oldDom='> name:oldDom) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name hspn> var_name: hspn suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Other '@'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [8678] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName oldDom)} right: {($ Id.VSub_DollarName newDom)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'The client is currently configured in a different domain'>)} ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Currently in the \'%s\' domain, trying to join the \'%s\' domain' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName oldDom)} {($ Id.VSub_DollarName newDom)} ) (C {<query>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Do you want the client to join a new domain'>)}) right: <Id.Eof_RParen _> ) <' ?'> ) } ) (C {<printf>} {(DQ <Id.Lit_BadBackslash '\\'> <n>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName answer)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Client will not be joined to the new domain'>)} ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [8761 8774] ) ] else_action: [] redirects: [] ) ] spids: [8687 8700] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: getKDCDC body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<getKDC>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName kdc)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KDC='> name:KDC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName kdc)} spids: [8832] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dc='> name:dc) op: assign_op.Equal rhs: {($ Id.VSub_DollarName kdc)} spids: [8836] ) ] redirects: [] ) ] spids: [8818 8829] ) ] else_action: [ (C {<getDC>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName dc)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KDC='> name:KDC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName dc)} spids: [8860] ) ] redirects: [] ) ] spids: [8846 8857] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Could not find domain controller server for \'%s\'. Exiting' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName realm)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: gen_rand body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<-u>} {<hex>}) (command.Pipeline children: [ (command.Simple words: [ {<dd>} {<Id.Lit_VarLike 'if='> <'/dev/random'>} {<Id.Lit_VarLike 'bs='> <1>} {<Id.Lit_VarLike 'count='> <1>} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (C {<od>} {<-A>} {<n>} {<-tx1>}) (C {<read>} {<hex>}) ] negated: F stderr_indices: [] ) (C {<printf>} {<Id.Lit_Other '%'> <s>} { (word_part.ArithSub anode: {<Id.Lit_Digits 16> <Id.Lit_Pound '#'> ($ Id.VSub_DollarName hex)} ) } ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: join_domain body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<typeset>} {<-u>} {<upcase_nodename>}) (C {<typeset>} {<-l>} {<locase_nodename>}) (C {<typeset>} {<-L15>} {<string15>}) (C {<typeset>} {<netbios_nodename>} {<fqdn>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'container='> name:container) op: assign_op.Equal rhs: {<Computers>} spids: [8998] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ldap_args='> name:ldap_args) op: assign_op.Equal rhs: {(DQ <'-o authzid= -o mech=gssapi'>)} spids: [9002] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'userAccountControlBASE='> name: userAccountControlBASE ) op: assign_op.Equal rhs: {<4096>} spids: [9008] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName ADMIN_PRINC)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cprinc='> name:cprinc) op: assign_op.Equal rhs: {<Administrator>} spids: [9027] ) ] redirects: [] ) ] spids: [9013 9024] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cprinc='> name:cprinc) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ADMIN_PRINC)} spids: [9034] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<discover_domain>})] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Can not find realm'>)}) right: <Id.Eof_RParen _> ) <' \'%s\'.'> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName realm)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [9042 9049] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dom='> name:dom) op: assign_op.Equal rhs: {($ Id.VSub_DollarName domain)} spids: [9080] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'realm='> name:realm) op: assign_op.Equal rhs: {($ Id.VSub_DollarName domain)} spids: [9084] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name hostname> var_name: hostname prefix_op: <Id.VSub_Pound '#'> right: <Id.Right_DollarBrace '}'> ) } right: {<15>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'string15='> name:string15) op: assign_op.Equal rhs: {($ Id.VSub_DollarName hostname)} spids: [9108] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'upcase_nodename='> name: upcase_nodename ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName string15)} spids: [9112] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'locase_nodename='> name: locase_nodename ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName string15)} spids: [9116] ) ] redirects: [] ) ] spids: [9089 9105] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'upcase_nodename='> name: upcase_nodename ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName hostname)} spids: [9123] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'locase_nodename='> name: locase_nodename ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName hostname)} spids: [9127] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'netbios_nodename='> name: netbios_nodename ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name upcase_nodename) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) ) } spids: [9135] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fqdn='> name:fqdn) op: assign_op.Equal rhs: {($ Id.VSub_DollarName hostname) <.> ($ Id.VSub_DollarName domain)} spids: [9144] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'upn='> name:upn) op: assign_op.Equal rhs: {<'host/'> (${ Id.VSub_Name fqdn) <Id.Lit_At '@'> (${ Id.VSub_Name realm)} spids: [9150] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'object='> name:object) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mktemp>} {<-q>} {<-t>} {<kclient-computer-object.XXXXXX>}) right: <Id.Eof_RParen _> ) } spids: [9162] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName object)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Can not create temporary file, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <'n\n'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [9174 9185] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'modify_existing='> name: modify_existing ) op: assign_op.Equal rhs: {<false>} spids: [9216] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'recreate='> name:recreate) op: assign_op.Equal rhs: {<false>} spids: [9220] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DomainDnsZones='> name:DomainDnsZones) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<rev_resolve>} {<DomainDnsZones.> ($ Id.VSub_DollarName dom) <.>}) right: <Id.Eof_RParen _> ) } spids: [9225] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ForestDnsZones='> name:ForestDnsZones) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<rev_resolve>} {<ForestDnsZones.> ($ Id.VSub_DollarName dom) <.>}) right: <Id.Eof_RParen _> ) } spids: [9235] ) ] redirects: [] ) (C {<getBaseDN>} {(DQ ($ Id.VSub_DollarName container))} {(DQ ($ Id.VSub_DollarName dom))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName KDC)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dc='> name:dc) op: assign_op.Equal rhs: {($ Id.VSub_DollarName KDC)} spids: [9272] ) ] redirects: [] ) ] spids: [9258 9269] ) ] else_action: [(C {<getKDCDC>})] redirects: [] ) (C {<write_ads_krb5conf>}) (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Attempting to join \'%s\' to the \'%s\' domain'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName upcase_nodename)} {($ Id.VSub_DollarName realm)} ) (C {<kinit>} {($ Id.VSub_DollarName cprinc) <Id.Lit_At '@'> ($ Id.VSub_DollarName realm)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Could not authenticate %s. Exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName cprinc) <Id.Lit_At '@'> ($ Id.VSub_DollarName realm)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [9320 9333] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands:[(C {<getForestName>})]) action: [ (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Forest name found: %s'>)}) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName forest)} ) ] spids: [9366 9371] ) ] else_action: [ (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Forest name not found, assuming forest is the domain name'>)} ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ) ] redirects: [] ) (C {<getGC>}) (C {<getSite>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName siteName)} ) redirects: [] ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Site name not found. Local DCs/GCs will not be discovered'>)} ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ) ] spids: [9427 9438] ) ] else_action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Looking for _local_ KDCs, DCs and global catalog servers (SRV RRs)' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<getKDCDC>}) (C {<getGC>}) (C {<write_ads_krb5conf>}) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name GCs> var_name: GCs prefix_op: <Id.VSub_Pound '#'> right: <Id.Right_DollarBrace '}'> ) } right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Could not find global catalogs. Exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [9492 9508] ) ] else_action: [] redirects: [] ) (C {<compareDomains>} {($ Id.VSub_DollarName realm)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'level='> name:level) op: assign_op.Equal rhs: {<0>} spids: [9559] ) ] redirects: [] ) (command.Pipeline children: [ (C {<ldapsearch>} {<-R>} {<-T>} {<-h>} {(DQ ($ Id.VSub_DollarName dc))} {($ Id.VSub_DollarName ldap_args)} {<-b>} {(DQ )} {<-s>} {<base>} {(DQ )} {<domainControllerFunctionality>} ) (C {<grep>} {<Id.Lit_Other '^'> <domainControllerFunctionality>}) (C {<read>} {<j>} {<level>}) ] negated: F stderr_indices: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Search for domain functionality failed, exiting'>)} ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [9609 9622] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Simple words: [ {<ldapsearch>} {<-R>} {<-T>} {<-h>} {(DQ ($ Id.VSub_DollarName dc))} {($ Id.VSub_DollarName ldap_args)} {<-b>} {(DQ ($ Id.VSub_DollarName baseDN))} {<-s>} {<sub>} {<Id.Lit_VarLike 'sAMAccountName='> (DQ ($ Id.VSub_DollarName netbios_nodename)) } {<dn>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) ] ) action: [(C {<Id.Lit_Colon ':'>})] spids: [9651 9694] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Search for node failed, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] redirects: [] ) (command.Pipeline children: [ (C {<ldapsearch>} {<-R>} {<-T>} {<-h>} {(DQ ($ Id.VSub_DollarName dc))} {($ Id.VSub_DollarName ldap_args)} {<-b>} {(DQ ($ Id.VSub_DollarName baseDN))} {<-s>} {<sub>} {<Id.Lit_VarLike 'sAMAccountName='> (DQ ($ Id.VSub_DollarName netbios_nodename))} {<dn>} ) (C {<grep>} {(DQ <'^dn:'>)}) (C {<read>} {<j>} {<dn>}) ] negated: F stderr_indices: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName dn)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Id.Lit_Colon ':'>})] spids: [9775 9786] ) ] else_action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Computer account \'%s\' already exists in the \'%s\' domain'>)} ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName upcase_nodename)} {($ Id.VSub_DollarName realm)} ) (C {<query>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Do you wish to recreate this computer account'>)}) right: <Id.Eof_RParen _> ) <' ?'> ) } ) (C {<printf>} {(DQ <Id.Lit_BadBackslash '\\'> <n>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName answer)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'recreate='> name:recreate) op: assign_op.Equal rhs: {<true>} spids: [9856] ) ] redirects: [] ) ] spids: [9840 9853] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'modify_existing='> name: modify_existing ) op: assign_op.Equal rhs: {<true>} spids: [9863] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName modify_existing)} right: {<false>} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName dn)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<query>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Would you like to delete any sub-object found for this computer account' > ) } ) right: <Id.Eof_RParen _> ) <' ?'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName answer)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Looking to see if the machine account contains other objects' > ) } ) right: <Id.Eof_RParen _> ) <...> <Id.Lit_BadBackslash '\\'> <n> ) } ) (command.Pipeline children: [ (C {<ldapsearch>} {<-R>} {<-T>} {<-h>} {(DQ ($ Id.VSub_DollarName dc))} {($ Id.VSub_DollarName ldap_args)} {<-b>} {(DQ ($ Id.VSub_DollarName dn))} {<-s>} {<sub>} {(DQ )} {<dn>} ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<read>} {<j>} {<sub_dn>})]) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName j)} right: {<dn> <Id.Lit_Colon ':'>} ) right: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName sub_dn)} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName dn)} right: {($ Id.VSub_DollarName sub_dn)} ) ) ) redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {($ Id.VSub_DollarName recreate)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Deleting the following object: %s' > ) } ) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name sub_dn> var_name: sub_dn suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {($ Id.VSub_DollarName dn)} ) right: <Id.Right_DollarBrace '}'> ) } ) (command.Simple words: [ {<ldapdelete>} {<-h>} {(DQ ($ Id.VSub_DollarName dc))} {($ Id.VSub_DollarName ldap_args)} {(DQ ($ Id.VSub_DollarName sub_dn))} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Error in deleting object: %s' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name sub_dn> var_name: sub_dn suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {($ Id.VSub_DollarName dn)} ) right: <Id.Right_DollarBrace '}'> ) } ) ] spids: [10066 10079] ) ] else_action: [] redirects: [] ) ] spids: [10015 10020] ) ] else_action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'The following object will not be deleted' > ) } ) right: <Id.Eof_RParen _> ) <': %s'> <Id.Lit_BadBackslash '\\'> <n> ) } { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name sub_dn> var_name: sub_dn suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {($ Id.VSub_DollarName dn)} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) ] ) redirects: [] ) ] negated: F stderr_indices: [] ) ] spids: [9910 9923] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {($ Id.VSub_DollarName recreate)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<ldapdelete>} {<-h>} {(DQ ($ Id.VSub_DollarName dc))} {($ Id.VSub_DollarName ldap_args)} {(DQ ($ Id.VSub_DollarName dn))} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Error in deleting object: %s'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name sub_dn> var_name: sub_dn suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {($ Id.VSub_DollarName dn)} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [10172 10185] ) ] else_action: [] redirects: [] ) ] spids: [10142 10147] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {($ Id.VSub_DollarName modify_existing)}) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Id.Lit_Colon ':'>})] spids: [10219 10224] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'A machine account already exists'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<error_message>}) ] redirects: [] ) ] spids: [9874 9893] ) ] else_action: [] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName dn)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dn='> name:dn) op: assign_op.Equal rhs: { (DQ <'CN='> (${ Id.VSub_Name upcase_nodename) <','> (${ Id.VSub_Name baseDN)) } spids: [10275] ) ] redirects: [] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {($ Id.VSub_DollarName modify_existing)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName object))} ) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 10346 stdin_parts: [ <'dn: '> ($ Id.VSub_DollarName dn) <'\n'> <'changetype: modify\n'> <'replace: userPrincipalName\n'> <'userPrincipalName: '> ($ Id.VSub_DollarName upn) <'\n'> <'-\n'> <'replace: servicePrincipalName\n'> <'servicePrincipalName: host/'> (${ Id.VSub_Name fqdn) <'\n'> <'-\n'> <'replace: userAccountControl\n'> <'userAccountControl: '> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike userAccountControlBASE) right: {<Id.Lit_Digits 32>} ) right: {<Id.Lit_Digits 2>} ) ) <'\n'> <'-\n'> <'replace: dNSHostname\n'> <'dNSHostname: '> (${ Id.VSub_Name fqdn) <'\n'> ] ) ) ] more_env: [] do_fork: T ) (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'A machine account already exists; updating it'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ) (command.Simple words: [ {<ldapadd>} {<-h>} {(DQ ($ Id.VSub_DollarName dc))} {($ Id.VSub_DollarName ldap_args)} {<-f>} {(DQ ($ Id.VSub_DollarName object))} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Failed to modify the AD object via LDAP'>)} ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [10389 10402] ) ] else_action: [] redirects: [] ) ] spids: [10288 10293] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dn='> name:dn) op: assign_op.Equal rhs: { (DQ <'CN='> (${ Id.VSub_Name upcase_nodename) <','> (${ Id.VSub_Name baseDN)) } spids: [10433] ) ] redirects: [] ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName object))} ) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 10497 stdin_parts: [ <'dn: '> ($ Id.VSub_DollarName dn) <'\n'> <'objectClass: computer\n'> <'cn: '> ($ Id.VSub_DollarName upcase_nodename) <'\n'> <'sAMAccountName: '> (${ Id.VSub_Name netbios_nodename) <'\n'> <'userPrincipalName: '> ($ Id.VSub_DollarName upn) <'\n'> <'servicePrincipalName: host/'> (${ Id.VSub_Name fqdn) <'\n'> <'userAccountControl: '> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike userAccountControlBASE) right: {<Id.Lit_Digits 32>} ) right: {<Id.Lit_Digits 2>} ) ) <'\n'> <'dNSHostname: '> (${ Id.VSub_Name fqdn) <'\n'> ] ) ) ] more_env: [] do_fork: T ) (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Creating the machine account in AD via LDAP'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ) (command.Simple words: [ {<ldapadd>} {<-h>} {(DQ ($ Id.VSub_DollarName dc))} {($ Id.VSub_DollarName ldap_args)} {<-f>} {(DQ ($ Id.VSub_DollarName object))} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Failed to create the AD object via LDAP'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [10543 10556] ) ] else_action: [] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAX_PASS='> name:MAX_PASS) op: assign_op.Equal rhs: {<120>} spids: [10592] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i) op: assign_op.Equal rhs: {<0>} spids: [10596] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id:Id.BoolUnary_e child:{<'/dev/random'>}) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'/dev/random does not exist'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [10605 10618] ) ] else_action: [] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: ($ Id.Lit_ArithVarLike MAX_PASS) right: ($ Id.Lit_ArithVarLike i) ) redirects: [] ) ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'c='> name:c) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<printf>} { (DQ (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<printf>} {<Id.Lit_Other '%'> <o>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Percent left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gen_rand>}) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 91>} ) right: {<Id.Lit_Digits 32>} ) ) } ) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ) right: <Id.Eof_RParen _> ) } spids: [10674] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName p) ($ Id.VSub_DollarName c))} spids: [10707] ) ] redirects: [] ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'newpw='> name:newpw) op: assign_op.Equal rhs: {($ Id.VSub_DollarName p)} spids: [10726] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name newpw> var_name: newpw prefix_op: <Id.VSub_Pound '#'> right: <Id.Right_DollarBrace '}'> ) } right: {<MAX_PASS>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Password created was of incorrect length'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [10730 10746] ) ] else_action: [] redirects: [] ) (command.Pipeline children: [ (C {<printf>} {(DQ <'%s'>)} {(DQ ($ Id.VSub_DollarName newpw))}) (command.Simple words: [ {($ Id.VSub_DollarName KSETPW)} {(${ Id.VSub_Name netbios_nodename) <Id.Lit_At '@'> (${ Id.VSub_Name realm)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Failed to set account password'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [10809 10822] ) ] else_action: [] redirects: [] ) (command.Pipeline children: [ (C {<ldapsearch>} {<-R>} {<-T>} {<-h>} {(DQ ($ Id.VSub_DollarName dc))} {($ Id.VSub_DollarName ldap_args)} {<-b>} {(DQ ($ Id.VSub_DollarName baseDN))} {<-s>} {<sub>} {<Id.Lit_VarLike 'cn='> ($ Id.VSub_DollarName upcase_nodename)} {<msDS-KeyVersionNumber>} ) (C {<grep>} {(DQ <'^msDS-KeyVersionNumber'>)}) (C {<read>} {<j>} {<kvno>}) ] negated: F stderr_indices: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName kvno)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kvno='> name:kvno) op: assign_op.Equal rhs: {<1>} spids: [10912] ) ] redirects: [] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'userAccountControl='> name: userAccountControl ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike userAccountControlBASE) right: {<Id.Lit_Digits 524288>} ) right: {<Id.Lit_Digits 65536>} ) ) } spids: [10925] ) ] redirects: [] ) (C {<set>} {<-A>} {<enctypes>} {<-->}) (command.Pipeline children: [ (C {<encrypt>} {<-l>}) (C {<grep>} {<Id.Lit_Other '^'> <aes>}) (C {<read>} {<j>} {<minkeysize>} {<maxkeysize>}) ] negated: F stderr_indices: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'val='> name:val) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [10972] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_DollarName maxkeysize)} right: {<256>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'val='> name:val) op: assign_op.Equal rhs: {<16>} spids: [10991] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'enctypes['> name: enctypes index: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name enctypes> var_name: enctypes prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) op: assign_op.Equal rhs: {<aes256-cts-hmac-sha1-96>} spids: [10995] ) ] redirects: [] ) ] spids: [10975 10988] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_DollarName minkeysize)} right: {<128>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike val) right: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike val) right: {<Id.Lit_Digits 8>} ) ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'enctypes['> name: enctypes index: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name enctypes> var_name: enctypes prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) op: assign_op.Equal rhs: {<aes128-cts-hmac-sha1-96>} spids: [11044] ) ] redirects: [] ) ] spids: [11018 11031] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<encrypt>} {<-l>}) (C {<grep>} {<-q>} {<Id.Lit_Other '^'> <arcfour>}) ] negated: F stderr_indices: [] ) ] ) action: [ (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike val) right: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike val) right: {<Id.Lit_Digits 4>} ) ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'enctypes['> name: enctypes index: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name enctypes> var_name: enctypes prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) op: assign_op.Equal rhs: {<arcfour-hmac-md5>} spids: [11099] ) ] redirects: [] ) ] spids: [11072 11086] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'userAccountControl='> name: userAccountControl ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike userAccountControl) right: {<Id.Lit_Digits 2097152>} ) ) } spids: [11126] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<encrypt>} {<-l>}) (C {<grep>} {<-q>} {<Id.Lit_Other '^'> <des>}) ] negated: F stderr_indices: [] ) ] ) action: [ (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike val) right: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike val) right: {<Id.Lit_Digits 2>} ) ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'enctypes['> name: enctypes index: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name enctypes> var_name: enctypes prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) op: assign_op.Equal rhs: {<des-cbc-md5>} spids: [11169] ) ] redirects: [] ) ] spids: [11140 11156] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name enctypes> var_name: enctypes prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } right: {<0>} ) redirects: [] ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'No enctypes are supported'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ) (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Please enable arcfour or 1DES, then re-join; see cryptoadm(1M)' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [11193 11212] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_gt left: {($ Id.VSub_DollarName level)} right: {<2>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName object))} ) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 11301 stdin_parts: [ <'dn: '> ($ Id.VSub_DollarName dn) <'\n'> <'changetype: modify\n'> <'replace: msDS-SupportedEncryptionTypes\n'> <'msDS-SupportedEncryptionTypes: '> ($ Id.VSub_DollarName val) <'\n'> ] ) ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<ldapmodify>} {<-h>} {(DQ ($ Id.VSub_DollarName dc))} {($ Id.VSub_DollarName ldap_args)} {<-f>} {(DQ ($ Id.VSub_DollarName object))} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Warning: Could not set the supported encryption type for computer account' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ) ] spids: [11326 11339] ) ] else_action: [] redirects: [] ) ] spids: [11265 11278] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName object))} ) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 11426 stdin_parts: [ <'dn: '> ($ Id.VSub_DollarName dn) <'\n'> <'changetype: modify\n'> <'replace: userAccountControl\n'> <'userAccountControl: '> ($ Id.VSub_DollarName userAccountControl) <'\n'> ] ) ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<ldapmodify>} {<-h>} {(DQ ($ Id.VSub_DollarName dc))} {($ Id.VSub_DollarName ldap_args)} {<-f>} {(DQ ($ Id.VSub_DollarName object))} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'ldapmodify failed to modify account attribute'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [11451 11464] ) ] else_action: [] redirects: [] ) (C {<set>} {<-A>} {<args>} {<-->}) (command.ForEach iter_names: [enctype] iterable: (for_iter.Words words: [ { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name enctypes> var_name: enctypes bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'args['> name: args index: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name args> var_name: args prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) op: assign_op.Equal rhs: {<-e>} spids: [11525] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'args['> name: args index: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name args> var_name: args prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName enctype)} spids: [11545] ) ] redirects: [] ) ] ) redirects: [] ) (command.Simple words: [{<rm>} {($ Id.VSub_DollarName new_keytab)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName object))} ) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 11624 stdin_parts: [ <'dn: '> ($ Id.VSub_DollarName dn) <'\n'> <'changetype: modify\n'> <'add: servicePrincipalName\n'> <'servicePrincipalName: nfs/'> (${ Id.VSub_Name fqdn) <'\n'> <'servicePrincipalName: HTTP/'> (${ Id.VSub_Name fqdn) <'\n'> <'servicePrincipalName: root/'> (${ Id.VSub_Name fqdn) <'\n'> <'servicePrincipalName: cifs/'> (${ Id.VSub_Name fqdn) <'\n'> <'servicePrincipalName: host/'> (${ Id.VSub_Name upcase_nodename) <'\n'> ] ) ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<ldapmodify>} {<-h>} {(DQ ($ Id.VSub_DollarName dc))} {($ Id.VSub_DollarName ldap_args)} {<-f>} {(DQ ($ Id.VSub_DollarName object))} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'ldapmodify failed to modify account attribute'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [11649 11662] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'salt='> name:salt) op: assign_op.Equal rhs: {<'host/'> (${ Id.VSub_Name locase_nodename) <.> (${ Id.VSub_Name domain) <Id.Lit_At '@'> (${ Id.VSub_Name realm) } spids: [11711] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'skeys='> name:skeys) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {<'host/'> (${ Id.VSub_Name fqdn) <Id.Lit_At '@'> (${ Id.VSub_Name realm)} {<'nfs/'> (${ Id.VSub_Name fqdn) <Id.Lit_At '@'> (${ Id.VSub_Name realm)} {<'HTTP/'> (${ Id.VSub_Name fqdn) <Id.Lit_At '@'> (${ Id.VSub_Name realm)} ] ) } spids: [11727] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'skeys+='> name:skeys) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {<'root/'> (${ Id.VSub_Name fqdn) <Id.Lit_At '@'> (${ Id.VSub_Name realm)} {<'cifs/'> (${ Id.VSub_Name fqdn) <Id.Lit_At '@'> (${ Id.VSub_Name realm)} ] ) } spids: [11758] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'skeys+='> name:skeys) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(${ Id.VSub_Name netbios_nodename) <Id.Lit_At '@'> (${ Id.VSub_Name realm)} {<'host/'> (${ Id.VSub_Name upcase_nodename) <Id.Lit_At '@'> (${ Id.VSub_Name realm) } ] ) } spids: [11780] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'skeys+='> name:skeys) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {<'cifs/'> (${ Id.VSub_Name upcase_nodename) <Id.Lit_At '@'> (${ Id.VSub_Name realm) } ] ) } spids: [11801] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ks_args='> name:ks_args) op: assign_op.Equal rhs: { (DQ <'-n -s '> ($ Id.VSub_DollarName salt) <' -v '> ($ Id.VSub_DollarName kvno) <' -k '> ($ Id.VSub_DollarName new_keytab) <' '> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name args> var_name: args bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } spids: [11815] ) ] redirects: [] ) (command.ForEach iter_names: [skey] iterable: (for_iter.Words words: [ { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name skeys> var_name: skeys bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ] ) body: (command.DoGroup children: [ (command.Pipeline children: [ (C {<printf>} {(DQ <'%s'>)} {(DQ ($ Id.VSub_DollarName newpw))}) (command.Simple words: [ {($ Id.VSub_DollarName KSETPW)} {($ Id.VSub_DollarName ks_args)} {($ Id.VSub_DollarName skey)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Failed to set password'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [11878 11891] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (C {<doKRB5config>}) (C {<addDNSRR>} {($ Id.VSub_DollarName dom)}) (C {<setSMB>} {($ Id.VSub_DollarName dom)} {($ Id.VSub_DollarName dc)}) (C {<printf>} {<-->} { (DQ <---------------------------------------------------> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Setup COMPLETE'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ) (command.Simple words: [{<kdestroy>} {<-q>}] redirects: [ (redir op: <Id.Redir_Great '1>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP_FILE)} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName TMP_FILE)}) (command.Simple words: [{<rm>} {<-rf>} {($ Id.VSub_DollarName TMPDIR)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KRB5_CONFIG_FILE='> name:KRB5_CONFIG_FILE) op: assign_op.Equal rhs: {<'/etc/krb5/krb5.conf'>} spids: [12029] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KRB5_KEYTAB_FILE='> name:KRB5_KEYTAB_FILE) op: assign_op.Equal rhs: {<'/etc/krb5/krb5.keytab'>} spids: [12032] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RESOLV_CONF_FILE='> name:RESOLV_CONF_FILE) op: assign_op.Equal rhs: {<'/etc/resolv.conf'>} spids: [12035] ) ] redirects: [] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KLOOKUP='> name:KLOOKUP) op: assign_op.Equal rhs: {<'/usr/lib/krb5/klookup'>} spids: [12039] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_bin>} {($ Id.VSub_DollarName KLOOKUP)}) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KSETPW='> name:KSETPW) op: assign_op.Equal rhs: {<'/usr/lib/krb5/ksetpw'>} spids: [12047] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_bin>} {($ Id.VSub_DollarName KSETPW)}) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KSMB='> name:KSMB) op: assign_op.Equal rhs: {<'/usr/lib/krb5/ksmb'>} spids: [12055] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_bin>} {($ Id.VSub_DollarName KSMB)}) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KDYNDNS='> name:KDYNDNS) op: assign_op.Equal rhs: {<'/usr/lib/krb5/kdyndns'>} spids: [12063] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_bin>} {($ Id.VSub_DollarName KDYNDNS)}) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KCONF='> name:KCONF) op: assign_op.Equal rhs: {<'/usr/lib/krb5/kconf'>} spids: [12071] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_bin>} {($ Id.VSub_DollarName KCONF)}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dns_lookup='> name:dns_lookup) op: assign_op.Equal rhs: {<no>} spids: [12080] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ask_fqdns='> name:ask_fqdns) op: assign_op.Equal rhs: {<no>} spids: [12083] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'adddns='> name:adddns) op: assign_op.Equal rhs: {<no>} spids: [12086] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'no_keytab='> name:no_keytab) op: assign_op.Equal rhs: {<no>} spids: [12089] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checkval='> name:checkval) op: assign_op.Equal rhs: {(DQ )} spids: [12092] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'profile='> name:profile) op: assign_op.Equal rhs: {(DQ )} spids: [12096] ) ] redirects: [] ) (C {<typeset>} {<-u>} {<realm>}) (C {<typeset>} {<-l>} {<hostname>} {<KDC>}) (C {<export>} {<Id.Lit_VarLike 'TMPDIR='> (DQ <'/var/run/kclient'>)}) (command.Simple words: [{<mkdir>} {($ Id.VSub_DollarName TMPDIR)}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>}) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Can not create directory: %s'>)}) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName TMPDIR)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [12134 12147] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMP_FILE='> name:TMP_FILE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mktemp>} {<-q>} {<-t>} {<kclient-tmpfile.XXXXXX>}) right: <Id.Eof_RParen _> ) } spids: [12181] ) ] redirects: [] ) (C {<export>} {<Id.Lit_VarLike 'KRB5_CONFIG='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mktemp>} {<-q>} {<-t>} {<kclient-krb5conf.XXXXXX>}) right: <Id.Eof_RParen _> ) } ) (C {<export>} {<Id.Lit_VarLike 'KRB5CCNAME='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mktemp>} {<-q>} {<-t>} {<kclient-krb5ccache.XXXXXX>}) right: <Id.Eof_RParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new_keytab='> name:new_keytab) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mktemp>} {<-q>} {<-t>} {<kclient-krb5keytab.XXXXXX>}) right: <Id.Eof_RParen _> ) } spids: [12219] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName TMP_FILE)} ) right: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName KRB5_CONFIG)} ) right: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName KRB5CCNAME)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName new_keytab)} ) ) ) ) redirects: [] ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Can not create temporary files, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [12231 12259] ) ] else_action: [] redirects: [] ) (C {<trap>} {(DQ <'exiting 1'>)} {<HUP>} {<INT>} {<QUIT>} {<TERM>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_d child:{<'/usr/bin'>}) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_d child:{<'/usr/sbin'>}) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH) op: assign_op.Equal rhs: {<'/usr/bin'> <Id.Lit_Colon ':'> <'/usr/sbin'> <Id.Lit_Colon ':'> <'/usr/local/bin'> <Id.Lit_Colon ':'> <'/usr/local/sbin'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PATH) } spids: [12344] ) ] redirects: [] ) (C {<export>} {<PATH>}) ] spids: [12330 12341] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Directory /usr/sbin not found, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] redirects: [] ) ] spids: [12316 12327] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Directory /usr/bin not found, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] redirects: [] ) (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Starting client setup'>)}) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<printf>} {<-->} {(DQ <---------------------------------------------------> <Id.Lit_BadBackslash '\\'> <n>)} ) (command.Simple words: [{<id>}] redirects: [ (redir op: <Id.Redir_Great '1>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP_FILE)} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<egrep>} {<-s>} { (DQ <'uid=0'> <Id.Lit_BadBackslash '\\'> <'(root'> <Id.Lit_BadBackslash '\\'> <')'> ) } {($ Id.VSub_DollarName TMP_FILE)} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Id.Lit_Colon ':'>})] spids: [12485 12502] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Administrative privileges are required to run this script, exiting' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] redirects: [] ) ] spids: [12469 12482] ) ] else_action: [ (command.Sentence child: (C {<cat>} {($ Id.VSub_DollarName TMP_FILE)}) terminator: <Id.Op_Semi _> ) (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'uid check failed, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'uname='> name:uname) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<uname>} {<-n>}) right: <Id.Eof_RParen _> ) } spids: [12576] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hostname='> name:hostname) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name uname> var_name: uname suffix_op: (suffix_op.Unary op: <Id.VOp1_DPercent '%%'> arg_word: {<.> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [12583] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTIND='> name:OPTIND) op: assign_op.Equal rhs: {<1>} spids: [12601] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (C {<getopts>} {<nD> <Id.Lit_Colon ':'> <Kp> <Id.Lit_Colon ':'> <R> <Id.Lit_Colon ':'> <k> <Id.Lit_Colon ':'> <a> <Id.Lit_Colon ':'> <c> <Id.Lit_Colon ':'> <d> <Id.Lit_Colon ':'> <f> <Id.Lit_Colon ':'> <h> <Id.Lit_Colon ':'> <m> <Id.Lit_Colon ':'> <s> <Id.Lit_Colon ':'> <T> <Id.Lit_Colon ':'> } {<OPTIONS>} ) ] ) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName OPTIONS)} arms: [ (case_arm pat_list: [{<D>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName options) <' -D'>)} spids: [12648] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'domain_list='> name: domain_list ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OPTARG))} spids: [12655] ) ] redirects: [] ) ] spids: [12645 12646 12661 -1] ) (case_arm pat_list: [{<K>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName options) <' -K'>)} spids: [12667] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'no_keytab='> name:no_keytab) op: assign_op.Equal rhs: {<yes>} spids: [12674] ) ] redirects: [] ) ] spids: [12664 12665 12678 -1] ) (case_arm pat_list: [{<R>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName options) <' -R'>)} spids: [12684] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'realm='> name:realm) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OPTARG))} spids: [12691] ) ] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checkval='> name:checkval) op: assign_op.Equal rhs: {(DQ <REALM>)} spids: [12697] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_value>} {($ Id.VSub_DollarName realm)}) ] spids: [12681 12682 12708 -1] ) (case_arm pat_list: [{<T>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName options) <' -T'>)} spids: [12714] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'type='> name:type) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OPTARG))} spids: [12721] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName type)} right: {<ms_ad>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msad='> name:msad) op: assign_op.Equal rhs: {<yes>} spids: [12743] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'adddns='> name:adddns) op: assign_op.Equal rhs: {<yes>} spids: [12747] ) ] redirects: [] ) ] spids: [12727 12740] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'non_solaris='> name: non_solaris ) op: assign_op.Equal rhs: {<yes>} spids: [12754] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'no_keytab='> name: no_keytab ) op: assign_op.Equal rhs: {<yes>} spids: [12758] ) ] redirects: [] ) ] redirects: [] ) ] spids: [12711 12712 12765 -1] ) (case_arm pat_list: [{<a>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName options) <' -a'>)} spids: [12771] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ADMIN_PRINC='> name: ADMIN_PRINC ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OPTARG))} spids: [12778] ) ] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checkval='> name:checkval) op: assign_op.Equal rhs: {(DQ <ADMIN_PRINC>)} spids: [12784] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_value>} {($ Id.VSub_DollarName ADMIN_PRINC)}) ] spids: [12768 12769 12795 -1] ) (case_arm pat_list: [{<c>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName options) <' -c'>)} spids: [12801] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'filepath='> name:filepath) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OPTARG))} spids: [12808] ) ] redirects: [] ) ] spids: [12798 12799 12814 -1] ) (case_arm pat_list: [{<d>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName options) <' -d'>)} spids: [12820] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dnsarg='> name:dnsarg) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OPTARG))} spids: [12827] ) ] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checkval='> name:checkval) op: assign_op.Equal rhs: {(DQ <DNS_OPTIONS>)} spids: [12833] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_value>} {($ Id.VSub_DollarName dnsarg)}) ] spids: [12817 12818 12844 -1] ) (case_arm pat_list: [{<f>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName options) <' -f'>)} spids: [12850] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fqdnlist='> name:fqdnlist) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OPTARG))} spids: [12857] ) ] redirects: [] ) ] spids: [12847 12848 12863 -1] ) (case_arm pat_list: [{<h>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName options) <' -h'>)} spids: [12869] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'logical_hn='> name:logical_hn) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OPTARG))} spids: [12876] ) ] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checkval='> name:checkval) op: assign_op.Equal rhs: {(DQ <LOGICAL_HOSTNAME>)} spids: [12882] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_value>} {($ Id.VSub_DollarName logical_hn)}) ] spids: [12866 12867 12893 -1] ) (case_arm pat_list: [{<k>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName options) <' -k'>)} spids: [12899] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kdc_list='> name:kdc_list) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OPTARG))} spids: [12906] ) ] redirects: [] ) ] spids: [12896 12897 12912 -1] ) (case_arm pat_list: [{<m>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName options) <' -m'>)} spids: [12918] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KDC='> name:KDC) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OPTARG))} spids: [12925] ) ] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checkval='> name:checkval) op: assign_op.Equal rhs: {(DQ <KDC>)} spids: [12931] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_value>} {($ Id.VSub_DollarName KDC)}) ] spids: [12915 12916 12942 -1] ) (case_arm pat_list: [{<n>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName options) <' -n'>)} spids: [12948] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'add_nfs='> name:add_nfs) op: assign_op.Equal rhs: {<yes>} spids: [12955] ) ] redirects: [] ) ] spids: [12945 12946 12959 -1] ) (case_arm pat_list: [{<p>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName options) <' -p'>)} spids: [12965] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'profile='> name:profile) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OPTARG))} spids: [12972] ) ] redirects: [] ) (C {<read_profile>} {($ Id.VSub_DollarName profile)}) ] spids: [12962 12963 12983 -1] ) (case_arm pat_list: [{<s>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName options) <' -s'>)} spids: [12989] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'svc_list='> name:svc_list) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OPTARG))} spids: [12996] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SVCs='> name:SVCs) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name svc_list> var_name: svc_list suffix_op: (suffix_op.PatSub pat: {<','>} replace: {<' '>} replace_mode: Id.Lit_Slash slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) } spids: [13002] ) ] redirects: [] ) ] spids: [12986 12987 13013 -1] ) (case_arm pat_list: [{(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')}] action: [(C {<usage>})] spids: [13016 13017 13022 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<usage>})] spids: [13025 13026 13031 -1] ) ] redirects: [] ) ] ) redirects: [] ) (C {<shift>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName OPTIND)} {<->} {<1>}) right: <Id.Backtick_Right '`'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName options)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Id.Lit_Colon ':'>})] spids: [13057 13068] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_Pound '#')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<usage>})] spids: [13076 13089] ) ] else_action: [] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName options)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<query>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Is this a client of a non-Solaris KDC'>)}) right: <Id.Eof_RParen _> ) <' ?'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'non_solaris='> name:non_solaris) op: assign_op.Equal rhs: {($ Id.VSub_DollarName answer)} spids: [13137] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName non_solaris)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Which type of KDC is the server'>)}) right: <Id.Eof_RParen _> ) <':'> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'ms_ad: Microsoft Active Directory'>)}) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'mit: MIT KDC server'>)}) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'heimdal: Heimdal KDC server'>)}) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <t> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'shishi: Shishi KDC server'>)}) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Enter required KDC type'>)}) right: <Id.Eof_RParen _> ) <': '> ) } ) (C {<read>} {<kdctype>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName kdctype)} right: {<ms_ad>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msad='> name:msad) op: assign_op.Equal rhs: {<yes>} spids: [13276] ) ] redirects: [] ) ] spids: [13260 13273] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName kdctype)} right: {<mit>} ) right: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName kdctype)} right: {<heimdal>} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName kdctype)} right: {<shishi>} ) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'no_keytab='> name: no_keytab ) op: assign_op.Equal rhs: {<yes>} spids: [13314] ) ] redirects: [] ) ] spids: [13280 13311] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Invalid KDC type option, valid types are ms_ad, mit, heimdal, or shishi, exiting' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<error_message>}) ] redirects: [] ) ] spids: [13141 13154] ) ] else_action: [] redirects: [] ) ] spids: [13109 13120] ) ] else_action: [] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName msad)} right: {<yes>} ) redirects: [] ) (C {<join_domain>}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName RESOLV_CONF_FILE)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'client_machine='> name:client_machine) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName KLOOKUP)}) right: <Id.Backtick_Right '`'> ) } spids: [13391] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName adddns)} right: {<no>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < '%s does not have a DNS record and is required for Kerberos setup' > ) } ) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName hostname)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [13416 13429] ) ] else_action: [] redirects: [] ) ] spids: [13400 13413] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'adddns='> name:adddns) op: assign_op.Equal rhs: {<no>} spids: [13476] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hostname='> name:hostname) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name client_machine> var_name: client_machine suffix_op: (suffix_op.Unary op: <Id.VOp1_DPercent '%%'> arg_word: {<.> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [13481] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'domain='> name:domain) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name client_machine> var_name: client_machine suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Other '*'> <.>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [13490] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'short_fqdn='> name:short_fqdn) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name domain> var_name: domain suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Other '*'> <.> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [13503] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'short_fqdn='> name:short_fqdn) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName short_fqdn)}) (C {<grep>} {(DQ <Id.Lit_BadBackslash '\\'> <.>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [13513] ) ] redirects: [] ) ] spids: [13377 13388] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'%s does not exist and is required for Kerberos setup'>)}) right: <Id.Eof_RParen _> ) <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName RESOLV_CONF_FILE)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Refer to resolv.conf(4), exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] redirects: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<check_nss_conf>}) (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'/etc/nsswitch.conf does not make use of DNS for hosts and/or ipnodes'>)} ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName fqdnlist)}) redirects: [] ) (C {<verify_fqdnlist>} {(DQ ($ Id.VSub_DollarName fqdnlist))}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName dnsarg)} ) right: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName options)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName filepath)} ) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<query>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Do you want to use DNS for kerberos lookups'>)}) right: <Id.Eof_RParen _> ) <' ?'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName answer)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Valid DNS lookup options are dns_lookup_kdc, dns_lookup_realm,' > <Id.Lit_BadBackslash '\\'> <'nand dns_fallback. Refer krb5.conf(4) for further details'> ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Enter required DNS option'>)}) right: <Id.Eof_RParen _> ) <': '> ) } ) (C {<read>} {<dnsarg>}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checkval='> name:checkval) op: assign_op.Equal rhs: {(DQ <DNS_OPTIONS>)} spids: [13726] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_value>} {($ Id.VSub_DollarName dnsarg)}) (C {<set_dns_value>} {($ Id.VSub_DollarName dnsarg)}) ] spids: [13669 13682] ) ] else_action: [] redirects: [] ) ] spids: [13627 13652] ) ] else_action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName dnsarg)}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dnsarg='> name:dnsarg) op: assign_op.Equal rhs: {<none>} spids: [13757] ) ] redirects: [] ) ] ) (C {<set_dns_value>} {($ Id.VSub_DollarName dnsarg)}) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName kdc_list)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName KDC)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_names: [kdc] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName kdc_list)}]) body: (command.DoGroup children: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KDC='> name:KDC) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName kdc))} spids: [13814] ) ] redirects: [] ) ] spids: [13782 13793] ) ] else_action: [] redirects: [] ) ] spids: [13768 13779] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName realm)}) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Enter the Kerberos realm'>)}) right: <Id.Eof_RParen _> ) <': '> ) } ) (C {<read>} {<realm>}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checkval='> name:checkval) op: assign_op.Equal rhs: {(DQ <REALM>)} spids: [13858] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_value>} {($ Id.VSub_DollarName realm)}) ] spids: [13825 13836] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{($ Id.VSub_DollarName KDC)}) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Specify the master KDC hostname for the above realm'>)}) right: <Id.Eof_RParen _> ) <': '> ) } ) (C {<read>} {<KDC>}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checkval='> name:checkval) op: assign_op.Equal rhs: {(DQ <KDC>)} spids: [13903] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_value>} {($ Id.VSub_DollarName KDC)}) ] spids: [13870 13881] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FKDC='> name:FKDC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName KLOOKUP)} {($ Id.VSub_DollarName KDC)}) right: <Id.Backtick_Right '`'> ) } spids: [13916] ) ] redirects: [] ) (C {<ping_check>} {($ Id.VSub_DollarName FKDC)} {(DQ <KDC>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName kdc_list)} ) right: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName options)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName filepath)} ) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<query>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Do you have any slave KDC(s)'>)}) right: <Id.Eof_RParen _> ) <' ?'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName answer)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Enter a comma-separated list of slave KDC host names'>)} ) right: <Id.Eof_RParen _> ) <': '> ) } ) (C {<read>} {<kdc_list>}) ] spids: [13986 13999] ) ] else_action: [] redirects: [] ) ] spids: [13944 13969] ) ] else_action: [] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName kdc_list)}) redirects: [] ) (C {<verify_kdcs>} {(DQ ($ Id.VSub_DollarName kdc_list))}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName options)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<query>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Will this client need service keys'>)}) right: <Id.Eof_RParen _> ) <' ?'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName answer)} right: {<no>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'no_keytab='> name:no_keytab) op: assign_op.Equal rhs: {<yes>} spids: [14096] ) ] redirects: [] ) ] spids: [14080 14093] ) ] else_action: [] redirects: [] ) ] spids: [14052 14063] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName options)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<query>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Is this client a member of a cluster that uses a logical host name'>)} ) right: <Id.Eof_RParen _> ) <' ?'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName answer)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Specify the logical hostname of the cluster'>)}) right: <Id.Eof_RParen _> ) <': '> ) } ) (C {<read>} {<logical_hn>}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checkval='> name:checkval) op: assign_op.Equal rhs: {(DQ <LOGICAL_HOSTNAME>)} spids: [14180] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<check_value>} {($ Id.VSub_DollarName logical_hn)}) (C {<setup_lhn>}) ] spids: [14145 14158] ) ] else_action: [] redirects: [] ) ] spids: [14117 14128] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName domain_list)} ) right: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName options)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName filepath)} ) ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<query>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Do you have multiple domains/hosts to map to realm %s'>)}) right: <Id.Eof_RParen _> ) <' ?'> ) } {($ Id.VSub_DollarName realm)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName answer)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ <'Enter a comma-separated list of domain/hosts\n'> <'to map to the default realm'> ) } ) right: <Id.Eof_RParen _> ) <': '> ) } ) (C {<read>} {<domain_list>}) ] spids: [14244 14257] ) ] else_action: [] redirects: [] ) ] spids: [14199 14224] ) ] else_action: [] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{<domain_list>}) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'domain_list='> name:domain_list) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name domain_list> var_name: domain_list suffix_op: (suffix_op.PatSub pat: {<','>} replace: {<' '>} replace_mode: Id.Lit_Slash slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) } spids: [14294] ) ] redirects: [] ) ] ) (C {<writeup_krb5_conf>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName options)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<query>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Do you plan on doing Kerberized nfs'>)}) right: <Id.Eof_RParen _> ) <' ?'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'add_nfs='> name:add_nfs) op: assign_op.Equal rhs: {($ Id.VSub_DollarName answer)} spids: [14360] ) ] redirects: [] ) ] spids: [14332 14343] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName add_nfs)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<modify_nfssec_conf>}) (C {<svcadm>} {<enable>} {<svc> <Id.Lit_Colon ':'> <'/network/rpc/gss'> <Id.Lit_Colon ':'> <default>} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_ne left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Warning: could not enable gss service'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ) ] ) ] spids: [14366 14379] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName options)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<query>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Do you want to update /etc/pam.conf'>)}) right: <Id.Eof_RParen _> ) <' ?'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName answer)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Enter a list of PAM service names in the following format: service:{first|only|optional}[,..]' > ) } ) right: <Id.Eof_RParen _> ) <': '> ) } ) (C {<read>} {<svc_list>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SVCs='> name:SVCs) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name svc_list> var_name: svc_list suffix_op: (suffix_op.PatSub pat: {<','>} replace: {<' '>} replace_mode: Id.Lit_Slash slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) } spids: [14502] ) ] redirects: [] ) ] spids: [14467 14480] ) ] else_action: [] redirects: [] ) ] spids: [14439 14450] ) ] else_action: [] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{($ Id.VSub_DollarName svc_list)}) redirects: [] ) (C {<update_pam_conf>}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName options)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_z child: {($ Id.VSub_DollarName filepath)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<query>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Do you want to copy over the master krb5.conf file'>)}) right: <Id.Eof_RParen _> ) <' ?'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName answer)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Enter the pathname of the file to be copied'>)}) right: <Id.Eof_RParen _> ) <': '> ) } ) (C {<read>} {<filepath>}) ] spids: [14573 14586] ) ] else_action: [] redirects: [] ) ] spids: [14539 14556] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalAnd left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName filepath)} ) right: (bool_expr.Unary op_id: Id.BoolUnary_r child: {($ Id.VSub_DollarName filepath)} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {($ Id.VSub_DollarName filepath)} {($ Id.VSub_DollarName KRB5_CONFIG)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_QMark '?')} right: {<0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Copied %s to %s'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName filepath)} {($ Id.VSub_DollarName KRB5_CONFIG)} ) ] spids: [14640 14653] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Copy of %s failed, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName filepath)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] redirects: [] ) ] spids: [14613 14630] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName filepath)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'%s not found, exiting'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName filepath)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (C {<error_message>}) ] spids: [14705 14716] ) ] else_action: [] redirects: [] ) (C {<doKRB5config>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName no_keytab)} right: {<yes>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<setup_keytab>})] spids: [14759 14772] ) ] else_action: [ (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Note: %s file not created, please refer to verify_ap_req_nofail in krb5.conf(4) for the implications' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } {($ Id.VSub_DollarName KRB5_KEYTAB_FILE)} ) (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Client will also not be able to host services that use Kerberos'>)} ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ) ] redirects: [] ) (C {<printf>} {<-->} { (DQ <Id.Lit_BadBackslash '\\'> <n---------------------------------------------------> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} {(DQ <'Setup COMPLETE'>)}) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {($ Id.VSub_DollarName logical_hn)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <n> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gettext>} { (DQ < 'Note, you will need to securely transfer the /etc/krb5/krb5.keytab and /etc/krb5/krb5.conf files to all the other members of your cluster' > ) } ) right: <Id.Eof_RParen _> ) <.> <Id.Lit_BadBackslash '\\'> <n> ) } ) ] spids: [14859 14870] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<kdestroy>} {<-q>}] redirects: [ (redir op: <Id.Redir_Great '1>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP_FILE)} ) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName TMP_FILE)}) (command.Simple words: [{<rm>} {<-rf>} {($ Id.VSub_DollarName TMPDIR)}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>}) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )