move all "-/bin/sh" "/bin/sh" and "sh" to libbb/messages.c file as one
constant. Vodz last_patch_107
This commit is contained in:
parent
005f83adf5
commit
dc4e75ef7c
@ -43,7 +43,7 @@ int chroot_main(int argc, char **argv)
|
||||
if (argc == 2) {
|
||||
argv -= 2;
|
||||
if (!(*argv = getenv("SHELL"))) {
|
||||
*argv = (char *) "/bin/sh";
|
||||
*argv = (char *) DEFAULT_SHELL;
|
||||
}
|
||||
argv[1] = (char *) "-i";
|
||||
}
|
||||
|
@ -332,6 +332,21 @@ extern const char * const bb_path_group_file;
|
||||
extern const char * const bb_path_securetty_file;
|
||||
extern const char * const bb_path_motd_file;
|
||||
|
||||
/*
|
||||
* You can change LIBBB_DEFAULT_LOGIN_SHELL, but don`t use,
|
||||
* use bb_default_login_shell and next defines,
|
||||
* if you LIBBB_DEFAULT_LOGIN_SHELL change,
|
||||
* don`t lose change increment constant!
|
||||
*/
|
||||
#define LIBBB_DEFAULT_LOGIN_SHELL "-/bin/sh"
|
||||
|
||||
extern const char * const bb_default_login_shell;
|
||||
/* "/bin/sh" */
|
||||
#define DEFAULT_SHELL (bb_default_login_shell+1)
|
||||
/* "sh" */
|
||||
#define DEFAULT_SHELL_SHORT_NAME (bb_default_login_shell+6)
|
||||
|
||||
|
||||
extern const char bb_path_mtab_file[];
|
||||
|
||||
extern int bb_default_error_retval;
|
||||
|
18
init/init.c
18
init/init.c
@ -104,8 +104,6 @@ struct serial_struct {
|
||||
|
||||
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
|
||||
|
||||
#define SHELL "/bin/sh" /* Default shell */
|
||||
#define LOGIN_SHELL "-" SHELL /* Default login shell */
|
||||
#define INITTAB "/etc/inittab" /* inittab file location */
|
||||
#ifndef INIT_SCRIPT
|
||||
#define INIT_SCRIPT "/etc/init.d/rcS" /* Default sysinit script. */
|
||||
@ -180,7 +178,7 @@ static const int RB_AUTOBOOT = 0x01234567;
|
||||
static const char * const environment[] = {
|
||||
"HOME=/",
|
||||
"PATH=" _PATH_STDPATH,
|
||||
"SHELL=" SHELL,
|
||||
"SHELL=/bin/sh",
|
||||
"USER=root",
|
||||
NULL
|
||||
};
|
||||
@ -526,7 +524,7 @@ static pid_t run(const struct init_action *a)
|
||||
|
||||
/* See if any special /bin/sh requiring characters are present */
|
||||
if (strpbrk(a->command, "~`!$^&*()=|\\{}[];\"'<>?") != NULL) {
|
||||
cmd[0] = SHELL;
|
||||
cmd[0] = (char *)DEFAULT_SHELL;
|
||||
cmd[1] = "-c";
|
||||
cmd[2] = strcat(strcpy(buf, "exec "), a->command);
|
||||
cmd[3] = NULL;
|
||||
@ -840,7 +838,7 @@ static void child_handler(int sig)
|
||||
|
||||
#endif /* ! DEBUG_INIT */
|
||||
|
||||
static void new_init_action(int action, char *command, const char *cons)
|
||||
static void new_init_action(int action, const char *command, const char *cons)
|
||||
{
|
||||
struct init_action *new_action, *a;
|
||||
|
||||
@ -960,10 +958,10 @@ static void parse_inittab(void)
|
||||
/* Prepare to restart init when a HUP is received */
|
||||
new_init_action(RESTART, "/sbin/init", "");
|
||||
/* Askfirst shell on tty1-4 */
|
||||
new_init_action(ASKFIRST, LOGIN_SHELL, "");
|
||||
new_init_action(ASKFIRST, LOGIN_SHELL, VC_2);
|
||||
new_init_action(ASKFIRST, LOGIN_SHELL, VC_3);
|
||||
new_init_action(ASKFIRST, LOGIN_SHELL, VC_4);
|
||||
new_init_action(ASKFIRST, bb_default_login_shell, "");
|
||||
new_init_action(ASKFIRST, bb_default_login_shell, VC_2);
|
||||
new_init_action(ASKFIRST, bb_default_login_shell, VC_3);
|
||||
new_init_action(ASKFIRST, bb_default_login_shell, VC_4);
|
||||
/* sysinit */
|
||||
new_init_action(SYSINIT, INIT_SCRIPT, "");
|
||||
|
||||
@ -1116,7 +1114,7 @@ extern int init_main(int argc, char **argv)
|
||||
if (argc > 1 && (!strcmp(argv[1], "single") ||
|
||||
!strcmp(argv[1], "-s") || !strcmp(argv[1], "1"))) {
|
||||
/* Start a shell on console */
|
||||
new_init_action(RESPAWN, LOGIN_SHELL, "");
|
||||
new_init_action(RESPAWN, bb_default_login_shell, "");
|
||||
} else {
|
||||
/* Not in single user mode -- see what inittab says */
|
||||
|
||||
|
@ -59,7 +59,7 @@ LIBBB_MOBJ0:=full_version.o \
|
||||
can_not_create_raw_socket.o perm_denied_are_you_root.o \
|
||||
shadow_file.o passwd_file.o group_file.o gshadow_file.o nologin_file.o \
|
||||
securetty_file.o motd_file.o \
|
||||
msg_standard_input.o msg_standard_output.o
|
||||
msg_standard_input.o msg_standard_output.o shell_file.o
|
||||
|
||||
LIBBB_MSRC1:=$(LIBBB_DIR)xfuncs.c
|
||||
LIBBB_MOBJ1:=xmalloc.o xrealloc.o xcalloc.o xstrdup.o xstrndup.o \
|
||||
|
@ -90,3 +90,7 @@ const char * const bb_path_securetty_file = SECURETTY_FILE;
|
||||
const char * const bb_path_motd_file = MOTD_FILE;
|
||||
#endif
|
||||
|
||||
#ifdef L_shell_file
|
||||
const char * const bb_default_login_shell = LIBBB_DEFAULT_LOGIN_SHELL;
|
||||
#endif
|
||||
|
||||
|
@ -53,7 +53,6 @@ typedef struct {
|
||||
static const char default_passwd[] = "x";
|
||||
static const char default_gecos[] = "Linux User,,,";
|
||||
static const char default_home_prefix[] = "/home";
|
||||
static const char default_shell[] = "/bin/sh";
|
||||
|
||||
#ifdef CONFIG_FEATURE_SHADOWPASSWDS
|
||||
/* shadow in use? */
|
||||
@ -257,7 +256,7 @@ int adduser_main(int argc, char **argv)
|
||||
const char *login;
|
||||
const char *gecos = default_gecos;
|
||||
const char *home = NULL;
|
||||
const char *shell = default_shell;
|
||||
const char *shell = DEFAULT_SHELL;
|
||||
const char *usegroup = NULL;
|
||||
int flags;
|
||||
int setpass = 1;
|
||||
|
@ -65,7 +65,7 @@ extern int login_main(int argc, char **argv)
|
||||
char full_tty[200];
|
||||
char fromhost[512];
|
||||
char username[USERNAME_SIZE];
|
||||
char *tmp;
|
||||
const char *tmp;
|
||||
int amroot;
|
||||
int flag;
|
||||
int failed;
|
||||
@ -267,15 +267,17 @@ auth_ok:
|
||||
chmod ( full_tty, 0600 );
|
||||
|
||||
change_identity ( pw );
|
||||
setup_environment ( pw-> pw_shell, 1, !opt_preserve, pw );
|
||||
tmp = pw-> pw_shell;
|
||||
if(!tmp || !*tmp)
|
||||
tmp = DEFAULT_SHELL;
|
||||
setup_environment ( tmp, 1, !opt_preserve, pw );
|
||||
|
||||
motd ( );
|
||||
signal ( SIGALRM, SIG_DFL ); /* default alarm signal */
|
||||
|
||||
if ( pw-> pw_uid == 0 )
|
||||
syslog ( LOG_INFO, "root login %s\n", fromhost );
|
||||
|
||||
run_shell ( pw-> pw_shell, 1, 0, 0
|
||||
run_shell ( tmp, 1, 0, 0
|
||||
#ifdef CONFIG_SELINUX
|
||||
, sid
|
||||
#endif
|
||||
|
@ -21,7 +21,6 @@
|
||||
|
||||
|
||||
/* The shell to run if none is given in the user's passwd entry. */
|
||||
#define DEFAULT_SHELL "/bin/sh"
|
||||
#define DEFAULT_USER "root"
|
||||
|
||||
//#define SYSLOG_SUCCESS
|
||||
|
@ -54,9 +54,6 @@
|
||||
#define MAXLINES 256 /* max lines in non-root crontabs */
|
||||
#endif
|
||||
|
||||
static const char def_sh[] = "/bin/sh";
|
||||
|
||||
|
||||
typedef struct CronFile {
|
||||
struct CronFile *cf_Next;
|
||||
struct CronLine *cf_LineBase;
|
||||
@ -313,7 +310,7 @@ ChangeUser(const char *user)
|
||||
}
|
||||
setenv("USER", pas->pw_name, 1);
|
||||
setenv("HOME", pas->pw_dir, 1);
|
||||
setenv("SHELL", def_sh, 1);
|
||||
setenv("SHELL", DEFAULT_SHELL, 1);
|
||||
|
||||
/*
|
||||
* Change running state to the user in question
|
||||
@ -997,7 +994,7 @@ RunJob(const char *user, CronLine *line)
|
||||
user, mailFile);
|
||||
}
|
||||
|
||||
ForkJob(user, line, mailFd, def_sh, "-c", line->cl_Shell, mailFile);
|
||||
ForkJob(user, line, mailFd, DEFAULT_SHELL, "-c", line->cl_Shell, mailFile);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1081,12 +1078,12 @@ RunJob(const char *user, CronLine *line)
|
||||
|
||||
#ifdef FEATURE_DEBUG_OPT
|
||||
if (DebugOpt)
|
||||
crondlog("\005Child Running %s\n", def_sh);
|
||||
crondlog("\005Child Running %s\n", DEFAULT_SHELL);
|
||||
#endif
|
||||
|
||||
execl(def_sh, def_sh, "-c", line->cl_Shell, NULL);
|
||||
execl(DEFAULT_SHELL, DEFAULT_SHELL, "-c", line->cl_Shell, NULL);
|
||||
crondlog("\024unable to exec, user %s cmd %s -c %s\n", user,
|
||||
def_sh, line->cl_Shell);
|
||||
DEFAULT_SHELL, line->cl_Shell);
|
||||
exit(0);
|
||||
} else if (pid < 0) {
|
||||
/*
|
||||
|
@ -320,7 +320,7 @@ EditFile(const char *user, const char *file)
|
||||
ptr = PATH_VI;
|
||||
|
||||
snprintf(visual, sizeof(visual), "%s %s", ptr, file);
|
||||
execl("/bin/sh", "/bin/sh", "-c", visual, NULL);
|
||||
execl(DEFAULT_SHELL, DEFAULT_SHELL, "-c", visual, NULL);
|
||||
perror("exec");
|
||||
exit(0);
|
||||
}
|
||||
@ -360,7 +360,7 @@ ChangeUser(const char *user, short dochdir)
|
||||
}
|
||||
setenv("USER", pas->pw_name, 1);
|
||||
setenv("HOME", pas->pw_dir, 1);
|
||||
setenv("SHELL", "/bin/sh", 1);
|
||||
setenv("SHELL", DEFAULT_SHELL, 1);
|
||||
|
||||
/*
|
||||
* Change running state to the user in question
|
||||
|
@ -1009,7 +1009,7 @@ static int doit(char *str)
|
||||
case -1: /* failure */
|
||||
return 0;
|
||||
case 0: /* child */
|
||||
execle("/bin/sh", "/bin/sh", "-c", str, NULL, environ);
|
||||
execle(DEFAULT_SHELL, DEFAULT_SHELL, "-c", str, NULL, environ);
|
||||
exit(127);
|
||||
}
|
||||
waitpid(child, &status, 0);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $Id: telnetd.c,v 1.6 2003/04/25 12:32:37 andersen Exp $
|
||||
/* $Id: telnetd.c,v 1.7 2003/09/02 02:36:16 bug1 Exp $
|
||||
*
|
||||
* Simple telnet server
|
||||
* Bjorn Wesen, Axis Communications AB (bjornw@axis.com)
|
||||
@ -52,7 +52,7 @@ static const char *loginpath =
|
||||
#ifdef CONFIG_LOGIN
|
||||
"/bin/login";
|
||||
#else
|
||||
"/bin/sh";
|
||||
DEFAULT_SHELL;
|
||||
#endif
|
||||
static const char *issuefile = "/etc/issue.net";
|
||||
|
||||
|
@ -3729,7 +3729,7 @@ repeat:
|
||||
for (ap = argv; *ap; ap++)
|
||||
;
|
||||
ap = new = ckmalloc((ap - argv + 2) * sizeof(char *));
|
||||
*ap++ = cmd = "/bin/sh";
|
||||
*ap++ = cmd = (char *)DEFAULT_SHELL;
|
||||
while ((*ap++ = *argv++))
|
||||
;
|
||||
argv = new;
|
||||
|
@ -668,7 +668,6 @@ static char *null = "";
|
||||
static int heedint =1;
|
||||
static struct env e ={line, iostack, iostack-1, (xint *)NULL, FDBASE, (struct env *)NULL};
|
||||
static void (*qflag)(int) = SIG_IGN;
|
||||
static char shellname[] = "/bin/sh";
|
||||
static int startl;
|
||||
static int peeksym;
|
||||
static int nlseen;
|
||||
@ -717,7 +716,7 @@ extern int msh_main(int argc, char **argv)
|
||||
|
||||
shell = lookup("SHELL");
|
||||
if (shell->value == null)
|
||||
setval(shell, shellname);
|
||||
setval(shell, DEFAULT_SHELL);
|
||||
export(shell);
|
||||
|
||||
homedir = lookup("HOME");
|
||||
@ -2871,7 +2870,7 @@ char *c, **v, **envp;
|
||||
*v = e.linep;
|
||||
tp = *--v;
|
||||
*v = e.linep;
|
||||
execve(shellname, v, envp);
|
||||
execve(DEFAULT_SHELL, v, envp);
|
||||
*v = tp;
|
||||
return("no Shell");
|
||||
|
||||
@ -3902,7 +3901,7 @@ int quoted;
|
||||
dup2(pf[1], 1);
|
||||
closepipe(pf);
|
||||
|
||||
argument_list[0] = shellname;
|
||||
argument_list[0] = (char *)DEFAULT_SHELL;
|
||||
argument_list[1] = "-c";
|
||||
argument_list[2] = child_cmd;
|
||||
argument_list[3] = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user