samba how to display files with colon in their names?
The problem with Samba's
mangled names option is that neither setting is ideal. You can have names that are not mangled, but cannot be accessed in any way because they contain illegal characters, or names that are mangled into the DOS 8.3 format and hence close to unreadable.
Fortunately there is (now) a VFS module called
catia which will provide custom character mappings. In particular it's possible to map out the characters considered illegal in Windows filenames.
[global] section place these lines:
# Mapping illegal characters, where enabled with "vfs objects = catia" mangled names = no catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6
[share_name] section add this next line (if you already have a
vfs objects line, just append
catia to the list):
vfs objects = catia
As usual, if it's going to apply to all your shares, this share-based setting can be placed in
[global] instead of each individual share defintion.
On my Debian-based system this VFS object module was installed as part of the standard package.
One example of a filename that is mapped by this setting is
2017-12-24 12:23.txt. Using
mangled names = yes has this file displayed as
vfs objects = catia instead has this file name displayed as
2017-12-24 12÷23.txt. It's not perfect but it's pretty good. And most importantly, I can access it from Windows applications.
For some reason Samba started to mangle the file names containing a colon. That far I could not find anything regarding this behavior in Internet.
The solution is very simple. Adding
mangled names = no in the
[global] section to
/etc/samba/smb.conf and restarting Samba fixed the issue.