DOS style 8.3 filename mangling issues??!

Maximillian Xavier Brampton spambrat at quanta.paypc.com
Mon Jan 26 21:23:56 GMT 1998


Okay, I've run through all of the tests in the DIAGNOSE, which my 1.9.18p1 SAMBA
server (and NT4SP3/W95 clients) pass with flying colours.

server box: Linux 2.0.33, gcc 2.7.2.2, libc 5.4.33, shadow, quota on (usr+grp),
and my smb.conf is summarised (by testparm output) below:

Problem is this: with respect to programs not long filename-aware/compliant,
users cannot "double-click" on files (long filenames or files within long
filenamed directories)...  (Nor can they run older (pre-long filename supported)
executables named or existing within long filenamed directories)...

For instance:

t:\Security Software\test\test.exe
will fail to load (test.exe being a 3.1X Windows app)....

but if I change the directory name of "Security Software" to "Security"...
everything's peachy and glorious.

Same thing happens inside of an older version of Protel (Circuit PCB layout
program).  Users double-click on a long filename, the Protel program launches,
but never opens up the file.  User must go through the File...menu (Open),
whereupon the usual 8.3 mangled crap appears, and the user can select and edit
them just fine.  But double-clicking on the file in NT Explorer doesn't seem to
work.  I dunno who is dropping the ball with respect to the file handling.

BTW, this behaviour is not present on local NTFS volumes, or NT served
filesystems.

By the way... as a word (or a few more) of strong compliments and
encouragements... compiling and installing samba (this latest release) was
painless and easy.  It took me longer to hunt down a quota package than to
compile the entire setup and get it going.  I started with the sample config
file, and followed the instructions (NT4 or OSR2 users DEFINITELY save yourself
pain by using smbpasswd, and security=user, if at all feasible).

I can't tell you the joy it gave me after setting up all of my NT4/OSR2 users up
on the linux box with account names and passwords (smbpasswd) to be the same as
the one they use for their NT Domain login password how everything just worked
with zero user intervention or disruptions.  It just plain worked without a
single hassle.  Hell, I was expecting to have to enter usernames and passwords
on the clients again to set them up, and I was denied even THAT "privilege" :)))
It handed off the requests transparently as it would for any "real" NT server.

Performance is extrememly good.  While it's difficult to directly compare
machine to machine, etc....  There's no question samba is at least as fast as
NT's file server, but in looking at network utilisation and throughput, I'd
daresay Linux (with its much more intelligent usage of memory, buffering,
caching, and overall superior TCP-IP protocol implementation) is faster in any
test.  I see near perfect ethernet speeds between decent clients and the Linux
box, which I rarely did with NT's file server.  It's also very telling to note
that the Linux box (with its FULL suite of internet services running, including
Mark Crispin's IMAP4r1 package for mail, SSL-enabled Apache (SSLeay is very
cool!), ssh, LDAP (slapd), the whole nine yards... runs on a machine with 1/2
the physical memory of the NT4 server.

And of course, there's no question about "machine thrash" comparisons.  When I
point some fast clients at NT4, it grinds to a bloody (and unusable) halt during
the battery.  (It's a SCSI drive based server with comparable PCI ethernet card
as the Linux box), while with Samba I've rarely seen more than 8-10% CPU
utilisation, and normal client operations seem relatively unaffected by the
1.05MB/sec sustained traffic going on. (You can see the difference starkly in
the way the two os's handle disk i/o - the drive light on the linux box doesn't
stay lit so long (lots of buffering and write holding-before-committing), under
NT it seems to be bashing the drive constantly.  I know ext2 doesn't frag
anywhere nearly as badly as NTFS seems to...  But who knows the real reasons
why... it's simply what I observe... (the Linux has much more files on it than
the NT box does, although aggregate storage sizes are about the same -- 9GB or
so).

I dunno, I'm sure the difference (overall) isn't too dramatic, but... I'm
content that you could run a good sized enterprise server on very modest
hardware with the Linux solution, compared with the NT one.  And one thing is
most certainly true: you won't have "Registry problems", needs to reinstall your
OS for no reason, and no more need to spend another dime on upgrades you
shouldn't have to buy [anyone seen "Forever Never Dies"?  That software exec
reporting how they released software with dozens of bugs, ensuring years of
"upgrades" must have resonated with not a few system admins.]

Anyhow... I'll climb down from my little soapbox.  I'm simply amazed this works
so damned well... speed is awesome, security is excellent (F00F bug, teardrop
attacks, splatterbombs, et al, get resolved in mere days while many of those
attacks can still take down my NT4SP3 server).   My mom told me there was never
a thing called a "free lunch" - but maybe, with a little patience and being
open-minded, one can find a lunch that tastes great, is filling, and didn't cost
much... and doesn't clog your arteries.  A fine job, you Samba dudes, a fine
job.

=Max=

--------------
Except of smb.conf (dumped with testparms)

Load smb config files from /usr/local/lib/smb.conf
Processing section "[homes]"
Processing section "[Public]"
Processing section "[Applications]"
Processing section "[Projects]"
Loaded services file OK.
WARNING: You have some share names that are longer than 8 chars
These may give errors while browsing or may not be accessible
to some older clients
Press enter to see a dump of your service definitions

# Global parameters
        debuglevel = 2
        syslog = 1
        syslog only = No
        protocol = NT1
        security = USER
        max disk size = 0
        lpq cache time = 10
        announce as = NT
        encrypt passwords = Yes
        getwd cache = Yes
        read prediction = Yes
        read bmpx = Yes
        read raw = Yes
        write raw = Yes
        use rhosts = No
        load printers = No
        null passwords = No
        strip dot = No
        interfaces =
        bind interfaces only = No
        password server =
        socket options = TCP_NODELAY
        netbios name =
        netbios aliases =
        smbrun = /usr/local/bin/smbrun
        log file = /usr/local/var/log.%m
        config file =
        smb passwd file = /usr/local/private/smbpasswd
        hosts equiv =
        preload =
        server string = Samba 1.9.18p1 Server on Linux
        printcap name = /etc/printcap
        lock dir = /usr/local/var/locks
        root directory = /
        default service =
        message command =
        dfree command =
        passwd program = /usr/local/bin/smbpasswd
        passwd chat = *old*password* %o\n *new*password* %n\n *new*password* %n\
n *changed*
        valid chars =
        workgroup = PAYPC
        username map =
        character set =
        logon script =
        logon path = \\%N\%U\profile
        logon drive =
        logon home = \\%N\%U
        remote announce =
        remote browse sync =
        socket address = 0.0.0.0
        homedir map =
        announce version = 4.2
        max log size = 100
        mangled stack = 50
        max mux = 50
        max xmit = 65535
        max packet = 65535
        password level = 0
        username level = 0
        keepalive = 0
        deadtime = 60
        time offset = 0
        read size = 16384
        shared mem size = 102400
        coding system =
        client code page = 850
        os level = 0
        max ttl = 14400
        max wins ttl = 259200
        min wins ttl = 21600
        lm announce = Auto
        lm interval = 60
        dns proxy = No
        wins support = No
        wins proxy = No
        wins server = 
        preferred master = No
        local master = Yes
        domain master = No
        domain logons = No
        browse list = Yes
        unix realname = No
        NIS homedir = No
        time server = Yes
        printer driver file = /usr/local/lib/printers.def


# Default service parameters
        comment =
        copy =
        include =
        exec =
        postexec =
        root preexec =
        root postexec =
        alternate permissions = No
        revalidate = No
        default case = lower
        case sensitive = No
        preserve case = Yes
        short preserve case = Yes
        mangle case = No
        mangling char = ~
        browseable = Yes
        available = Yes
        path =
        username =
        guest account = nobody
        invalid users = root admin @wheel samson gaijin butthole
        valid users =
        admin users =
        read list =
        write list =
        volume =
        force user =
        force group =
        read only = Yes
        max connections = 0
        min print space = 0
        create mask = 0744
        force create mode = 00
        directory mask = 0755
        force directory mode = 00
        set directory = No
        status = Yes
        hide dot files = Yes
        delete veto files = No
        veto files =
        hide files = /.*/DesktopFolderDB/Trash-For%m/resource.frk/*Desktop DB*/*
Desktop DF*/*OpenFolderList*/*Network Trash Folder*/Network Trash Folder*/Icon*/
%Icon*/
        veto oplock files =
        guest only = No
        guest ok = No
        print ok = No
        postscript = No
        map system = No
        map hidden = No
        map archive = Yes
        locking = Yes
        strict locking = No
        share modes = Yes
        oplocks = Yes
        only user = No
        wide links = Yes
        follow symlinks = Yes
        sync always = No
        mangled names = Yes
        fake oplocks = No
        printing = bsd
        print command = lpr -r -P%p %s
        lpq command = lpq -P%p
        lprm command = lprm -P%p %j
        lppause command =
        lpresume command =
        printer =
        printer driver = NULL
        printer driver location =
        hosts allow = 
        hosts deny =
        dont descend = /proc,/dev
        magic script =
        magic output =
        mangled map =
        delete readonly = No
        dos filetimes = No

[homes]
        comment = Home Directories
        browseable = No
        valid users = @quanta peter
        read only = No

[Public]
        comment = Public Stuff
        path = /Public
        write list = @quanta
        read only = No
        guest ok = Yes

[Applications]
        comment = Applications
        path = /Applications/
        valid users = @quanta peter
        write list = @quantgod
        read only = No

[Projects]
        comment = Project Directories
        path = /projects
        valid users = @quanta peter
        write list = @quanta
        read only = No

[IPC$]
        comment = IPC Service (Samba 1.9.18p1 Server on Linux)
        path = /tmp
        status = No
        guest ok = Yes



More information about the samba mailing list