2
0
mirror of https://github.com/sudo-project/sudo.git synced 2025-08-22 01:49:11 +00:00

Add checks for sudoers_locale early Defaults

This commit is contained in:
Todd C. Miller 2016-11-10 14:36:11 -07:00
parent 79ca752802
commit 52e136863f
6 changed files with 67 additions and 0 deletions

View File

@ -466,6 +466,11 @@ plugins/sudoers/regress/visudo/test5.out.ok
plugins/sudoers/regress/visudo/test5.sh
plugins/sudoers/regress/visudo/test6.out.ok
plugins/sudoers/regress/visudo/test6.sh
plugins/sudoers/regress/visudo/test7.out.ok
plugins/sudoers/regress/visudo/test7.sh
plugins/sudoers/regress/visudo/test8.err.ok
plugins/sudoers/regress/visudo/test8.out.ok
plugins/sudoers/regress/visudo/test8.sh
plugins/sudoers/set_perms.c
plugins/sudoers/solaris_audit.c
plugins/sudoers/solaris_audit.h

View File

@ -0,0 +1 @@
stdin: parsed OK

View File

@ -0,0 +1,29 @@
#!/bin/sh
#
# Test sudoers_locale early Defaults
#
LANG=C; export LANG
LC_NUMERIC=fr_FR.UTF-8; export LC_NUMERIC
# First check that visudo supports non-C locales
# Note that older versions of sudo did not set the locale
# until sudoers was read so this check will fail on them.
./visudo -csf - >/dev/null 2>&1 <<-EOF
Defaults sudoers_locale = fr_FR.UTF-8
Defaults passwd_timeout = "2,5"
EOF
# Now make sure we can set passwd_timeout to a floating point value
# using a non-C locale.
if [ $? -eq 0 ]; then
./visudo -csf - <<-EOF
Defaults passwd_timeout = "2,5"
Defaults sudoers_locale = fr_FR.UTF-8
EOF
else
# No support for LC_NUMERIC?
echo "stdin: parsed OK"
fi
exit 0

View File

@ -0,0 +1 @@
visudo: stdin:1 value "2.5" is invalid for option "passwd_timeout"

View File

@ -0,0 +1 @@
parse error in stdin near line 1

View File

@ -0,0 +1,30 @@
#!/bin/sh
#
# Test sudoers_locale early Defaults
#
LANG=C; export LANG
LC_NUMERIC=fr_FR.UTF-8; export LC_NUMERIC
# First check that visudo supports non-C locales
# Note that older versions of sudo did not set the locale
# until sudoers was read so this check will fail on them.
./visudo -csf - >/dev/null 2>&1 <<-EOF
Defaults sudoers_locale = fr_FR.UTF-8
Defaults passwd_timeout = "2,5"
EOF
# Now make sure we can set passwd_timeout to a floating point value
# using a non-C locale.
if [ $? -eq 0 ]; then
./visudo -csf - <<-EOF
Defaults passwd_timeout = "2.5"
Defaults sudoers_locale = fr_FR.UTF-8
EOF
else
# No support for LC_NUMERIC?
echo "parse error in stdin near line 1"
echo 'visudo: stdin:1 value "2.5" is invalid for option "passwd_timeout"' 1>&2
fi
exit 0