mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 09:41:03 -04:00
Add a flag to allow the 'use NIS or local?' logic to tell when NIS is
enabled in /etc/master.passwd & friends. This allows the 'USER_YP_AND_LOCAL' case to make a more sensible guess (if NIS is enabled, default to NIS, otherwise default to local -- this is better than defaulting to NIS all the time).
This commit is contained in:
parent
c63f99c6b3
commit
d7f248ea9f
2 changed files with 8 additions and 5 deletions
|
|
@ -81,6 +81,7 @@ static HASHINFO openinfo = {
|
|||
int force_old = 0;
|
||||
int _use_yp = 0;
|
||||
int suser_override = 0;
|
||||
int yp_in_pw_file = 0;
|
||||
char *yp_domain = NULL;
|
||||
char *yp_server = NULL;
|
||||
|
||||
|
|
@ -278,8 +279,8 @@ int use_yp (user, uid, which)
|
|||
bf[0] = _PW_KEYYPENABLED;
|
||||
key.data = (u_char *)bf;
|
||||
key.size = 1;
|
||||
if ((!(dbp->get)(dbp,&key,&data,0) && _yp_check(NULL)) ||
|
||||
(yp_domain && yp_server)) {
|
||||
yp_in_pw_file = !(dbp->get)(dbp,&key,&data,0);
|
||||
if (_yp_check(NULL) || (yp_domain && yp_server)) {
|
||||
server = get_yp_master(0);
|
||||
|
||||
/* Is the user in the NIS passwd map */
|
||||
|
|
@ -324,6 +325,7 @@ int use_yp (user, uid, which)
|
|||
return(USER_LOCAL_ONLY);
|
||||
else if (!user_exists)
|
||||
return(USER_UNKNOWN);
|
||||
|
||||
return(-1);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
* Center for Telecommunications Research
|
||||
* Columbia University, New York City
|
||||
*
|
||||
* $Id: pw_yp.h,v 1.8 1996/02/17 18:14:23 wpaul Exp $
|
||||
* $Id: pw_yp.h,v 1.3 1996/02/23 16:08:59 wpaul Exp $
|
||||
*/
|
||||
|
||||
#ifdef YP
|
||||
|
|
@ -60,6 +60,7 @@ extern char *yp_server;
|
|||
extern void yp_submit __P(( struct passwd * ));
|
||||
extern int use_yp __P(( char * , uid_t , int ));
|
||||
extern char *get_yp_master __P(( int ));
|
||||
extern int yp_in_pw_file;
|
||||
|
||||
/*
|
||||
* Yucky.
|
||||
|
|
@ -84,7 +85,7 @@ extern char *get_yp_master __P(( int ));
|
|||
} else \
|
||||
errx(1, "unknown NIS user: uid %u", X); \
|
||||
} else if (_use_yp == USER_YP_AND_LOCAL) { \
|
||||
if (!force_local) { \
|
||||
if (!force_local && (force_yp || yp_in_pw_file)) { \
|
||||
_use_yp = 1; \
|
||||
pw = (struct passwd *)&yp_password; \
|
||||
} else { \
|
||||
|
|
@ -113,7 +114,7 @@ extern char *get_yp_master __P(( int ));
|
|||
} else \
|
||||
errx(1, "unknown NIS user: %s.", X); \
|
||||
} else if (_use_yp == USER_YP_AND_LOCAL) { \
|
||||
if (!force_local) { \
|
||||
if (!force_local && (force_yp || yp_in_pw_file)) { \
|
||||
_use_yp = 1; \
|
||||
pw = (struct passwd *)&yp_password; \
|
||||
} else { \
|
||||
|
|
|
|||
Loading…
Reference in a new issue