mirror of
				https://github.com/clearml/dropbear
				synced 2025-06-26 18:17:32 +00:00 
			
		
		
		
	Allow configuring "allow blank password option" at runtime
Changes this from a compile-time switch to a command-line option. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
This commit is contained in:
		
							parent
							
								
									f5be0fb218
								
							
						
					
					
						commit
						1205fa68df
					
				| @ -180,11 +180,6 @@ much traffic. */ | ||||
| #define ENABLE_SVR_PUBKEY_OPTIONS | ||||
| #endif | ||||
| 
 | ||||
| /* Define this to allow logging in to accounts that have no password specified.
 | ||||
|  * Public key logins are allowed for blank-password accounts regardless of this | ||||
|  * setting. */ | ||||
| /* #define ALLOW_BLANK_PASSWORD */ | ||||
| 
 | ||||
| #define ENABLE_CLI_PASSWORD_AUTH | ||||
| #define ENABLE_CLI_PUBKEY_AUTH | ||||
| #define ENABLE_CLI_INTERACT_AUTH | ||||
|  | ||||
| @ -89,6 +89,7 @@ typedef struct svr_runopts { | ||||
| 
 | ||||
| 	int noauthpass; | ||||
| 	int norootpass; | ||||
| 	int allowblankpass; | ||||
| 
 | ||||
| #ifdef ENABLE_SVR_REMOTETCPFWD | ||||
| 	int noremotetcp; | ||||
|  | ||||
| @ -154,8 +154,8 @@ void recv_msg_userauth_request() { | ||||
| 			strncmp(methodname, AUTH_METHOD_NONE, | ||||
| 				AUTH_METHOD_NONE_LEN) == 0) { | ||||
| 		TRACE(("recv_msg_userauth_request: 'none' request")) | ||||
| #ifdef ALLOW_BLANK_PASSWORD | ||||
| 		if (!svr_opts.noauthpass  | ||||
| 		if (svr_opts.allowblankpass | ||||
| 				&& !svr_opts.noauthpass | ||||
| 				&& !(svr_opts.norootpass && ses.authstate.pw_uid == 0)  | ||||
| 				&& ses.authstate.pw_passwd[0] == '\0')  | ||||
| 		{ | ||||
| @ -167,7 +167,6 @@ void recv_msg_userauth_request() { | ||||
| 			goto out; | ||||
| 		} | ||||
| 		else | ||||
| #endif | ||||
| 		{ | ||||
| 			send_msg_userauth_failure(0, 0); | ||||
| 			goto out; | ||||
|  | ||||
| @ -29,6 +29,7 @@ | ||||
| #include "buffer.h" | ||||
| #include "dbutil.h" | ||||
| #include "auth.h" | ||||
| #include "runopts.h" | ||||
| 
 | ||||
| #ifdef ENABLE_SVR_PASSWORD_AUTH | ||||
| 
 | ||||
|  | ||||
| @ -63,6 +63,7 @@ static void printhelp(const char * progname) { | ||||
| #if defined(ENABLE_SVR_PASSWORD_AUTH) || defined(ENABLE_SVR_PAM_AUTH) | ||||
| 					"-s		Disable password logins\n" | ||||
| 					"-g		Disable password logins for root\n" | ||||
| 					"-B		Allow blank password logins\n" | ||||
| #endif | ||||
| #ifdef ENABLE_SVR_LOCALTCPFWD | ||||
| 					"-j		Disable local port forwarding\n" | ||||
| @ -115,6 +116,7 @@ void svr_getopts(int argc, char ** argv) { | ||||
| 	svr_opts.norootlogin = 0; | ||||
| 	svr_opts.noauthpass = 0; | ||||
| 	svr_opts.norootpass = 0; | ||||
| 	svr_opts.allowblankpass = 0; | ||||
| 	svr_opts.inetdmode = 0; | ||||
| 	svr_opts.portcount = 0; | ||||
| 	svr_opts.hostkey = NULL; | ||||
| @ -234,6 +236,9 @@ void svr_getopts(int argc, char ** argv) { | ||||
| 				case 'g': | ||||
| 					svr_opts.norootpass = 1; | ||||
| 					break; | ||||
| 				case 'B': | ||||
| 					svr_opts.allowblankpass = 1; | ||||
| 					break; | ||||
| #endif | ||||
| 				case 'h': | ||||
| 					printhelp(argv[0]); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user