summaryrefslogtreecommitdiffhomepage
path: root/svr-runopts.c
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2016-04-12 21:01:08 +0800
committerJeremy Kerr <jk@ozlabs.org>2016-04-12 21:01:08 +0800
commitac9a4c839f6cbde3ca8226d79eca36a497620594 (patch)
tree10ff821cf12b67d9bc2874253f1469b03f09d124 /svr-runopts.c
parent3d2ddd15f8686ab8114dd94aff33919b4095e7b0 (diff)
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 <jk@ozlabs.org>
Diffstat (limited to 'svr-runopts.c')
-rw-r--r--svr-runopts.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/svr-runopts.c b/svr-runopts.c
index 8f60059..8d1fa6b 100644
--- a/svr-runopts.c
+++ b/svr-runopts.c
@@ -79,6 +79,7 @@ static void printhelp(const char * progname) {
#ifdef ENABLE_SVR_REMOTETCPFWD
"-k Disable remote port forwarding\n"
"-a Allow connections to forwarded ports from any host\n"
+ "-c command Force executed command\n"
#endif
"-p [address:]port\n"
" Listen on specified tcp port (and optionally address),\n"
@@ -125,6 +126,7 @@ void svr_getopts(int argc, char ** argv) {
/* see printhelp() for options */
svr_opts.bannerfile = NULL;
svr_opts.banner = NULL;
+ svr_opts.forced_command = NULL;
svr_opts.forkbg = 1;
svr_opts.norootlogin = 0;
svr_opts.noauthpass = 0;
@@ -177,6 +179,9 @@ void svr_getopts(int argc, char ** argv) {
case 'b':
next = &svr_opts.bannerfile;
break;
+ case 'c':
+ next = &svr_opts.forced_command;
+ break;
case 'd':
case 'r':
next = &keyfile;