Mercurial > dropbear
comparison svr-runopts.c @ 1551:1acbdf64088e
add guard HAVE_GETGROUPLIST
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Tue, 27 Feb 2018 21:49:10 +0800 |
parents | f20038b513a5 |
children | 61a793b6e471 |
comparison
equal
deleted
inserted
replaced
1550:93a3726a36d6 | 1551:1acbdf64088e |
---|---|
68 #endif | 68 #endif |
69 #if DO_MOTD | 69 #if DO_MOTD |
70 "-m Don't display the motd on login\n" | 70 "-m Don't display the motd on login\n" |
71 #endif | 71 #endif |
72 "-w Disallow root logins\n" | 72 "-w Disallow root logins\n" |
73 #ifdef HAVE_GETGROUPLIST | |
73 "-G Restrict logins to members of specified group\n" | 74 "-G Restrict logins to members of specified group\n" |
75 #endif | |
74 #if DROPBEAR_SVR_PASSWORD_AUTH || DROPBEAR_SVR_PAM_AUTH | 76 #if DROPBEAR_SVR_PASSWORD_AUTH || DROPBEAR_SVR_PAM_AUTH |
75 "-s Disable password logins\n" | 77 "-s Disable password logins\n" |
76 "-g Disable password logins for root\n" | 78 "-g Disable password logins for root\n" |
77 "-B Allow blank password logins\n" | 79 "-B Allow blank password logins\n" |
78 #endif | 80 #endif |
133 svr_opts.bannerfile = NULL; | 135 svr_opts.bannerfile = NULL; |
134 svr_opts.banner = NULL; | 136 svr_opts.banner = NULL; |
135 svr_opts.forced_command = NULL; | 137 svr_opts.forced_command = NULL; |
136 svr_opts.forkbg = 1; | 138 svr_opts.forkbg = 1; |
137 svr_opts.norootlogin = 0; | 139 svr_opts.norootlogin = 0; |
140 #ifdef HAVE_GETGROUPLIST | |
138 svr_opts.restrict_group = NULL; | 141 svr_opts.restrict_group = NULL; |
139 svr_opts.restrict_group_gid = 0; | 142 svr_opts.restrict_group_gid = 0; |
143 #endif | |
140 svr_opts.noauthpass = 0; | 144 svr_opts.noauthpass = 0; |
141 svr_opts.norootpass = 0; | 145 svr_opts.norootpass = 0; |
142 svr_opts.allowblankpass = 0; | 146 svr_opts.allowblankpass = 0; |
143 svr_opts.maxauthtries = MAX_AUTH_TRIES; | 147 svr_opts.maxauthtries = MAX_AUTH_TRIES; |
144 svr_opts.inetdmode = 0; | 148 svr_opts.inetdmode = 0; |
233 break; | 237 break; |
234 #endif | 238 #endif |
235 case 'w': | 239 case 'w': |
236 svr_opts.norootlogin = 1; | 240 svr_opts.norootlogin = 1; |
237 break; | 241 break; |
242 #ifdef HAVE_GETGROUPLIST | |
238 case 'G': | 243 case 'G': |
239 next = &svr_opts.restrict_group; | 244 next = &svr_opts.restrict_group; |
240 break; | 245 break; |
246 #endif | |
241 case 'W': | 247 case 'W': |
242 next = &recv_window_arg; | 248 next = &recv_window_arg; |
243 break; | 249 break; |
244 case 'K': | 250 case 'K': |
245 next = &keepalive_arg; | 251 next = &keepalive_arg; |
338 svr_opts.bannerfile); | 344 svr_opts.bannerfile); |
339 } | 345 } |
340 buf_setpos(svr_opts.banner, 0); | 346 buf_setpos(svr_opts.banner, 0); |
341 } | 347 } |
342 | 348 |
349 #ifdef HAVE_GETGROUPLIST | |
343 if (svr_opts.restrict_group) { | 350 if (svr_opts.restrict_group) { |
344 struct group *restrictedgroup = getgrnam(svr_opts.restrict_group); | 351 struct group *restrictedgroup = getgrnam(svr_opts.restrict_group); |
345 | 352 |
346 if (restrictedgroup){ | 353 if (restrictedgroup){ |
347 svr_opts.restrict_group_gid = restrictedgroup->gr_gid; | 354 svr_opts.restrict_group_gid = restrictedgroup->gr_gid; |
348 } else { | 355 } else { |
349 dropbear_exit("Cannot restrict logins to group '%s' as the group does not exist", svr_opts.restrict_group); | 356 dropbear_exit("Cannot restrict logins to group '%s' as the group does not exist", svr_opts.restrict_group); |
350 } | 357 } |
351 | 358 } |
352 } | 359 #endif |
353 | 360 |
354 if (recv_window_arg) { | 361 if (recv_window_arg) { |
355 opts.recv_window = atol(recv_window_arg); | 362 opts.recv_window = atol(recv_window_arg); |
356 if (opts.recv_window == 0 || opts.recv_window > MAX_RECV_WINDOW) { | 363 if (opts.recv_window == 0 || opts.recv_window > MAX_RECV_WINDOW) { |
357 dropbear_exit("Bad recv window '%s'", recv_window_arg); | 364 dropbear_exit("Bad recv window '%s'", recv_window_arg); |