version 1.66, 2015/01/16 06:40:13 |
version 1.67, 2015/04/15 02:12:00 |
|
|
prio = getpriority(PRIO_PROCESS, 0); |
prio = getpriority(PRIO_PROCESS, 0); |
if (errno) |
if (errno) |
prio = 0; |
prio = 0; |
(void)setpriority(PRIO_PROCESS, 0, -2); |
setpriority(PRIO_PROCESS, 0, -2); |
openlog("su", LOG_CONS, 0); |
openlog("su", LOG_CONS, 0); |
|
|
if ((as = auth_open()) == NULL) { |
if ((as = auth_open()) == NULL) { |
|
|
if (login_getcapbool(lc, "requirehome", 0)) { |
if (login_getcapbool(lc, "requirehome", 0)) { |
auth_err(as, 1, "%s", pwd->pw_dir); |
auth_err(as, 1, "%s", pwd->pw_dir); |
} else { |
} else { |
(void)printf("No home directory %s!\n", pwd->pw_dir); |
printf("No home directory %s!\n", pwd->pw_dir); |
(void)printf("Logging in with home = \"/\".\n"); |
printf("Logging in with home = \"/\".\n"); |
if (chdir("/") < 0) |
if (chdir("/") < 0) |
auth_err(as, 1, "/"); |
auth_err(as, 1, "/"); |
} |
} |
|
|
syslog(LOG_NOTICE|LOG_AUTH, "%s to %s%s", |
syslog(LOG_NOTICE|LOG_AUTH, "%s to %s%s", |
username, user, ontty()); |
username, user, ontty()); |
|
|
(void)setpriority(PRIO_PROCESS, 0, prio); |
setpriority(PRIO_PROCESS, 0, prio); |
if (emlogin) { |
if (emlogin) { |
flags = LOGIN_SETALL & ~LOGIN_SETPATH; |
flags = LOGIN_SETALL & ~LOGIN_SETPATH; |
/* |
/* |
|
|
int ch; |
int ch; |
|
|
for (;;) { |
for (;;) { |
(void)printf("login: "); |
printf("login: "); |
for (p = nbuf; (ch = getchar()) != '\n'; ) { |
for (p = nbuf; (ch = getchar()) != '\n'; ) { |
if (ch == EOF) |
if (ch == EOF) |
return (NULL); |
return (NULL); |
|
|
} |
} |
if (p > nbuf) { |
if (p > nbuf) { |
if (nbuf[0] == '-') { |
if (nbuf[0] == '-') { |
(void)fprintf(stderr, |
fprintf(stderr, |
"login names may not start with '-'.\n"); |
"login names may not start with '-'.\n"); |
} else { |
} else { |
*p = '\0'; |
*p = '\0'; |