FUSE (Filesystem in Userspace) is a simple interface for userspace programs to export a virtual filesystem to the Linux kernel. Fuse also aims to provide a secure method for non privileged users to create and mount their own filesystem implementations.
Enable the following options in the kernel configuration and recompile the kernel if necessary:
File systems ---> <*/M> FUSE (Filesystem in Userspace) support [FUSE_FS]
Character devices in userspace should be enabled too for running the tests:
File systems ---> <*/M> FUSE (Filesystem in Userspace) support [FUSE_FS] <*/M> Character device in Userspace support [CUSE]
Prepare Fuse by running the following commands:
sed -i '/^udev/,$ s/^/#/' util/meson.build meson setup build --prefix=/usr --buildtype=release
Build the application with:
ninja -C build
Testsuite requires the pytest Python Module not available in the chroot environment.
The "pytest" Python module is required for the tests. One test
named test_cuse will fail if the
CONFIG_CUSE configuration
item was not enabled when the kernel was built. One test,
test/util.py, will output a warning
due to the usage of an unknown mark in pytest.
Now, Install the Package:
ninja -C build install
chmod u+s /usr/bin/fusermount3
cp -Rv doc/html -T /usr/share/doc/fuse-3.18.1
install -v -m644 doc/{README.NFS,kernel.txt} /usr/share/doc/fuse-3.18.1
sed ... util/meson.build: This command disables the installation of a boot script and udev rule that are not needed.
--buildtype=release:
Specify a buildtype suitable for stable releases of the package, as
the default may produce unoptimized binaries.
--system-site-packages:
Allow the Python3 venv module to
access the system-installed /usr/lib/python3.14/site-packages directory.
Some options regarding mount policy can be set in the file
/etc/fuse.conf. To install the file
run the following command as the root user:
cat > /etc/fuse.conf << "EOF"
# Set the maximum number of FUSE mounts allowed to non-root users.
# The default is 1000.
#
#mount_max = 1000
# Allow non-root users to specify the 'allow_other' or 'allow_root'
# mount options.
#
#user_allow_other
EOF
Additional information about the meaning of the configuration options are found in the man page.