summaryrefslogtreecommitdiffstats
path: root/usr.bin/login
diff options
context:
space:
mode:
authormaxim <maxim@FreeBSD.org>2005-06-01 12:23:06 +0000
committermaxim <maxim@FreeBSD.org>2005-06-01 12:23:06 +0000
commite8b16ba229c7b853d779287df60c1817609c4e1c (patch)
tree790e4dc8cfee1b2a73b259b566201529bf7dbfb9 /usr.bin/login
parentd363d282f8e80f9ca9593de443999e3dc15d3474 (diff)
downloadFreeBSD-src-e8b16ba229c7b853d779287df60c1817609c4e1c.zip
FreeBSD-src-e8b16ba229c7b853d779287df60c1817609c4e1c.tar.gz
o Teach login(1) to respect "hushlogin" and "nocheckmail" attributes
defined in user's $HOME/.login_conf. PR: bin/75001 Submitted by: Rostislav Krasny MFC after: 2 weeks
Diffstat (limited to 'usr.bin/login')
-rw-r--r--usr.bin/login/login.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/usr.bin/login/login.c b/usr.bin/login/login.c
index 9c06e43..68693f8 100644
--- a/usr.bin/login/login.c
+++ b/usr.bin/login/login.c
@@ -171,6 +171,7 @@ main(int argc, char *argv[])
const char *tp;
const char *shell = NULL;
login_cap_t *lc = NULL;
+ login_cap_t *lc_user = NULL;
pid_t pid;
(void)signal(SIGQUIT, SIG_IGN);
@@ -354,8 +355,10 @@ main(int argc, char *argv[])
* Establish the login class.
*/
lc = login_getpwclass(pwd);
+ lc_user = login_getuserclass(pwd);
- quietlog = login_getcapbool(lc, "hushlogin", 0);
+ if (!(quietlog = login_getcapbool(lc_user, "hushlogin", 0)))
+ quietlog = login_getcapbool(lc, "hushlogin", 0);
/*
* Switching needed for NFS with root access disabled.
@@ -568,7 +571,8 @@ main(int argc, char *argv[])
else
motd(_PATH_MOTDFILE);
- if (login_getcapbool(lc, "nocheckmail", 0) == 0) {
+ if (login_getcapbool(lc_user, "nocheckmail", 0) == 0 &&
+ login_getcapbool(lc, "nocheckmail", 0) == 0) {
char *cx;
/* $MAIL may have been set by class. */
@@ -585,6 +589,7 @@ main(int argc, char *argv[])
}
}
+ login_close(lc_user);
login_close(lc);
(void)signal(SIGALRM, SIG_DFL);
OpenPOWER on IntegriCloud