desktop-linux icon indicating copy to clipboard operation
desktop-linux copied to clipboard

Command setfacl doesn't work in Linux with folders under bind mounts (works in Windows or with volume mounts)

Open gremo opened this issue 2 years ago • 4 comments

Description

There is an inconsistent behavior of setfacl between Windows (and possibly MacOS) and Linux. Seems that setfacl cannot be used with folders in a bind-mount on Linux, only on Windows (and possibly MacOS).

You can try it yourself with this minimal repository.

Reproduce

Minimal repository.

Given:

  • folder-volume: a Docker volume
  • folder-bind: a regular folder inside a Docker bind-mount (entire /workspace is a bind-mount)

Running setfacl on folder-volume:

setfacl -dR -m u:www-data:rwX -m u:"$(whoami)":rwX /workspace/folder-volume

  • ✅ Windows works fine
  • ✅ Linux works fine

Running setfacl command on folder-bind:

setfacl -dR -m u:www-data:rwX -m u:"$(whoami)":rwX /workspace/folder-bind

  • ✅ Windows works fine
  • ❌ Linux throws the error Not supported

setfacl

Expected behavior

No response

docker version

Client: Docker Engine - Community
 Cloud integration: v1.0.35-desktop+001
 Version:           24.0.6
 API version:       1.43
 Go version:        go1.20.7
 Git commit:        ed223bc
 Built:             Mon Sep  4 12:32:10 2023
 OS/Arch:           linux/amd64
 Context:           desktop-linux

Server: Docker Desktop 4.22.1 (118664)
 Engine:
  Version:          24.0.5
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.6
  Git commit:       a61e2b4
  Built:            Fri Jul 21 20:35:45 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.21
  GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8
 runc:
  Version:          1.1.7
  GitCommit:        v1.1.7-0-g860f061
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

docker info

Client: Docker Engine - Community
 Version:    24.0.6
 Context:    desktop-linux
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.11.2-desktop.1
    Path:     /usr/lib/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.20.2-desktop.1
    Path:     /usr/lib/docker/cli-plugins/docker-compose
  dev: Docker Dev Environments (Docker Inc.)
    Version:  v0.1.0
    Path:     /usr/lib/docker/cli-plugins/docker-dev
  extension: Manages Docker extensions (Docker Inc.)
    Version:  v0.2.20
    Path:     /usr/lib/docker/cli-plugins/docker-extension
  init: Creates Docker-related starter files for your project (Docker Inc.)
    Version:  v0.1.0-beta.6
    Path:     /usr/lib/docker/cli-plugins/docker-init
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
    Version:  0.6.0
    Path:     /usr/lib/docker/cli-plugins/docker-sbom
  scan: Docker Scan (Docker Inc.)
    Version:  v0.26.0
    Path:     /usr/lib/docker/cli-plugins/docker-scan
  scout: Command line tool for Docker Scout (Docker Inc.)
    Version:  0.20.0
    Path:     /usr/lib/docker/cli-plugins/docker-scout

Server:
 Containers: 7
  Running: 0
  Paused: 0
  Stopped: 7
 Images: 37
 Server Version: 24.0.5
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 3dce8eb055cbb6872793272b4f20ed16117344f8
 runc version: v1.1.7-0-g860f061
 init version: de40ad0
 Security Options:
  seccomp
   Profile: unconfined
  cgroupns
 Kernel Version: 5.15.49-linuxkit-pr
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 7.543GiB
 Name: docker-desktop
 ID: 680200fb-2dba-4350-9041-3f6fd09fabd7
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: daemon is not using the default seccomp profile

Diagnostics ID

0e64b90a-f232-4db2-a361-2c66e0f2b68c/20230915182517

Additional Info

No response

gremo avatar Sep 15 '23 18:09 gremo

Any update? More info needed? Thanks.

gremo avatar Oct 05 '23 17:10 gremo

The problem still persist. A solution can be given ?

louismariegaborit avatar Feb 15 '24 13:02 louismariegaborit

Still here

vasilvestre avatar Jul 05 '24 08:07 vasilvestre

This is a showstopper, can this be resolved?

ellisonpatterson avatar Jul 08 '24 22:07 ellisonpatterson