From: Todd C. Miller Date: Wed, 22 Aug 2007 22:23:59 +0000 (+0000) Subject: Replace RUNAS token with '(' and ')' tokens to make the runas X-Git-Tag: SUDO_1_7_0~420 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=add2fe02408b399e2b2334337d9bc001dbad1685;p=sudo Replace RUNAS token with '(' and ')' tokens to make the runas portion of the grammar more natural. --- diff --git a/gram.y b/gram.y index 83dfc6242..4f46444fb 100644 --- a/gram.y +++ b/gram.y @@ -122,7 +122,6 @@ yyerror(s) %token DEFAULTS_USER /* User-specific defaults entry */ %token DEFAULTS_RUNAS /* Runas-specific defaults entry */ %token DEFAULTS_CMND /* Command-specific defaults entry */ -%token RUNAS /* ( runas_list ) */ %token NOPASSWD /* no passwd req for command */ %token PASSWD /* passwd req for command (default) */ %token NOEXEC /* preload dummy execve() for cmnd */ @@ -136,6 +135,7 @@ yyerror(s) %token USERALIAS /* User_Alias keyword */ %token RUNASALIAS /* Runas_Alias keyword */ %token ':' '=' ',' '!' '+' '-' /* union member tokens */ +%token '(' ')' /* runas tokens */ %token ERROR %type cmndspec @@ -319,7 +319,7 @@ opcmnd : cmnd { runasspec : /* empty */ { $$ = NULL; } - | RUNAS runaslist { + | '(' runaslist ')' { $$ = $2; } ; diff --git a/toke.l b/toke.l index 856bdb05b..0f306aa3d 100644 --- a/toke.l +++ b/toke.l @@ -94,6 +94,7 @@ IPV6ADDR \:\:|({HEXDIGIT}\:){7}{HEXDIGIT}|({HEXDIGIT}\:){5}{HEXDIGIT}\:{DOTTEDQ HOSTNAME [[:alnum:]_-]+ WORD ([^#>!=:,\(\) \t\n\\]|\\[^\n])+ +ID #-?[0-9]+ PATH \/(\\[\,:= \t#]|[^\,:=\\ \t\n#])+ ENVAR ([^#!=, \t\n\\\"]|\\[^\n])([^#=, \t\n\\\"]|\\[^\n])* DEFVAR [a-z_]+ @@ -359,7 +360,7 @@ NOSETENV[[:blank:]]*: { \( { BEGIN GOTRUNAS; - LEXTRACE("RUNAS "); + LEXTRACE("( "); return (RUNAS); } @@ -375,7 +376,7 @@ NOSETENV[[:blank:]]*: { } } -(#[0-9-]+|{WORD}) { +({ID}|{WORD}) { /* username/uid that user can run command as */ if (!fill(yytext, yyleng)) yyterminate(); @@ -392,6 +393,7 @@ NOSETENV[[:blank:]]*: { \) { BEGIN INITIAL; + LEXTRACE(") "); } ({PATH}|sudoedit) {