Limitations of SMB access to DartFS

There are some limitations in the SMB protocol itself, particularly in the permitted characters in file names, and also in the preservation of file metadata (timestamps, permissions, extended attributes).  These show up mostly when using Mac or Linux with DartFS mounted via SMB.

The results depend somewhat on the tool used to do the copy.  Finder dragging is often different from command line cp or rsync

  • Forbidden characters in filenames <>:”/\|?*  plus ascii control-characters 0-31.  See:    https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file  If filenames are created on Linux containing these characters, the files will be generally visible to SMB clients, but the rendering of the name will depend on client options.
  • POSIX permissions are in general not preserved, but instead you get what a new file on the destination would have.
  • Timestamps are preserved by Finder drag, but not necessarily by command line tools
  • MacOS Extended Attributes seem to be preserved
  • MacOS-specific ACLs (Access Control Lists) are not preserved.
  • Filename case is preserved, but SMB is case insensitive, while Linux is case sensitive and Macs can be optionally made case sensitive.  You can not use files in the same directory which differ only in case.