From 6e727e43d2fde40e9d23ed3554c0404eb4ef153a Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Sat, 4 May 2019 10:43:32 +0200 Subject: [PATCH] system: allow an arbitrary group for sudo like ssh login; closes #3407 --- .../service/templates/OPNsense/Auth/sudoers | 6 ++ src/www/system_advanced_admin.php | 73 +++++++++++-------- 2 files changed, 48 insertions(+), 31 deletions(-) diff --git a/src/opnsense/service/templates/OPNsense/Auth/sudoers b/src/opnsense/service/templates/OPNsense/Auth/sudoers index 5ea54fcce..86de0925f 100644 --- a/src/opnsense/service/templates/OPNsense/Auth/sudoers +++ b/src/opnsense/service/templates/OPNsense/Auth/sudoers @@ -1,5 +1,11 @@ {% if system.sudo_allow_wheel|default('0') == '1' %} %wheel ALL=(ALL) ALL +{% if system.sudo_allow_group|default('') != '' %} +%{{system.sudo_allow_group}} ALL=(ALL) ALL +{% endif %} {% elif system.sudo_allow_wheel|default('0') == '2' %} %wheel ALL=(ALL) NOPASSWD: ALL +{% if system.sudo_allow_group|default('') != '' %} +%{{system.sudo_allow_group}} ALL=(ALL) NOPASSWD: ALL +{% endif %} {% endif %} diff --git a/src/www/system_advanced_admin.php b/src/www/system_advanced_admin.php index b5d347c26..b843bddb7 100644 --- a/src/www/system_advanced_admin.php +++ b/src/www/system_advanced_admin.php @@ -1,7 +1,7 @@ + * Copyright (C) 2017-2019 Franco Fichtner * Copyright (C) 2014-2015 Deciso B.V. * Copyright (C) 2005-2010 Scott Ullrich * Copyright (C) 2008 Shrew Soft Inc. @@ -55,6 +55,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { $pconfig['usevirtualterminal'] = isset($config['system']['usevirtualterminal']); $pconfig['disableintegratedauth'] = !empty($config['system']['disableintegratedauth']); $pconfig['sudo_allow_wheel'] = $config['system']['sudo_allow_wheel']; + $pconfig['sudo_allow_group'] = isset($config['system']['sudo_allow_group']) ? $config['system']['sudo_allow_group'] : null; $pconfig['nodnsrebindcheck'] = isset($config['system']['webgui']['nodnsrebindcheck']); $pconfig['nohttpreferercheck'] = isset($config['system']['webgui']['nohttpreferercheck']); $pconfig['althostnames'] = $config['system']['webgui']['althostnames']; @@ -246,6 +247,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { unset($config['system']['ssh']['group']); } + if (!empty($pconfig['sudo_allow_group'])) { + $config['system']['sudo_allow_group'] = $pconfig['sudo_allow_group']; + } elseif (isset($config['system']['sudo_allow_group'])) { + unset($config['system']['sudo_allow_group']); + } + if (!empty($pconfig['sshpasswordauth'])) { $config['system']['ssh']['passwordauth'] = true; } elseif (isset($config['system']['ssh']['passwordauth'])) { @@ -452,15 +459,13 @@ $(document).ready(function() {