I am in the middle of migrating a number of applications from one server
to another and I am running into an issue with backslashes on a smbfs
mount. Basically, the backslash can be used in a file path on the old
server and not on the new. This turns out to be important because of the
samba share is used to store data for a large number of FTP clients, who
use an old automated script which chokes on the backslash. The script
unfortunately would be very difficult to replace.
Let me show you how it behaves on the old server:
old_server# ls a
b
old_server# cat a/b
foobar
old_server# cat a\\b
foobar
old_server# touch a\\b
old_server#
(The FTP script does things like "put a\b" and expects file b to get
put into the directory a.)
On the new server, however, this does not work:
new_server# ls a
b
new_server# cat a/b
foobar
new_server# cat a\\b
cat: a\b: Invalid argument
new_server# touch a\\b
touch: setting times of `a\\b': Invalid argument
Since smbfs is going away, I should add that I tried cifs and got the same
results.
The old server is Red Hat 7.3 with samba 2.2.7. The new server is
running SUSE Enterprise 10 and samba 3.0.22.
The samba share itself is on a Netapp. We tried NFS from the netapp but
had much worse problems.
Here's the smb.conf file:
[global]
winbind cache time = 10
template shell = /bin/tcsh
template homedir = /home/%U
winbind uid = 10000-20000
winbind gid = 10000-20000
workgroup = somedomain.org
security = domain
password server = *
encrypt passwords = yes
hosts allow = 0.0.0.0/0
I've tried dinking around with the mount options, including the iocharset
and the codepage. I tried the mangling maps option in smb.conf. However,
I'm not getting anywhere and I am stumped. Does anyone have some
suggestions on restoring the old behaviour in either smbfs or cifs, or
some workaround?
Thanks,
Michael