MFC Makefile revision 1.53 (with changes)

MFC login.c revision 1.102
MFC login.h revision 1.6

- Conditional build of audit based on NO_AUDIT
This commit is contained in:
csjp 2007-01-20 02:25:36 +00:00
parent df19c08d41
commit cdec7f171d
3 changed files with 27 additions and 1 deletions

View File

@ -2,11 +2,18 @@
# $FreeBSD$
PROG= login
SRCS= login.c login_audit.c login_fbtab.c
SRCS= login.c login_fbtab.c
CFLAGS+=-DLOGALL
DPADD= ${LIBUTIL} ${LIBPAM}
LDADD= -lutil ${MINUSLPAM} -lbsm
.if !defined(NO_AUDIT)
SRCS+= login_audit.c
CFLAGS+= -DUSE_BSM_AUDIT
DPADD+= ${LIBBSM}
LDADD+= -lbsm
.endif
.if !defined(NO_SETUID_LOGIN)
BINOWN= root
BINMODE=4555

View File

@ -173,7 +173,9 @@ main(int argc, char *argv[])
login_cap_t *lc = NULL;
login_cap_t *lc_user = NULL;
pid_t pid;
#ifdef USE_BSM_AUDIT
char auditsuccess = 1;
#endif
(void)signal(SIGQUIT, SIG_IGN);
(void)signal(SIGINT, SIG_IGN);
@ -292,19 +294,25 @@ main(int argc, char *argv[])
pam_err = pam_start("login", username, &pamc, &pamh);
if (pam_err != PAM_SUCCESS) {
pam_syslog("pam_start()");
#ifdef USE_BSM_AUDIT
au_login_fail("PAM Error", 1);
#endif
bail(NO_SLEEP_EXIT, 1);
}
pam_err = pam_set_item(pamh, PAM_TTY, tty);
if (pam_err != PAM_SUCCESS) {
pam_syslog("pam_set_item(PAM_TTY)");
#ifdef USE_BSM_AUDIT
au_login_fail("PAM Error", 1);
#endif
bail(NO_SLEEP_EXIT, 1);
}
pam_err = pam_set_item(pamh, PAM_RHOST, hostname);
if (pam_err != PAM_SUCCESS) {
pam_syslog("pam_set_item(PAM_RHOST)");
#ifdef USE_BSM_AUDIT
au_login_fail("PAM Error", 1);
#endif
bail(NO_SLEEP_EXIT, 1);
}
@ -321,7 +329,9 @@ main(int argc, char *argv[])
(uid == (uid_t)0 || uid == (uid_t)pwd->pw_uid)) {
/* already authenticated */
rval = 0;
#ifdef USE_BSM_AUDIT
auditsuccess = 0; /* opened a terminal window only */
#endif
} else {
fflag = 0;
(void)setpriority(PRIO_PROCESS, 0, -4);
@ -338,7 +348,9 @@ main(int argc, char *argv[])
* We are not exiting here, but this corresponds to a failed
* login event, so set exitstatus to 1.
*/
#ifdef USE_BSM_AUDIT
au_login_fail("Login incorrect", 1);
#endif
(void)printf("Login incorrect\n");
failures++;
@ -364,9 +376,11 @@ main(int argc, char *argv[])
endpwent();
#ifdef USE_BSM_AUDIT
/* Audit successful login. */
if (auditsuccess)
au_login_success();
#endif
/*
* Establish the login class.
@ -953,8 +967,10 @@ bail(int sec, int eval)
{
pam_cleanup();
#ifdef USE_BSM_AUDIT
if (pwd != NULL)
audit_logout();
#endif
(void)sleep(sec);
exit(eval);
}

View File

@ -27,8 +27,11 @@
void login_fbtab(char *, uid_t, gid_t);
#ifdef USE_BSM_AUDIT
void au_login_success(void);
void au_login_fail(char *errmsg, int na);
void audit_logout(void);
#endif
extern char **environ;
extern struct passwd *pwd;