can now log to both syslog & a file
This commit is contained in:
36
logging.c
36
logging.c
@@ -89,21 +89,22 @@ void log_error(code)
|
|||||||
mode_t oldmask;
|
mode_t oldmask;
|
||||||
register char *p;
|
register char *p;
|
||||||
register int count;
|
register int count;
|
||||||
#ifndef SYSLOG
|
#ifdef _PATH_SUDO_LOGFILE
|
||||||
register FILE *fp;
|
register FILE *fp;
|
||||||
time_t now;
|
time_t now;
|
||||||
#else
|
#endif /* _PATH_SUDO_LOGFILE */
|
||||||
|
#ifdef SYSLOG
|
||||||
register int pri; /* syslog priority */
|
register int pri; /* syslog priority */
|
||||||
char *tmp, save;
|
char *tmp, save;
|
||||||
#endif
|
#endif /* SYSLOG */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* there is no need to log the date and time twice if using syslog
|
* there is no need to log the date and time twice if using syslog
|
||||||
*/
|
*/
|
||||||
#ifndef SYSLOG
|
#ifdef _PATH_SUDO_LOGFILE
|
||||||
now = time((time_t) 0);
|
now = time((time_t) 0);
|
||||||
(void) sprintf(logline, "%19.19s : %8.8s : ", ctime(&now), user);
|
(void) sprintf(logline, "%19.19s : %8.8s : ", ctime(&now), user);
|
||||||
#endif
|
#endif /* _PATH_SUDO_LOGFILE */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* we need a pointer to the end of logline
|
* we need a pointer to the end of logline
|
||||||
@@ -116,21 +117,21 @@ void log_error(code)
|
|||||||
(void) sprintf(p, "PWD=%s ; COMMAND=", cwd);
|
(void) sprintf(p, "PWD=%s ; COMMAND=", cwd);
|
||||||
#ifdef SYSLOG
|
#ifdef SYSLOG
|
||||||
pri = Syslog_priority_OK;
|
pri = Syslog_priority_OK;
|
||||||
#endif
|
#endif /* SYSLOG */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VALIDATE_NO_USER:
|
case VALIDATE_NO_USER:
|
||||||
(void) sprintf(p, "user NOT in sudoers ; PWD=%s ; COMMAND=", cwd);
|
(void) sprintf(p, "user NOT in sudoers ; PWD=%s ; COMMAND=", cwd);
|
||||||
#ifdef SYSLOG
|
#ifdef SYSLOG
|
||||||
pri = Syslog_priority_NO;
|
pri = Syslog_priority_NO;
|
||||||
#endif
|
#endif /* SYSLOG */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VALIDATE_NOT_OK:
|
case VALIDATE_NOT_OK:
|
||||||
(void) sprintf(p, "command not allowed ; PWD=%s ; COMMAND=", cwd);
|
(void) sprintf(p, "command not allowed ; PWD=%s ; COMMAND=", cwd);
|
||||||
#ifdef SYSLOG
|
#ifdef SYSLOG
|
||||||
pri = Syslog_priority_NO;
|
pri = Syslog_priority_NO;
|
||||||
#endif
|
#endif /* SYSLOG */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VALIDATE_ERROR:
|
case VALIDATE_ERROR:
|
||||||
@@ -138,7 +139,7 @@ void log_error(code)
|
|||||||
_PATH_SUDO_SUDOERS, cwd);
|
_PATH_SUDO_SUDOERS, cwd);
|
||||||
#ifdef SYSLOG
|
#ifdef SYSLOG
|
||||||
pri = Syslog_priority_NO;
|
pri = Syslog_priority_NO;
|
||||||
#endif
|
#endif /* SYSLOG */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GLOBAL_NO_PW_ENT:
|
case GLOBAL_NO_PW_ENT:
|
||||||
@@ -146,7 +147,7 @@ void log_error(code)
|
|||||||
uid);
|
uid);
|
||||||
#ifdef SYSLOG
|
#ifdef SYSLOG
|
||||||
pri = Syslog_priority_NO;
|
pri = Syslog_priority_NO;
|
||||||
#endif
|
#endif /* SYSLOG */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PASSWORD_NOT_CORRECT:
|
case PASSWORD_NOT_CORRECT:
|
||||||
@@ -154,14 +155,14 @@ void log_error(code)
|
|||||||
TRIES_FOR_PASSWORD, cwd);
|
TRIES_FOR_PASSWORD, cwd);
|
||||||
#ifdef SYSLOG
|
#ifdef SYSLOG
|
||||||
pri = Syslog_priority_NO;
|
pri = Syslog_priority_NO;
|
||||||
#endif
|
#endif /* SYSLOG */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GLOBAL_NO_HOSTNAME:
|
case GLOBAL_NO_HOSTNAME:
|
||||||
strcat(p, "This machine does not have a hostname ");
|
strcat(p, "This machine does not have a hostname ");
|
||||||
#ifdef SYSLOG
|
#ifdef SYSLOG
|
||||||
pri = Syslog_priority_NO;
|
pri = Syslog_priority_NO;
|
||||||
#endif
|
#endif /* SYSLOG */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NO_SUDOERS_FILE:
|
case NO_SUDOERS_FILE:
|
||||||
@@ -181,21 +182,21 @@ void log_error(code)
|
|||||||
}
|
}
|
||||||
#ifdef SYSLOG
|
#ifdef SYSLOG
|
||||||
pri = Syslog_priority_NO;
|
pri = Syslog_priority_NO;
|
||||||
#endif
|
#endif /* SYSLOG */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GLOBAL_HOST_UNREGISTERED:
|
case GLOBAL_HOST_UNREGISTERED:
|
||||||
(void) sprintf(p, "gethostbyname() cannot find host %s ", host);
|
(void) sprintf(p, "gethostbyname() cannot find host %s ", host);
|
||||||
#ifdef SYSLOG
|
#ifdef SYSLOG
|
||||||
pri = Syslog_priority_NO;
|
pri = Syslog_priority_NO;
|
||||||
#endif
|
#endif /* SYSLOG */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
strcat(p, "found a wierd error : ");
|
strcat(p, "found a wierd error : ");
|
||||||
#ifdef SYSLOG
|
#ifdef SYSLOG
|
||||||
pri = Syslog_priority_NO;
|
pri = Syslog_priority_NO;
|
||||||
#endif
|
#endif /* SYSLOG */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -270,7 +271,8 @@ void log_error(code)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
closelog();
|
closelog();
|
||||||
#else
|
#endif /* SYSLOG */
|
||||||
|
#ifdef _PATH_SUDO_LOGFILE
|
||||||
/* become root */
|
/* become root */
|
||||||
be_root();
|
be_root();
|
||||||
|
|
||||||
@@ -337,7 +339,7 @@ void log_error(code)
|
|||||||
|
|
||||||
/* relinquish root */
|
/* relinquish root */
|
||||||
be_user();
|
be_user();
|
||||||
#endif
|
#endif /* _PATH_SUDO_LOGFILE */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user