svn commit: trunk/busybox/loginutils
vda at busybox.net
vda at busybox.net
Sat Oct 14 11:47:02 UTC 2006
Author: vda
Date: 2006-10-14 04:47:02 -0700 (Sat, 14 Oct 2006)
New Revision: 16380
Log:
sulogin: add support for $SUSHELL & $sushell
Modified:
trunk/busybox/loginutils/adduser.c
trunk/busybox/loginutils/sulogin.c
Changeset:
Modified: trunk/busybox/loginutils/adduser.c
===================================================================
--- trunk/busybox/loginutils/adduser.c 2006-10-14 11:34:14 UTC (rev 16379)
+++ trunk/busybox/loginutils/adduser.c 2006-10-14 11:47:02 UTC (rev 16380)
@@ -114,11 +114,11 @@
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
Modified: trunk/busybox/loginutils/sulogin.c
===================================================================
--- trunk/busybox/loginutils/sulogin.c 2006-10-14 11:34:14 UTC (rev 16379)
+++ trunk/busybox/loginutils/sulogin.c 2006-10-14 11:47:02 UTC (rev 16380)
@@ -42,6 +42,7 @@
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 @@
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 @@
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'");
}
More information about the busybox-cvs
mailing list