## FLUC Filesystem for Linux

flucFS uses FUSE to mount an existing directory in some other folder. Everything written to the mounted folder is transparently converted, encrypted, compressed as defined in the configuration. If no match is found in its configuration, the data is passed through without any change. The configuration is done with the argument strings of the FLUC byte interface API. However, since flucFS is a filesystem and uses only the read and write functions of the API, the element access features of the API are not useable with flucFS.

### Dependencies

#### Kernel module

The fuse kernel module must be loaded in order to use any fuse filesystem. This kernel module is usually installed with the linux kernel.

This can be checked with

         lsmod | grep fuse

To load it, just run

         modprobe fuse

with root permissions.

In unusual circumstances, FUSE support might be built into the kernel image.

#### Library

flucFS depends on the FUSE user space library. This library and the required utilities are installed with

         yum install fuse fuse-libs

on RedHat Enterprise Linux or CentOS.

         zypper install fuse libfuse2

on SLES or openSUSE

         apt-get install fuse

on Debian or Ubuntu

         pacman -S fuse3 fuse2

on ArchLinux or Manjaro

### Usage

The current version of the FUSE library is 3.1.1 and uses a slightly different API than older versions (starting with 2). It is possible to have both versions of the FUSE library installed at the same time. Since some Linux distributions only provide an older version (2) two executables are shipped: flucFS and flucFS2

In case only an older version is available the executable flucFS will NOT work. Use flucFS2 instead when executing any of the following commands.

To mount the folder /var/data on the folder /home/hugo/mydata execute this command:

         flucFS -l logfile /var/data /home/hugo/mydata

If this is started from within the folder /home/hugo it can be abbreviated with

         flucFS -l logfile /var/data mydata

If no logfile is specified, flucFS will NOT run as daemon and the logging is done to stderr.

To unmount the filesystem execute

         fusermount -u /home/hugo/mydata

or, if it was not running as a daemon, just hit <Ctrl>-C

After it is unmounted, all data was written to the logfile. In case of errors, the contents will help us at limes datentechnik to figure out the cause. For further details of flucFS please see the documentation: flucFS(1)

### Known issues

If a mount command fails with this message:

        fuse: failed to open /dev/fuse: Permission denied

Users NOT belonging to the group fuse are usally denied access to /dev/fuse

Solution: The preferred solution is to add the required users to the fuse group. This is done by adding them to end of the line starting with fuse in /etc/group

An alternative solution is to alter the permissions of the device node /dev/fuse to allow read and write for any user in order to mount a FUSE filesystem by a user other than root. This can be done by executing

        chmod ugo+rw /dev/fuse

If a mount command fails with this message:

        version `FUSE_2.8' not found (required by ./flucFS2)

the FUSE library is too old for the shipped flucFS2.

Solution:

- Get a newer version of libfuse.so, at least 2.8
- Contact limes datentechnik to provide you with a version of flucFS2 that is built for such an old library. 2.8.0 was released on August 18th 2009 (see: FUSE releases)