Architcecture for winbindd client character conversion.

Jeremy Allison jra at samba.org
Tue Aug 28 16:05:58 GMT 2007


On Tue, Aug 28, 2007 at 09:59:35AM -0400, simo wrote:
> 
> Honestly,
> I think it is an error we shouldn't commit.
> 
> The file system uses the same locale regardless of what the user sets.
> If you use unix charset = utf8 in smbd then all files are saved in utf8
> This means that returning the home directory in ISO8859-1 is just wrong
> as any user that has a non-ASCII character in the name will not be able
> to access his home directory.
> 
> Locale is a per-system thing, the fact that someone like to play tricks
> setting a different locale just in some shells is not a good reason to
> make thing break subtly.
> 
> People should move to utf8 system wide, or they MUST set the correct
> unix charset parameter, anything else is just broken and will led to
> horrible hacks and bugs IMO.
> 
> Please don't do this to winbindd or, at least, make it an option that is
> very difficult to activate.

Wow - people don't seem to be getting this :-).

Right now, on Ubuntu for example, USA English users can't
log in with usernames that contain characters in the charset
greater than 127.

Why ? Because the default locale is en_US, and winbindd defaults
to unix charset of utf8.

When we marshall the given string from the client, we mess it
up - we're assuming it's utf8, and it's ISO8859-1.

If any client sets it's locale to anything other than what
we have set in smb.conf then we break *RIGHT NOW*.

This is clearly an unacceptable bug for winbindd.

Jeremy.


More information about the samba-technical mailing list