From: Todd C. Miller Date: Sun, 9 Apr 1995 02:27:40 +0000 (+0000) Subject: added stubs for User_Alias support X-Git-Tag: SUDO_1_4_0~464 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dfcb0eb6ec11430e43af06c0de82aceaeadaafc7;p=sudo added stubs for User_Alias support --- diff --git a/parse.yacc b/parse.yacc index 13c342b0d..fbad974da 100644 --- a/parse.yacc +++ b/parse.yacc @@ -66,6 +66,7 @@ static int user_matched; */ #define HOST 1 #define CMND 2 +#define USER 3 /* * the matching stack @@ -125,6 +126,7 @@ char *s; %token ALL /* ALL keyword */ %token HOSTALIAS /* Host_Alias keyword */ %token CMNDALIAS /* Cmnd_Alias keyword */ +%token USERALIAS /* User_Alias keyword */ %token ':' '=' ',' '!' '.' /* union member tokens */ %token ERROR @@ -143,6 +145,8 @@ entry : COMMENT | NAME { user_matched = strcmp($1, user) == 0; } privileges + | USERALIAS useraliases + { ; } | HOSTALIAS hostaliases { ; } | CMNDALIAS cmndaliases @@ -258,6 +262,28 @@ cmndlist : cmnd | cmndlist ',' cmnd ; +useraliases : useralias + | useraliases ':' useralias + ; + +useralias : ALIAS { push; } '=' userlist { + if (user_matches == TRUE && !add_alias($1, CMND)) + YYERROR; + pop; + } + ; + +userlist : user + { ; } + | userlist ',' user + ; + +user : NAME { + /* XXX need to set user_matched */ + user_matches = strcmp($1, user) == 0; + } + ; + %%