Patch from Thaddeus Ternes, adding chuid to start-stop-daemon.
This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)
No binary (build failed)
—
(log yok)
| @@ -24,6 +24,7 @@ static int signal_nr = 15; | |
| static int user_id = -1; | |
| static int quiet; | |
| static char *userspec = NULL; | |
| + | static char *chuid = NULL; |
| static char *cmdname = NULL; | |
| static char *execname = NULL; | |
| static char *pidfile = NULL; | |
| @@ -211,6 +212,7 @@ static const struct option ssd_long_options[] = { | |
| { "name", 1, NULL, 'n' }, | |
| { "signal", 1, NULL, 's' }, | |
| { "user", 1, NULL, 'u' }, | |
| + | { "chuid", 1, NULL, 'c' }, |
| { "exec", 1, NULL, 'x' }, | |
| { "pidfile", 1, NULL, 'p' }, | |
| #if ENABLE_FEATURE_START_STOP_DAEMON_FANCY | |
| @@ -249,9 +251,9 @@ int start_stop_daemon_main(int argc, char **argv) | |
| opt = bb_getopt_ulflags(argc, argv, "KSbqm" | |
| // USE_FEATURE_START_STOP_DAEMON_FANCY("ovR:") | |
| USE_FEATURE_START_STOP_DAEMON_FANCY("ov") | |
| - | "a:n:s:u:x:p:" |
| + | "a:n:s:u:c:x:p:" |
| // USE_FEATURE_START_STOP_DAEMON_FANCY(,&retry_arg) | |
| - | ,&startas, &cmdname, &signame, &userspec, &execname, &pidfile); |
| + | ,&startas, &cmdname, &signame, &userspec, &chuid, &execname, &pidfile); |
| quiet = (opt & SSD_OPT_QUIET) | |
| USE_FEATURE_START_STOP_DAEMON_FANCY(&& !(opt & SSD_OPT_VERBOSE)); | |
| @@ -301,6 +303,11 @@ int start_stop_daemon_main(int argc, char **argv) | |
| fprintf(pidf, "%d\n", pidt); | |
| fclose(pidf); | |
| } | |
| + | if(chuid) { |
| + | if(sscanf(chuid, "%d", &user_id) != 1) |
| + | user_id = bb_xgetpwnam(chuid); |
| + | setuid(user_id); |
| + | } |
| execv(startas, argv); | |
| bb_perror_msg_and_die ("unable to start %s", startas); | |
| } | |
| @@ -2712,7 +2712,8 @@ USE_FEATURE_START_STOP_DAEMON_FANCY( \ | |
| "\n\t-o|--oknodo\t\t\texit status 0 if nothing done" \ | |
| "\n\t-v|--verbose\t\t\tbe verbose" \ | |
| ) \ | |
| - | "\n\t-s|--signal <signal>\t\tsignal to send (default TERM)" |
| + | "\n\t-s|--signal <signal>\t\tsignal to send (default TERM)" \ |
| + | "\n\t-U|--chuid <username>|<uid>\tstart process with this name" |
| #ifdef CONFIG_FEATURE_STAT_FORMAT | |
| # define USAGE_STAT_FORMAT(a) a | |