Re: Meaning of sudoers_locale option

"Todd C. Miller" <[email protected]>
Newsgroups gmane.comp.tools.sudo.devel
Message-ID <[email protected]>
On Mon, 04 Jul 2016 11:02:43 -0400, Tomas Sykora wrote:

> I was working on this problem: https://bugzilla.sudo.ws/show_bug.cgi?id=748
> 
> The fix seems OK, but I noticed that the option sudoers_locale
> probably does not work as described in man pages: Locale to use
> when parsing the sudoe rs file, logging commands, and sending email.
> Note that changing the locale may affect how sudoers is interpreted.
> Defaults to "C".
>
> When these default values are used in sudoers file:
> Defaults    sudoers_locale = cs_CZ.UTF-8
> Defaults    passwd_timeout = 0,1
> 
> sudo returns this error:
> >>> /etc/sudoers: syntax error near line 58 <<<
> sudo: parse error in /etc/sudoers near line 58
> sudo: no valid sudoers sources found, quitting
> sudo: unable to initialize policy plugin

Because sudo uses commas in the sudoers grammar itself you'll need
to quote them, e.g.:

Defaults    passwd_timeout = "0,1"

> When I set 'cs_CZ.UTF-8' locale to parse the file, '1,0' should be
> a valid value.  The problem seems to be in a grammar which is used
> by the parser, I'm not sure if I am free to change it.
>
> Another question is that if '1,0' even passed through the parser,
> the position of
>
> 'Defaults    sudoers_locale = cs_CZ.UTF-8' in the sudoers file must
> matter, because Defaults are loaded from the top to the bottom of the
> file, so :
> 
> Defaults    sudoers_locale = cs_CZ.UTF-8
> Defaults    passwd_timeout = 0,1
> 
> theoretically would pass but :
> 
> Defaults    passwd_timeout = 0,1
> Defaults    sudoers_locale = cs_CZ.UTF-8
> 
> would not. Shouldn't it be mentioned in the documentation that the
> position of 'sudoers_locale' matters or even that it must be placed
> to the beginning of the sudoers file so as it would behave according
> to the man pages description mentioned above? I wasn't sure about
> it, that's why I'm asking.

I recently committed changes to set the locale before parsing other
Defaults settings.  See https://www.sudo.ws/repos/sudo/rev/32062737a1ae
as well as the follow-up commits.  With sudo trunk I am able to use:

Defaults    passwd_timeout = 0,1
Defaults    sudoers_locale = cs_CZ.UTF-8

and it behaves as expected.  There are still some locale issues to
be fixed for sudo 1.8.18 though.

 - todd
____________________________________________________________
sudo-workers mailing list <[email protected]>
For list information, options, or to unsubscribe, visit:
https://www.sudo.ws/mailman/listinfo/sudo-workers
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.