summaryrefslogtreecommitdiffstats
path: root/usr.bin/login
diff options
context:
space:
mode:
authorjdp <jdp@FreeBSD.org>1998-11-11 05:47:45 +0000
committerjdp <jdp@FreeBSD.org>1998-11-11 05:47:45 +0000
commitf8dcb23dba255068fa5ac32328a680849f941f09 (patch)
treebcf9931108390493a6dfe0b082dda944ec38eb1a /usr.bin/login
parent7f7d1683a0a387b994942a552ade2f65f61f13f5 (diff)
downloadFreeBSD-src-f8dcb23dba255068fa5ac32328a680849f941f09.zip
FreeBSD-src-f8dcb23dba255068fa5ac32328a680849f941f09.tar.gz
unifdef -DLOGIN_CAP. After almost 2 years, I think we can assume
it's here to stay. This code is starting to look almost reasonable again.
Diffstat (limited to 'usr.bin/login')
-rw-r--r--usr.bin/login/Makefile4
-rw-r--r--usr.bin/login/login.c75
2 files changed, 4 insertions, 75 deletions
diff --git a/usr.bin/login/Makefile b/usr.bin/login/Makefile
index ce15d16..93560f1 100644
--- a/usr.bin/login/Makefile
+++ b/usr.bin/login/Makefile
@@ -1,12 +1,12 @@
# From: @(#)Makefile 8.1 (Berkeley) 7/19/93
-# $Id: Makefile,v 1.21 1998/09/19 22:42:04 obrien Exp $
+# $Id: Makefile,v 1.22 1998/11/11 02:16:01 jdp Exp $
PROG= login
MAN1= login.1
MAN5= login.access.5
SRCS= login.c login_access.c login_fbtab.c
-CFLAGS+=-Wall -DSKEY -DLOGIN_ACCESS -DLOGALL -DLOGIN_CAP
+CFLAGS+=-Wall -DSKEY -DLOGIN_ACCESS -DLOGALL
.if defined(KLOGIN_PARANOID)
CFLAGS+=-DKLOGIN_PARANOID
diff --git a/usr.bin/login/login.c b/usr.bin/login/login.c
index 6d43003..57a385a 100644
--- a/usr.bin/login/login.c
+++ b/usr.bin/login/login.c
@@ -42,7 +42,7 @@ static char copyright[] =
static char sccsid[] = "@(#)login.c 8.4 (Berkeley) 4/2/94";
#endif
static const char rcsid[] =
- "$Id: login.c,v 1.40 1998/11/11 01:53:12 jdp Exp $";
+ "$Id: login.c,v 1.41 1998/11/11 02:16:01 jdp Exp $";
#endif /* not lint */
/*
@@ -64,6 +64,7 @@ static const char rcsid[] =
#include <errno.h>
#include <grp.h>
#include <libutil.h>
+#include <login_cap.h>
#include <netdb.h>
#include <pwd.h>
#include <setjmp.h>
@@ -76,10 +77,6 @@ static const char rcsid[] =
#include <unistd.h>
#include <utmp.h>
-#ifdef LOGIN_CAP
-#include <login_cap.h>
-#endif
-
#ifdef SKEY
#include <skey.h>
#endif /* SKEY */
@@ -150,9 +147,7 @@ main(argc, argv)
char tbuf[MAXPATHLEN + 2], tname[sizeof(_PATH_TTY) + 10];
char localhost[MAXHOSTNAMELEN];
char *shell = NULL;
-#ifdef LOGIN_CAP
login_cap_t *lc = NULL;
-#endif /* LOGIN_CAP */
#ifdef SKEY
int permit_passwd = 0;
#endif /* SKEY */
@@ -245,7 +240,6 @@ main(argc, argv)
else
tty = ttyn;
-#ifdef LOGIN_CAP
/*
* Get "login-retries" & "login-backoff" from default class
*/
@@ -254,10 +248,6 @@ main(argc, argv)
backoff = login_getcapnum(lc, "login-backoff", DEFAULT_BACKOFF, DEFAULT_BACKOFF);
login_close(lc);
lc = NULL;
-#else
- retries = DEFAULT_RETRIES;
- backoff = DEFAULT_BACKOFF;
-#endif
for (cnt = 0;; ask = 1) {
if (ask) {
@@ -296,7 +286,6 @@ main(argc, argv)
else
salt = "xx";
-#ifdef LOGIN_CAP
/*
* Establish the class now, before we might goto
* within the next block. pwd can be NULL since it
@@ -306,7 +295,6 @@ main(argc, argv)
(void)seteuid(rootlogin ? 0 : pwd->pw_uid);
lc = login_getpwclass(pwd);
seteuid(euid);
-#endif /* LOGIN_CAP */
/*
* if we have a valid account name, and it doesn't have a
@@ -420,25 +408,14 @@ main(argc, argv)
endpwent();
/* if user not super-user, check for disabled logins */
-#ifdef LOGIN_CAP
if (!rootlogin)
auth_checknologin(lc);
-#else
- if (!rootlogin)
- checknologin();
-#endif
-#ifdef LOGIN_CAP
quietlog = login_getcapbool(lc, "hushlogin", 0);
-#else
- quietlog = 0;
-#endif
(void)seteuid(rootlogin ? 0 : pwd->pw_uid);
if (!*pwd->pw_dir || chdir(pwd->pw_dir) < 0) {
-#ifdef LOGIN_CAP
if (login_getcapbool(lc, "requirehome", 0))
refused("Home directory not available", "HOMEDIR", 1);
-#endif
if (chdir("/") < 0)
refused("Cannot find root directory", "ROOTDIR", 1);
pwd->pw_dir = "/";
@@ -454,12 +431,8 @@ main(argc, argv)
#define DEFAULT_WARN (2L * 7L * 86400L) /* Two weeks */
-#ifdef LOGIN_CAP
warntime = login_getcaptime(lc, "warnpassword",
DEFAULT_WARN, DEFAULT_WARN);
-#else
- warntime = DEFAULT_WARN;
-#endif
changepass=0;
if (pwd->pw_change) {
@@ -474,12 +447,8 @@ main(argc, argv)
ctime(&pwd->pw_change));
}
-#ifdef LOGIN_CAP
warntime = login_getcaptime(lc, "warnexpire",
DEFAULT_WARN, DEFAULT_WARN);
-#else
- warntime = DEFAULT_WARN;
-#endif
if (pwd->pw_expire) {
if (tp.tv_sec >= pwd->pw_expire) {
@@ -490,7 +459,6 @@ main(argc, argv)
ctime(&pwd->pw_expire));
}
-#ifdef LOGIN_CAP
if (lc != NULL) {
if (hostname) {
struct hostent *hp = gethostbyname(full_hostname);
@@ -513,9 +481,6 @@ main(argc, argv)
refused("Logins not available right now", "TIME", 1);
}
shell=login_getcapstr(lc, "shell", pwd->pw_shell, pwd->pw_shell);
-#else /* !LOGIN_CAP */
- shell=pwd->pw_shell;
-#endif /* LOGIN_CAP */
if (*pwd->pw_shell == '\0')
pwd->pw_shell = _PATH_BSHELL;
if (*shell == '\0') /* Not overridden */
@@ -608,19 +573,10 @@ main(argc, argv)
* We don't need to be root anymore, so
* set the user and session context
*/
-#ifdef LOGIN_CAP
if (setusercontext(lc, pwd, pwd->pw_uid, LOGIN_SETALL) != 0) {
syslog(LOG_ERR, "setusercontext() failed - exiting");
exit(1);
}
-#else
- if (setlogin(pwd->pw_name) < 0)
- syslog(LOG_ERR, "setlogin() failure: %m");
-
- (void)setgid(pwd->pw_gid);
- initgroups(username, pwd->pw_gid);
- (void)setuid(rootlogin ? 0 : pwd->pw_uid);
-#endif
(void)setenv("SHELL", pwd->pw_shell, 1);
(void)setenv("HOME", pwd->pw_dir, 1);
@@ -637,7 +593,6 @@ main(argc, argv)
(void)setenv("KRBTKFILE", krbtkfile_env, 1);
#endif
-#ifdef LOGIN_CAP
if (!quietlog) {
char *cw;
@@ -664,24 +619,12 @@ main(argc, argv)
} else
snprintf(tbuf, sizeof(tbuf), "%s/%s",
_PATH_MAILDIR, pwd->pw_name);
-#else
- if (!quietlog) {
- (void)printf("%s\n\t%s %s\n",
- "Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994",
- "The Regents of the University of California. ",
- "All rights reserved.");
- motd(_PATH_MOTDFILE);
- snprintf(tbuf, sizeof(tbuf), "%s/%s",
- _PATH_MAILDIR, pwd->pw_name);
-#endif
if (stat(tbuf, &st) == 0 && st.st_size != 0)
(void)printf("You have %smail.\n",
(st.st_mtime > st.st_atime) ? "new " : "");
}
-#ifdef LOGIN_CAP
login_close(lc);
-#endif
(void)signal(SIGALRM, SIG_DFL);
(void)signal(SIGQUIT, SIG_DFL);
@@ -791,20 +734,6 @@ timedout(signo)
exit(0);
}
-#ifndef LOGIN_CAP
-void
-checknologin()
-{
- int fd, nchars;
- char tbuf[8192];
-
- if ((fd = open(_PATH_NOLOGIN, O_RDONLY, 0)) >= 0) {
- while ((nchars = read(fd, tbuf, sizeof(tbuf))) > 0)
- (void)write(fileno(stdout), tbuf, nchars);
- sleepexit(0);
- }
-}
-#endif
void
dolastlog(quiet)
OpenPOWER on IntegriCloud