Giuseppe Scrivano 27cabd561b
main: Allow escaped colons in directory paths
Allow directory paths specified for lowerdir, upperdir and workdir to
contain colon characters.

Previously, colons were unconditionally treated as separators,
making it impossible to use directories with colons in their names.

Closes: https://github.com/containers/fuse-overlayfs/issues/440

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2025-04-28 18:46:30 +02:00
2023-04-11 18:24:22 +02:00
2019-07-22 13:07:00 +02:00
2022-02-18 10:59:37 +08:00
2019-07-29 01:04:41 +02:00
2020-02-08 17:24:56 -05:00
2025-03-26 11:56:57 +08:00
2023-10-02 15:12:42 +02:00
2023-10-02 15:12:42 +02:00
2023-10-02 15:12:42 +02:00
2024-06-27 15:45:18 +02:00
2023-10-02 15:12:42 +02:00
2023-10-02 15:12:42 +02:00
2023-10-02 15:12:42 +02:00
2020-05-09 15:14:50 -04:00
2024-12-02 09:52:35 +01:00
2024-12-02 09:52:35 +01:00

fuse-overlayfs

An implementation of overlay+shiftfs in FUSE for rootless containers.

Usage:

$ fuse-overlayfs -o lowerdir=lowerdir/a:lowerdir/b,upperdir=up,workdir=workdir merged

Specify a different UID/GID mapping:

$ fuse-overlayfs -o uidmapping=0:10:100:100:10000:2000,gidmapping=0:10:100:100:10000:2000,lowerdir=lowerdir/a:lowerdir/b,upperdir=up,workdir=workdir merged

Requirements:

If you are not using the static build as explained in the next chapter, your system needs libfuse > v3.2.1.

  • On Fedora: dnf install fuse3-devel
  • On Ubuntu > v19.04: apt install libfuse3-dev

Also, please note that, when using fuse-overlayfs from a user namespace (for example, when using rootless podman) a Linux Kernel > v4.18.0 is required.

Static Build:

This project provides a convenient way to automatically perform a static build using a container. The result is a self-contained binary without dependencies, that can be copied across hosts.

  1. Install buildah as explained here;

  2. Both the build and deploy host require the special device /dev/fuse; there are a few ways to obtain it:

  • install fuse2 or fuse3 using the package manager of your choice (dnf, apt, pacman, etc): the install script will usually create the device automatically; or
  • manually create the device with the command mknod /dev/fuse -m 0666 c 10 229 (see this code)
  1. Clone this repository, and switch to the top-level folder containing the file "Containerfile.static.ubuntu";

  2. Launch the build with the command (note the single dot . at the end):

buildah bud -v $PWD:/build/fuse-overlayfs -t fuse-overlayfs -f ./Containerfile.static.ubuntu .
  1. Copy the resulting binary to your host:
sudo cp fuse-overlayfs /usr/bin/
Description
FUSE implementation for overlayfs
Readme 1.9 MiB
Languages
C 61.4%
M4 33.3%
Shell 2.2%
Makefile 2.1%
Roff 0.7%
Other 0.3%