diff svr-chansession.c @ 1289:a23386821e9f

Add -c <command> option to force a specific command This change adds a -c option to dropbear, to force the session to use a specific command, in a similar fashion to OpenSSH's ForceCommand configuration option. This is useful to provide a simple fixed service over ssh, without requiring an authorized key file for the per-key forced_command option. This setting takes precedence over the channel session's provided command, and the per-key forced_command setting. Signed-off-by: Jeremy Kerr <[email protected]>
author Jeremy Kerr <jk@ozlabs.org>
date Tue, 12 Apr 2016 21:01:08 +0800
parents b1fabf797bd3
children 750ec4ec4cbe
line wrap: on
line diff
--- a/svr-chansession.c	Fri Mar 18 23:51:50 2016 +0800
+++ b/svr-chansession.c	Tue Apr 12 21:01:08 2016 +0800
@@ -671,8 +671,16 @@
 		}
 	}
 	
-	/* take public key option 'command' into account */
-	svr_pubkey_set_forced_command(chansess);
+
+	/* take global command into account */
+	if (svr_opts.forced_command) {
+		chansess->original_command = chansess->cmd ? : m_strdup("");
+		chansess->cmd = m_strdup(svr_opts.forced_command);
+	} else {
+		/* take public key option 'command' into account */
+		svr_pubkey_set_forced_command(chansess);
+	}
+
 
 #ifdef LOG_COMMANDS
 	if (chansess->cmd) {