diff options
author | maxim <maxim@FreeBSD.org> | 2005-06-01 12:23:06 +0000 |
---|---|---|
committer | maxim <maxim@FreeBSD.org> | 2005-06-01 12:23:06 +0000 |
commit | e8b16ba229c7b853d779287df60c1817609c4e1c (patch) | |
tree | 790e4dc8cfee1b2a73b259b566201529bf7dbfb9 /usr.bin/login/login.c | |
parent | d363d282f8e80f9ca9593de443999e3dc15d3474 (diff) | |
download | FreeBSD-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/login.c')
-rw-r--r-- | usr.bin/login/login.c | 9 |
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); |