PROGS = @PROGS@
SRCS = check.c getspwuid.c find_path.c logging.c parse.c sudo.c secureware.c \
- goodpath.c sudo_setenv.c parse.yacc parse.lex visudo.c interfaces.c
+ goodpath.c sudo_setenv.c parse.yacc parse.lex visudo.c interfaces.c \
+ check_sia.c
PARSEOBJS = sudo.tab.o lex.yy.o
-SUDOBJS = check.o getspwuid.o find_path.o logging.o parse.o sudo.o goodpath.o \
- sudo_setenv.o interfaces.o secureware.o @DCE_OBJS@ @TGETPASS@
+SUDOBJS = check.o getspwuid.o find_path.o logging.o parse.o sudo.o \
+ secureware.o goodpath.o sudo_setenv.o interfaces.o \
+ check_sia.o @DCE_OBJS@ @TGETPASS@
VISUDOBJS = visudo.o
ins_classic.h ins_csops.h ins_goons.h insults.h interfaces.c \
logging.c parse.c parse.lex parse.yacc pathnames.h.in \
putenv.c strdup.c sudo.c sudo.h sudo_setenv.c testsudoers.c \
- tgetpass.c utime.c visudo.c secureware.c
+ tgetpass.c utime.c visudo.c secureware.c check_sia.c
all: $(PROGS)
if (rtn == 2)
reminder(); /* do the reminder if ticket file is new */
#endif /* NO_MESSAGE */
-#ifdef HAVE_PAM
+#ifdef HAVE_SIA
+ sia_attempt_auth();
+#elif HAVE_PAM
pam_attempt_auth();
-#else /* !HAVE_PAM */
+#else /* !HAVE_SIA && !HAVE_PAM */
check_passwd();
-#endif /* HAVE_PAM */
+#endif /* HAVE_SIA */
}
update_timestamp();
# define HAVE_KERB4
#endif /* HAVE_KERB5 */
+/* Define if you use SIA. */
+#undef HAVE_SIA
+
/* Define if you use PAM. */
#undef HAVE_PAM
;;
esac])
+AC_ARG_WITH(sia, [ --with-sia enable SIA support],
+[case $with_sia in
+ yes) AC_DEFINE(HAVE_SIA)
+ AC_MSG_CHECKING(whether to use SIA authentication)
+ AC_MSG_RESULT(yes)
+ ;;
+ no) ;;
+ *) echo "Sorry, --with-sia does not take an argument."
+ exit 1
+ ;;
+esac])
+
AC_ARG_WITH(pam, [ --with-pam enable PAM support],
[case $with_pam in
yes) AC_DEFINE(HAVE_PAM)
- AC_MSG_CHECKING(whether to try PAM authentication)
+ AC_MSG_CHECKING(whether to use PAM authentication)
AC_MSG_RESULT(yes)
;;
no) ;;
if test "$with_pam" = "yes"; then
echo ""
echo "You will need to customize sample.pam and install it as /etc/pam.d/sudo"
+ echo "for RedHat Linux 5.x or modify /etc/pam.conf for Solaris."
echo ""
fi
tty, cwd, runas_user);
break;
+ case BAD_ALLOCATION:
+ (void) sprintf(p,
+ "allocation failure; TTY=%s ; PWD=%s ; USER=%s ; COMMAND=",
+ tty, cwd, runas_user);
+ break;
+
default:
- strcat(p, "found a wierd error : ");
+ strcat(p, "found a weird error : ");
break;
}
"Your timestamp file has a preposterous date, ignoring.\n");
break;
+ case BAD_ALLOCATION:
+ (void) fprintf(stderr,
+ "Resource allocation failure.\n");
+ break;
+
default:
(void) fprintf(stderr,
- "Something wierd happened.\n\n");
+ "Something weird happened.\n\n");
break;
}
}
case SPOOF_ATTEMPT:
case BAD_STAMPDIR:
case BAD_STAMPFILE:
+ case BAD_ALLOCATION:
default:
return (1);
break;
#define SPOOF_ATTEMPT 0x0D
#define BAD_STAMPDIR 0x0E
#define BAD_STAMPFILE 0x0F
+#define BAD_ALLOCATION 0x10
/*
* Boolean values
void remove_timestamp __P((void));
void load_interfaces __P((void));
int check_secureware __P((char *));
+void sia_attempt_auth __P((void));
int yyparse __P((void));
YY_DECL;