]> granicus.if.org Git - sudo/commitdiff
Expand quoted name checks to cover recent fixes.
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 17 Mar 2011 19:48:00 +0000 (15:48 -0400)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 17 Mar 2011 19:48:00 +0000 (15:48 -0400)
plugins/sudoers/regress/testsudoers/test2.out
plugins/sudoers/regress/testsudoers/test2.sh

index ad7fc397667d244561b28c241f3c8a80e246363c..8f55faf4201c2e530ae1b2ea9947afed41f792bd 100644 (file)
@@ -1,9 +1,42 @@
 Parses OK.
 
+Defaults@somehost      set_home
+Defaults@quoted"       set_home
+Defaults:you   set_home
+Defaults:us"   set_home
+Defaults:%them set_home
+Defaults:%: non UNIX 0 c       set_home
+Defaults:+net  set_home
+Defaults>someone       set_home
+Defaults>some one      set_home
 
+Runas_Alias    RA1 = foo
+Runas_Alias    RA2 = foo"
+Runas_Alias    RA3 = foo:bar
+Runas_Alias    RA4 = foo:bar"
+User_Alias     UA1 = foo
+User_Alias     UA10 = %:C/non"UNIX"0 c
+User_Alias     UA11 = %:C/non_UNIX_0 c
+User_Alias     UA12 = %:C/non\'UNIX_3 c
+User_Alias     UA2 = foo.bar
+User_Alias     UA3 = foo"
+User_Alias     UA4 = foo:bar
+User_Alias     UA5 = foo:bar"
+User_Alias     UA6 = %baz
+User_Alias     UA7 = %baz.biz
+User_Alias     UA8 = %:C/non UNIX 0 c
+User_Alias     UA9 = %:C/non\'UNIX\'1 c
 
-%:C/non UNIX 0 c       ALL = (ALL) ALL
-%:C/non\'UNIX\'1 c     ALL = (ALL) ALL
-%:C/non"UNIX"0 c       ALL = (ALL) ALL
-%:C/non_UNIX_0 c       ALL = (ALL) ALL
-%:C/non\'UNIX_3 c      ALL = (ALL) ALL
+foo    hosta = (root) ALL
+foo.bar        hostb = (root) ALL
+foo"   hostc = (root) ALL
+foo:bar        hostd = (root) ALL
+foo:bar"       hoste = (root) ALL
+%baz   hosta = (root) ALL
+%baz.biz       hostb = (root) ALL
+%:C/non UNIX 0 c       hostc = (root) ALL
+%:C/non\'UNIX\'1 c     hostd = (root) ALL
+%:C/non"UNIX"0 c       hoste = (root) ALL
+%:C/non_UNIX_0 c       hostf = (root) ALL
+%:C/non\'UNIX_3 c      hostg = (root) ALL
++netgr hosth = (root) ALL
index a2c0f0d1043e739e66bf75f4b3d957a09ab864b7..892f0cdac2ca94e84af1323190a0ce63236100fe 100755 (executable)
@@ -1,18 +1,73 @@
 #!/bin/sh
 #
-# Test quoted group names in sudoers.
-# Note that a backslash is treated literally unless
+# Test quoted words in sudoers.
+# Note that a backslash in double quotes is treated literally unless
 # it is escaping a double quote.
 #
 
 WANT=${SRCDIR-.}/regress/testsudoers/test2.out
 GOT=ts_test2.out
 ./testsudoers -d > $GOT <<EOF
-"%:C/non UNIX 0 c" ALL=(ALL) ALL
-"%:C/non\'UNIX\'1 c" ALL=(ALL) ALL
-"%:C/non\"UNIX\"0 c" ALL=(ALL) ALL
-"%:C/non_UNIX_0 c" ALL=(ALL) ALL
-"%:C/non\'UNIX_3 c" ALL=(ALL) ALL
+# Check quoted user name in User_Alias
+User_Alias UA1 = "foo"
+User_Alias UA2 = "foo.bar"
+User_Alias UA3 = "foo\""
+User_Alias UA4 = "foo:bar"
+User_Alias UA5 = "foo:bar\""
+
+# Check quoted group name in User_Alias
+User_Alias UA6 = "%baz"
+User_Alias UA7 = "%baz.biz"
+
+# Check quoted non-Unix group name in User_Alias
+User_Alias UA8 = "%:C/non UNIX 0 c"
+User_Alias UA9 = "%:C/non\'UNIX\'1 c"
+User_Alias UA10 = "%:C/non\"UNIX\"0 c"
+User_Alias UA11 = "%:C/non_UNIX_0 c"
+User_Alias UA12 = "%:C/non\'UNIX_3 c"
+
+# Check quoted user name in Runas_Alias
+Runas_Alias RA1 = "foo"
+Runas_Alias RA2 = "foo\""
+Runas_Alias RA3 = "foo:bar"
+Runas_Alias RA4 = "foo:bar\""
+
+# Check quoted host name in Defaults
+Defaults@"somehost" set_home
+Defaults@"quoted\"" set_home
+
+# Check quoted user name in Defaults
+Defaults:"you" set_home
+Defaults:"us\"" set_home
+Defaults:"%them" set_home
+Defaults:"%: non UNIX 0 c" set_home
+Defaults:"+net" set_home
+
+# Check quoted runas name in Defaults
+Defaults>"someone" set_home
+Defaults>"some one" set_home
+
+# Check quoted command in Defaults
+# XXX - not currently supported
+#Defaults!"/bin/ls -l" set_home
+#Defaults!"/bin/ls -l \"foo\"" set_home
+
+# Check quoted user, runas and host name in Cmnd_Spec
+"foo"          "hosta" = ("root") ALL
+"foo.bar"      "hostb" = ("root") ALL
+"foo\""                "hostc" = ("root") ALL
+"foo:bar"      "hostd" = ("root") ALL
+"foo:bar\""    "hoste" = ("root") ALL
+
+# Check quoted group/netgroup name in Cmnd_Spec
+"%baz"                 "hosta" = ("root") ALL
+"%baz.biz"             "hostb" = ("root") ALL
+"%:C/non UNIX 0 c"     "hostc" = ("root") ALL
+"%:C/non\'UNIX\'1 c"   "hostd" = ("root") ALL
+"%:C/non\"UNIX\"0 c"   "hoste" = ("root") ALL
+"%:C/non_UNIX_0 c"     "hostf" = ("root") ALL
+"%:C/non\'UNIX_3 c"    "hostg" = ("root") ALL
+"+netgr"               "hosth" = ("root") ALL
 EOF
 
 # Check results