pagename = "secretfs" pagedesc = "A secret sharing filesystem" >>
This filesystem allows you to combine secrets made by libgfshare spliting a secret into shares. In particular this filesystem supports some of the shares appearing/vanishing and copes by marking files unreadable until all the shares are readable.
Your SSH private key (id_rsa) is split into a 2-of-N share and one share is placed on your laptop and one on a USB stick. You want your laptop to always have id_rsa available if the USB key is inserted. You create a secretfs root and mount point and mount it. You place one share into the root and a symlink to where the USB key's share will appear. When the USB share is available, a readable id_rsa turns up in the mount point. You then symlink that into your .ssh directory and thus when your USB stick is present, you can ssh with your key.
Each shared element must have a symlink (or have the share present) with the filename myfilename.NNN where the 'NNN' is the share number in each case. (Exactly how the gfsplit tool produces its output) Note that secretfs does not support subdirectories and it's not massively predictable what happens if the shares aren't all the same size.
The filesystem will create a node for filename in the mount point. If all of the shares are readable then the file will have the owner-read bit set, otherwise it will have no mode bits set.
# Assuming you have bzr etc. $ bzr branch http://bzr.digital-scurf.org/trees/dsilvers/secretfs secretfs # ... time passes as stuff is downloaded. $ cd secretfs $ make # ... time passes as the filesystem is built.<<