378) Fixed a bug parsing runas modifiers. If a user spec contained multiple
runas specs, the latter ones may not be applied.
+
+379) #uid now works in a RunasAlias
HP-UX 11.00 hp700 ansi-c 1.5.5b1 Alek Komarnitsky --with-C2
HP-UX 11.00 hp700 bundled cc 1.5.5p5 Lynn Osburn none
HP-UX 10.20 hp700 gcc 2.8.1 1.5.6b2 Jeff Earickson --with-DCE
-Ultrix 4.3 mips bundled cc 1.5 Maria Magnusson none
+Ultrix 4.3 mips bundled cc 1.6.1 Todd Miller none
Ultrix 4.3 mips gcc2.7.2.1 1.5.9 Todd Miller --with-skey
IRIX 4.05H mips gcc2.6.3 1.5.3 Todd Miller none
IRIX 4.05H mips unbundled cc 1.4 Todd Miller none
{
++sudolineno;
LEXTRACE("\n");
+ BEGIN INITIAL;
return(COMMENT);
} /* return newline */
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 144 "parse.lex"
+#line 145 "parse.lex"
{
++sudolineno;
LEXTRACE("\n");
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 150 "parse.lex"
+#line 151 "parse.lex"
{
LEXTRACE("ARG ");
fill_args(yytext, yyleng, sawspace);
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 156 "parse.lex"
+#line 157 "parse.lex"
{
LEXTRACE(", ");
return(',');
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 161 "parse.lex"
+#line 162 "parse.lex"
{
if (yyleng % 2 == 1)
return('!'); /* return '!' */
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 166 "parse.lex"
+#line 167 "parse.lex"
{
LEXTRACE("= ");
return('=');
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 171 "parse.lex"
+#line 172 "parse.lex"
{
LEXTRACE(": ");
return(':');
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 176 "parse.lex"
+#line 177 "parse.lex"
{
/* cmnd does not require passwd for this user */
LEXTRACE("NOPASSWD ");
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 182 "parse.lex"
+#line 183 "parse.lex"
{
/* cmnd requires passwd for this user */
LEXTRACE("PASSWD ");
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 188 "parse.lex"
+#line 189 "parse.lex"
{
/* netgroup */
fill(yytext, yyleng);
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 195 "parse.lex"
+#line 196 "parse.lex"
{
/* UN*X group */
fill(yytext, yyleng);
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 202 "parse.lex"
+#line 203 "parse.lex"
{
fill(yytext, yyleng);
LEXTRACE("NTWKADDR ");
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 208 "parse.lex"
+#line 209 "parse.lex"
{
fill(yytext, yyleng);
LEXTRACE("NTWKADDR ");
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 214 "parse.lex"
+#line 215 "parse.lex"
{
fill(yytext, yyleng);
LEXTRACE("FQHOST ");
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 220 "parse.lex"
+#line 221 "parse.lex"
{
BEGIN GOTRUNAS;
LEXTRACE("RUNAS ");
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 226 "parse.lex"
+#line 227 "parse.lex"
{
/* Runas_Alias user can run command as or ALL */
if (strcmp(yytext, "ALL") == 0) {
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 238 "parse.lex"
+#line 239 "parse.lex"
{
/* username/uid that user can run command as */
fill(yytext, yyleng);
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 245 "parse.lex"
+#line 246 "parse.lex"
{
BEGIN INITIAL;
}
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 249 "parse.lex"
+#line 250 "parse.lex"
{
if (strcmp(yytext, "ALL") == 0) {
LEXTRACE("ALL ");
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 260 "parse.lex"
+#line 261 "parse.lex"
{
LEXTRACE("WORD(3) ");
fill(yytext, yyleng);
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 266 "parse.lex"
+#line 267 "parse.lex"
{
BEGIN GOTDEFS;
if (yyleng == 9) {
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 283 "parse.lex"
+#line 284 "parse.lex"
{
fill(yytext, yyleng);
if (*yytext == 'H') {
}
if (*yytext == 'R') {
LEXTRACE("RUNASALIAS ");
+ BEGIN GOTRUNAS;
return(RUNASALIAS);
}
}
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 303 "parse.lex"
+#line 305 "parse.lex"
{
/* directories can't have args... */
if (yytext[yyleng - 1] == '/') {
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 316 "parse.lex"
+#line 318 "parse.lex"
{
/* a word */
fill(yytext, yyleng);
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 323 "parse.lex"
+#line 325 "parse.lex"
{
LEXTRACE("ERROR ");
return(ERROR);
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 328 "parse.lex"
+#line 330 "parse.lex"
ECHO;
YY_BREAK
-#line 1979 "lex.yy.c"
+#line 1981 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(GOTCMND):
case YY_STATE_EOF(GOTRUNAS):
return 0;
}
#endif
-#line 328 "parse.lex"
+#line 330 "parse.lex"
static void
fill(s, len)