mirror of
https://github.com/topjohnwu/ndk-busybox.git
synced 2024-11-24 20:29:55 +00:00
sulogin: add support for $SUSHELL & $sushell
This commit is contained in:
parent
997aa1179e
commit
c345d8e945
@ -114,11 +114,11 @@ static int adduser(struct passwd *p, unsigned long flags)
|
||||
file = xfopen(bb_path_shadow_file, "a");
|
||||
fseek(file, 0, SEEK_END);
|
||||
fprintf(file, "%s:!:%ld:%d:%d:%d:::\n",
|
||||
p->pw_name, /* username */
|
||||
time(NULL) / 86400, /* sp->sp_lstchg */
|
||||
0, /* sp->sp_min */
|
||||
99999, /* sp->sp_max */
|
||||
7); /* sp->sp_warn */
|
||||
p->pw_name, /* username */
|
||||
time(NULL) / 86400, /* sp->sp_lstchg */
|
||||
0, /* sp->sp_min */
|
||||
99999, /* sp->sp_max */
|
||||
7); /* sp->sp_warn */
|
||||
fclose(file);
|
||||
#endif
|
||||
|
||||
|
@ -42,6 +42,7 @@ int sulogin_main(int argc, char **argv)
|
||||
const char * const *p;
|
||||
struct passwd *pwd;
|
||||
struct spwd *spwd;
|
||||
const char *shell;
|
||||
|
||||
logmode = LOGMODE_BOTH;
|
||||
openlog(applet_name, 0, LOG_AUTH);
|
||||
@ -69,12 +70,14 @@ int sulogin_main(int argc, char **argv)
|
||||
|
||||
signal(SIGALRM, catchalarm);
|
||||
|
||||
if (!(pwd = getpwuid(0))) {
|
||||
pwd = getpwuid(0);
|
||||
if (!pwd) {
|
||||
goto auth_error;
|
||||
}
|
||||
|
||||
if (ENABLE_FEATURE_SHADOWPASSWDS) {
|
||||
if (!(spwd = getspnam(pwd->pw_name))) {
|
||||
spwd = getspnam(pwd->pw_name);
|
||||
if (!spwd) {
|
||||
goto auth_error;
|
||||
}
|
||||
pwd->pw_passwd = spwd->sp_pwdp;
|
||||
@ -103,9 +106,16 @@ int sulogin_main(int argc, char **argv)
|
||||
|
||||
USE_SELINUX(renew_current_security_context());
|
||||
|
||||
run_shell(pwd->pw_shell, 1, 0, 0);
|
||||
shell = getenv("SUSHELL");
|
||||
if (!shell) shell = getenv("sushell");
|
||||
if (!shell) {
|
||||
shell = "/bin/sh";
|
||||
if (pwd->pw_shell[0])
|
||||
shell = pwd->pw_shell;
|
||||
}
|
||||
run_shell(shell, 1, 0, 0);
|
||||
/* never returns */
|
||||
|
||||
auth_error:
|
||||
bb_error_msg_and_die("no password entry for `root'");
|
||||
bb_error_msg_and_die("no password entry for 'root'");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user