- Document -m, -c, -s and provide a default shell for standalone build. - Wrap overlong lines plus a few whitespace fixes. - add GPL header.
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)
| @@ -2814,7 +2814,9 @@ | |
| #define su_full_usage \ | |
| "Change user id or become root.\n" \ | |
| "Options:\n" \ | |
| - | "\t-p\tPreserve environment" |
| + | "\t-p, -m\tPreserve environment" \ |
| + | "\n\t-c\tCommand to pass to 'sh -c'" \ |
| + | "\n\t-s\tShell to use instead of default shell" |
| #define sulogin_trivial_usage \ | |
| "[OPTION]... [tty-device]" | |
| @@ -1,4 +1,7 @@ | |
| /* vi: set sw=4 ts=4: */ | |
| + | /* |
| + | Licensed under the GPL v2, see the file LICENSE in this tarball. |
| + | */ |
| #include <fcntl.h> | |
| #include <signal.h> | |
| @@ -18,12 +21,15 @@ | |
| #include "busybox.h" | |
| - | |
| - | |
| /* The shell to run if none is given in the user's passwd entry. */ | |
| + | #ifndef DEFAULT_SHELL |
| + | #define DEFAULT_SHELL "/bin/sh" |
| + | #endif |
| + | |
| + | /* Default user. */ |
| #define DEFAULT_USER "root" | |
| - | //#define SYSLOG_SUCCESS |
| + | /* #define SYSLOG_SUCCESS */ |
| #define SYSLOG_FAILURE | |
| @@ -31,7 +37,8 @@ | |
| /* Log the fact that someone has run su */ | |
| # if defined( SYSLOG_SUCCESS ) && defined( SYSLOG_FAILURE ) | |
| - | static void log_su (const char *successful, const char *old_user, const char *tty) |
| + | static void log_su (const char *successful, const char *old_user, |
| + | const char *tty) |
| { | |
| syslog ( LOG_NOTICE, "%s%s on %s", successful, old_user, tty); | |
| } | |
| @@ -98,7 +105,8 @@ int su_main ( int argc, char **argv ) | |
| if ( !old_user ) | |
| #endif | |
| { | |
| - | /* getlogin can fail -- usually due to lack of utmp entry. Resort to getpwuid. */ |
| + | /* getlogin can fail -- usually due to lack of utmp entry. |
| + | Resort to getpwuid. */ |
| pw = getpwuid ( cur_uid ); | |
| old_user = ( pw ? pw->pw_name : "" ); | |
| } | |
| @@ -116,8 +124,8 @@ int su_main ( int argc, char **argv ) | |
| /* Make sure pw->pw_shell is non-NULL. It may be NULL when NEW_USER | |
| is a username that is retrieved via NIS (YP), but that doesn't have | |
| a default shell listed. */ | |
| - | if ( !pw-> pw_shell || !pw->pw_shell [0] ) |
| - | pw-> pw_shell = (char *) DEFAULT_SHELL; |
| + | if ( !pw->pw_shell || !pw->pw_shell [0] ) |
| + | pw->pw_shell = (char *) DEFAULT_SHELL; |
| if ((( cur_uid == 0 ) || correct_password ( pw ))) { | |
| log_su_successful(pw->pw_uid, old_user, tty ); | |
| @@ -133,7 +141,7 @@ int su_main ( int argc, char **argv ) | |
| if ( !opt_shell && opt_preserve ) | |
| opt_shell = getenv ( "SHELL" ); | |
| - | if ( opt_shell && cur_uid && restricted_shell ( pw-> pw_shell )) { |
| + | if ( opt_shell && cur_uid && restricted_shell ( pw->pw_shell )) { |
| /* The user being su'd to has a nonstandard shell, and so is | |
| probably a uucp account or has restricted access. Don't | |
| compromise the account by allowing access with a standard | |
| @@ -147,7 +155,7 @@ int su_main ( int argc, char **argv ) | |
| change_identity ( pw ); | |
| setup_environment ( opt_shell, opt_loginshell, !opt_preserve, pw ); | |
| - | #ifdef CONFIG_SELINUX |
| + | #if ENABLE_SELINUX |
| set_current_security_context(NULL); | |
| #endif | |
| run_shell ( opt_shell, opt_loginshell, opt_command, (const char**)opt_args); | |