I have implemented a FreeNAS solution and setup SMB sharing. I have also setup regular snapshots. I was pleased to find that Windows was able to see these snapshots in it's "Previous Versions" tab:
From this tab, I can restore versions of files for as many revisions as the server has. Great! But I'm having a devil of a time finding this functionality in Ubuntu land.
How do I restore previous revisions of files as stored on a remote SMB share, analogously to the Windows "Previous Versions" tab?
(I'm currently using Ubuntu 16.04, if that helps guide your response.)
You get this feature with GNOME Files (Nautilus) if you enable GNOME Backup (Déjà-Dup). You may need to install the nautilus-dejadup extension which isn't installed by default in all Linux distributions. After setting this up, you can right-click on files in nautilus and you'll get a list of all dates for that specific file. It doesn't work too well with folders, however. It works great for files!
You are talking about a File Versioning Filesystem. This is not supported by the mainstream Linux file systems.
There are a number of possible other filesystems, but they all seem quite old/abandoned with the exception of NILFS.
But I don't know how/if that works on a FreeNAS, espeicllay with SMB.
What does work, however, are various cloud solutions.
Owncloud for example, brings its own versioning system! You don't have to use the other cloud functionalities. You can use the web interface to see the versions and restore them individually.
The trick would be to use your SMB share as part of the owncloud directory, then no actual syncing or any other "cloud-stuff" would happen.
See the FreeNAS Forum for owncloud setup.
I'm unaware of any file manager for Linux with support for previous file versions like Windows Explorer.
However, since FreeNAS is based on a Unix-like operating sytstem you could simply expose the snapshot location to the network. How to do that is, of course, off topic here.