nologin(8), this causes a considerable (100K) increase in the binary size, so I've added a NO_LOGIN_LOG option which disables this. While I'm here, s/sizeof(MESSAGE)/sizeof(MESSAGE) - 1/, in order to avoid writing the string-terminating zero byte. No complaints from: -current Approved by: rwatson (mentor)
35 lines
713 B
C
35 lines
713 B
C
/*-
|
|
* This program is in the public domain. I couldn't bring myself to
|
|
* declare Copyright on a variant of Hello World.
|
|
*/
|
|
|
|
#include <sys/cdefs.h>
|
|
__FBSDID("$FreeBSD$");
|
|
|
|
#include <sys/types.h>
|
|
#include <sys/uio.h>
|
|
#include <syslog.h>
|
|
#include <unistd.h>
|
|
|
|
#define MESSAGE "This account is currently not available.\n"
|
|
|
|
int
|
|
main(int argc, char *argv[])
|
|
{
|
|
#ifndef NO_NOLOGIN_LOG
|
|
char *user, *tt;
|
|
|
|
if ((tt = ttyname(0)) == NULL)
|
|
tt = "UNKNOWN";
|
|
if ((user = getlogin()) == NULL)
|
|
user = "UNKNOWN";
|
|
|
|
openlog("nologin", LOG_CONS, LOG_AUTH);
|
|
syslog(LOG_CRIT, "Attempted login by %s on %s", user, tt);
|
|
closelog();
|
|
#endif /* NO_NOLOGIN_LOG */
|
|
|
|
write(STDOUT_FILENO, MESSAGE, sizeof(MESSAGE) - 1);
|
|
_exit(1);
|
|
}
|