]> granicus.if.org Git - sudo/commitdiff
Allow defaults types and suppression list to be specified in
authorTodd C. Miller <Todd.Miller@sudo.ws>
Mon, 2 Apr 2018 13:41:56 +0000 (07:41 -0600)
committerTodd C. Miller <Todd.Miller@sudo.ws>
Mon, 2 Apr 2018 13:41:56 +0000 (07:41 -0600)
the config file.

doc/cvtsudoers.cat
doc/cvtsudoers.man.in
doc/cvtsudoers.mdoc.in
plugins/sudoers/cvtsudoers.c
plugins/sudoers/cvtsudoers.h

index e5d05153dd866d6533a0fe5072cd999230086c41..7b72eb7f682825d01a7fcc54515a0521dbb0c4d9 100644 (file)
@@ -161,6 +161,9 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
      configuration file, _\b/_\be_\bt_\bc_\b/_\bc_\bv_\bt_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bc_\bo_\bn_\bf by default.  The following
      keywords are recognized:
 
+     d\bde\bef\bfa\bau\bul\blt\bts\bs =\b= _\bd_\be_\bf_\bt_\by_\bp_\be_\bs
+           See the description of the -\b-d\bd command line option.
+
      e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bs =\b= _\by_\be_\bs | _\bn_\bo
            See the description of the -\b-e\be command line option.
 
@@ -182,6 +185,9 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
      s\bsu\bud\bdo\boe\ber\brs\bs_\b_b\bba\bas\bse\be =\b= _\bd_\bn
            See the description of the -\b-b\bb command line option.
 
+     s\bsu\bup\bpp\bpr\bre\bes\bss\bs =\b= _\bs_\be_\bc_\bt_\bi_\bo_\bn_\bs
+           See the description of the -\b-s\bs command line option.
+
      Options on the command line will override values from the configuration
      file.
 
@@ -217,4 +223,4 @@ D\bDI\bIS\bSC\bCL\bLA\bAI\bIM\bME\bER\bR
      file distributed with s\bsu\bud\bdo\bo or https://www.sudo.ws/license.html for
      complete details.
 
-Sudo 1.8.23                     March 28, 2018                     Sudo 1.8.23
+Sudo 1.8.23                     March 30, 2018                     Sudo 1.8.23
index a1ce4171d3012204f4713c29b5f947d663f3cdd6..754dcac6e04c10c83820551c61e244082e97cc61 100644 (file)
@@ -16,7 +16,7 @@
 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 .\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.TH "CVTSUDOERS" "1" "March 28, 2018" "Sudo @PACKAGE_VERSION@" "General Commands Manual"
+.TH "CVTSUDOERS" "1" "March 30, 2018" "Sudo @PACKAGE_VERSION@" "General Commands Manual"
 .nh
 .if n .ad l
 .SH "NAME"
@@ -305,6 +305,11 @@ may also be specified in a configuration file,
 by default.
 The following keywords are recognized:
 .TP 6n
+\fBdefaults =\fR \fIdeftypes\fR
+See the description of the
+\fB\-d\fR
+command line option.
+.TP 6n
 \fBexpand_aliases =\fR \fIyes\fR | \fIno\fR
 See the description of the
 \fB\-e\fR
@@ -339,6 +344,11 @@ command line option.
 See the description of the
 \fB\-b\fR
 command line option.
+.TP 6n
+\fBsuppress =\fR \fIsections\fR
+See the description of the
+\fB\-s\fR
+command line option.
 .PP
 Options on the command line will override values from the
 configuration file.
index da3b21c2c548281278ca7f5881fe40384bee1844..4b6e2ff222159bad105f36840be9b60233b7e6af 100644 (file)
@@ -14,7 +14,7 @@
 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 .\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd March 28, 2018
+.Dd March 30, 2018
 .Dt CVTSUDOERS 1
 .Os Sudo @PACKAGE_VERSION@
 .Sh NAME
@@ -256,6 +256,10 @@ may also be specified in a configuration file,
 by default.
 The following keywords are recognized:
 .Bl -tag -width 4n
+.It Sy defaults = Ar deftypes
+See the description of the
+.Fl d
+command line option.
 .It Sy expand_aliases = Ar yes | no
 See the description of the
 .Fl e
@@ -284,6 +288,10 @@ command line option.
 See the description of the
 .Fl b
 command line option.
+.It Sy suppress = Ar sections
+See the description of the
+.Fl s
+command line option.
 .El
 .Pp
 Options on the command line will override values from the
index 4a3a5c3e12ae8445661afe555f8f18835dab235c..c432c572b6d5d44e01dad29ee944cb2d1742870b 100644 (file)
@@ -160,9 +160,7 @@ main(int argc, char *argv[])
            /* handled above */
            break;
        case 'd':
-           conf->defaults = cvtsudoers_parse_defaults(optarg);
-           if (conf->defaults == -1)
-               usage(1);
+           conf->defstr = optarg;
            break;
        case 'e':
            conf->expand_aliases = true;
@@ -210,9 +208,7 @@ main(int argc, char *argv[])
            }
            break;
        case 's':
-           conf->suppress = cvtsudoers_parse_suppression(optarg);
-           if (conf->suppress == -1)
-               usage(1);
+           conf->supstr = optarg;
            break;
        case 'V':
            (void) printf(_("%s version %s\n"), getprogname(),
@@ -258,6 +254,16 @@ main(int argc, char *argv[])
        if (!cvtsudoers_parse_filter(conf->filter))
            usage(1);
     }
+    if (conf->defstr != NULL) {
+       conf->defaults = cvtsudoers_parse_defaults(conf->defstr);
+       if (conf->defaults == -1)
+           usage(1);
+    }
+    if (conf->supstr != NULL) {
+       conf->suppress = cvtsudoers_parse_suppression(conf->supstr);
+       if (conf->suppress == -1)
+           usage(1);
+    }
 
     /* If no base DN specified, check SUDOERS_BASE. */
     if (conf->sudoers_base == NULL) {
@@ -347,6 +353,8 @@ static struct cvtsudoers_conf_table cvtsudoers_conf_vars[] = {
     { "input_format", CONF_STR, &cvtsudoers_config.input_format },
     { "output_format", CONF_STR, &cvtsudoers_config.output_format },
     { "match", CONF_STR, &cvtsudoers_config.filter },
+    { "defaults", CONF_STR, &cvtsudoers_config.defstr },
+    { "suppress", CONF_STR, &cvtsudoers_config.supstr },
     { "expand_aliases", CONF_BOOL, &cvtsudoers_config.expand_aliases }
 };
 
index ed804565e66e5a3af60e0519616486dafdd8a5f1..4993821272597305c251576d330ff2e0891d4a00 100644 (file)
@@ -52,20 +52,22 @@ struct cvtsudoers_str_list {
 
 /* cvtsudoers.conf settings */
 struct cvtsudoers_config {
-    char *sudoers_base;
-    char *input_format;
-    char *output_format;
-    char *filter;
     unsigned int sudo_order;
     unsigned int order_increment;
     short defaults;
     short suppress;
     bool expand_aliases;
     bool store_options;
+    char *sudoers_base;
+    char *input_format;
+    char *output_format;
+    char *filter;
+    char *defstr;
+    char *supstr;
 };
 
 /* Initial config settings for above. */
-#define INITIAL_CONFIG { NULL, NULL, NULL, NULL, 1, 1, CVT_DEFAULTS_ALL, 0, false, true }
+#define INITIAL_CONFIG { 1, 1, CVT_DEFAULTS_ALL, 0, false, true }
 
 #define CONF_BOOL      0
 #define CONF_UINT      1