Practicality of fixing samba's case mangling problems?

Linda Walsh samba at tlinx.org
Tue Dec 27 08:49:29 MST 2011


   
Samba has multiple areas of case mangling problems that cause 
incompatibilities
when used with windows or linux clients.

How viable is the idea of fixing the problems?  Would the sky fall in if 
it preserved case, but
either 'ignored it', or gave preference to matches that included the 
case as typed (vs. alternate case
matches). 

The first would be fairly compatible with current Win implementation, 
but the 2nd would be
more compatible when it comes to looking for Domain (and _likely_, 
machine names).

I've looked at the traffic in an attempted join of workstation 'Athenae' 
into 'Bliss',
which has had it's case mangled by samba3.

Dialogue goes something like:

Workstation 'Athenae' broacasts:  I want a login user="" to domain Bliss.
(a query for a login server, I would gather.


PDC 'Ishtar' (samba3 on *nix), responds this login request, "there is no
user "" here.
Athenae then responses with login request for Athenae to 'Bliss' with marked
as a machine /domain trust account.

It doesnt' send a username, but a unicodename, as domain names can be 
unicode
and upper/lowercase.  Response from Bliss is 'Accepted/ok'.

Athenae now asks for the PDC so it can create a secure channel.  It gets 
back
ISHTAR/BLISS.  Win7 doesn't like that. 

It asked for Bliss, a Domain name, and got back BLISS, a WORKGROUP name.

So it issues a weird error message in the middle of it all and fails.

Similar problems happen in serving up a user's profile. under the Domain 
name.

On linux, a path /home/BLISS, doesn't give you the same path as 
/home/Bliss,
nor does 'x'/Domain Admins get take on linux for 'x/domain admins'... so 
logins
don't work unless the case matches. 

I've tried many kludge arounds, including symlinks for the differently 
cased options,
as well as multiple entries for the same user in /etc/passwd -- 
something that
causes random behavior depending on how many items are in a cache, it's 
size and
who referenced which varient when.

As near as I can tell, this change started with Win2000, and use of port 
445 when
names larger than the Netbios len of 15 chars were allowed (beause names 
passed over
445, aren't required to be netbios compatible.



FWIW, I've seen both BLISS and Bliss on my local net as a workgroup and 
a Domain
and they have different icons.  Since Samba started supporting port 445 
speak, it seems
like it also, perhaps unwittingly undertaken to support case preservation. 

The alternative is to keep case mangling but only speak on ports 
138/139...etc,
but to, which I think would work as samba was originally designed, but 
as soon as
features of NT5 were grafted on, samba ran the risk of incompats.


How can we move forward and get this fixed?




Thanks,
Linda



More information about the samba-technical mailing list