]> granicus.if.org Git - sudo/commitdiff
Add sudoOrder attribute to each entry
authorTodd C. Miller <Todd.Miller@courtesan.com>
Mon, 31 Jan 2011 14:46:54 +0000 (09:46 -0500)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Mon, 31 Jan 2011 14:46:54 +0000 (09:46 -0500)
Parse LOG_{INPUT,OUTPUT} tags

--HG--
branch : 1.7

sudoers2ldif [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 0fe0ad1..442155e
@@ -25,6 +25,7 @@ my $base=$ENV{SUDOERS_BASE} or die "$0: Container SUDOERS_BASE undefined\n";
 my @options=();
 
 my $did_defaults=0;
+my $order = 0;
 
 # parse sudoers one line at a time
 while (<>){
@@ -67,8 +68,9 @@ while (<>){
         print "objectClass: top\n";
         print "objectClass: sudoRole\n";
         print "cn: defaults\n";
-     print "description: Default sudoOption's go here\n";
+        print "description: Default sudoOption's go here\n";
         print "sudoOption: $_\n" foreach @options;
+        printf "sudoOrder: %d\n", ++$order;
         print "\n";
       }
       # Definition
@@ -96,6 +98,7 @@ while (<>){
       }
       print "sudoCommand: $_\n" foreach expand(\%CA,@cmds);
       print "sudoOption: $_\n" foreach @options;
+      printf "sudoOrder: %d\n", ++$order;
       print "\n";
     }
 
@@ -120,6 +123,10 @@ sub expand{
     s/EXEC:\s*// && push @options,"!noexec";
     s/SETENV:\s*// && push @options,"setenv";
     s/NOSETENV:\s*// && push @options,"!setenv";
+    s/LOG_INPUT:\s*// && push @options,"log_input";
+    s/NOLOG_INPUT:\s*// && push @options,"!log_input";
+    s/LOG_OUTPUT:\s*// && push @options,"log_output";
+    s/NOLOG_OUTPUT:\s*// && push @options,"!log_output";
     s/\w+://; # silently remove other directives
     s/\s+$//; # right trim
   }