now do getpwent as root for soem shadow password systems (bsdi)
This commit is contained in:
11
check.c
11
check.c
@@ -216,7 +216,11 @@ static void check_passwd()
|
|||||||
char *pass; /* this is what gets entered */
|
char *pass; /* this is what gets entered */
|
||||||
register int counter = TRIES_FOR_PASSWORD;
|
register int counter = TRIES_FOR_PASSWORD;
|
||||||
|
|
||||||
if ((pw_ent = getpwuid(uid)) == NULL) {
|
/* some os's need to be root to get at shadow password */
|
||||||
|
be_root();
|
||||||
|
pw_ent = getpwuid(uid);
|
||||||
|
be_user();
|
||||||
|
if (pw_ent == NULL) {
|
||||||
(void) sprintf(user, "%u", uid);
|
(void) sprintf(user, "%u", uid);
|
||||||
log_error(GLOBAL_NO_PW_ENT);
|
log_error(GLOBAL_NO_PW_ENT);
|
||||||
inform_user(GLOBAL_NO_PW_ENT);
|
inform_user(GLOBAL_NO_PW_ENT);
|
||||||
@@ -224,13 +228,14 @@ static void check_passwd()
|
|||||||
}
|
}
|
||||||
#ifdef __svr4__
|
#ifdef __svr4__
|
||||||
be_root();
|
be_root();
|
||||||
if ((spw_ent = getspnam(pw_ent->pw_name)) == NULL) {
|
spw_ent = getspnam(pw_ent->pw_name);
|
||||||
|
be_user();
|
||||||
|
if (spw_ent == NULL) {
|
||||||
(void) sprintf(user, "%u", uid);
|
(void) sprintf(user, "%u", uid);
|
||||||
log_error(GLOBAL_NO_PW_ENT);
|
log_error(GLOBAL_NO_PW_ENT);
|
||||||
inform_user(GLOBAL_NO_PW_ENT);
|
inform_user(GLOBAL_NO_PW_ENT);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
be_user();
|
|
||||||
encrypted = spw_ent -> sp_pwdp;
|
encrypted = spw_ent -> sp_pwdp;
|
||||||
#else
|
#else
|
||||||
encrypted = pw_ent -> pw_passwd;
|
encrypted = pw_ent -> pw_passwd;
|
||||||
|
Reference in New Issue
Block a user