flock does not resolve paths correctly in containers with microk8s
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
AppArmor |
New
|
Undecided
|
Unassigned |
Bug Description
With the strict version of microk8s, we can "touch" files in directories such as /data/foo and read/write files there, but we cannot use flock or file_lock on such files as it triggers an apparmor denial:
[189905.568751] audit: type=1400 audit(163174615
Note that /data inside the container ends up getting mapped to somewhere inside $SNAP_COMMON:
root@machine-
123
root@machine-
/var/snap/
@joeborg can provide reproducer details but this seems like a bug in AppArmor where it isn't resolving the path properly.
Of particular note is that there is an overlayfs mount on / for the container, see:
root@test-jb:/# cat /proc/self/ mountinfo /var/snap/ microk8s/ common/ var/lib/ containerd/ io.containerd. snapshotter. v1.overlayfs/ snapshots/ 770/fs, upperdir= /var/snap/ microk8s/ common/ var/lib/ containerd/ io.containerd. snapshotter. v1.overlayfs/ snapshots/ 774/fs, workdir= /var/snap/ microk8s/ common/ var/lib/ containerd/ io.containerd. snapshotter. v1.overlayfs/ snapshots/ 774/work nodev,noexec, relatime - proc proc rw 65536k, mode=755, inode64 noexec, relatime - devpts devpts rw,gid= 5,mode= 620,ptmxmode= 666 nodev,noexec, relatime - mqueue mqueue rw nodev,noexec, relatime - sysfs sysfs ro nodev,noexec, relatime - tmpfs tmpfs rw,mode=755,inode64 besteffort/ poddb94f1c3- fdd4-4a92- 8f4d-abf8f59c9f df/9a5da99c7f9b 159290b6e39a781 8542063d006f8a4 999dacd4cdb2e9a 8adc864 /sys/fs/ cgroup/ systemd ro,nosuid, nodev,noexec, relatime - cgroup cgroup rw,xattr, name=systemd besteffort/ poddb94f1c3- fdd4-4a92- 8f4d-abf8f59c9f df/9a5da99c7f9b 159290b6e39a781 8542063d006f8a4 999dacd4cdb2e9a 8adc864 /sys/fs/ cgroup/ cpuset ro,nosuid, nodev,noexec, relatime - cgroup cgroup rw,cpuset, clone_children besteffort/ poddb94f1c3- fdd4-4a92- 8f4d-abf8f59c9f df/9a5da99c7f9b 159290b6e39a781 8542063d006f8a4 999dacd4cdb2e9a 8adc864 /sys/fs/ cgroup/ net_cls, net_prio ro,nosuid, nodev,noexec, relatime - cgroup cgroup rw,net_cls,net_prio besteffort/ poddb94f1c3- fdd4-4a92- 8f4d-abf8f59c9f df/9a5da99c7f9b 159290b6e39a781 8542063d006f8a4 999dacd4cdb2e9a 8adc864 /sys/fs/ cgroup/ perf_event ro,nosuid, nodev,noexec, relatime - cgroup cgroup rw,perf_event besteffort/ poddb94f1c3- fdd4-4a92- 8f4d-abf8f59c9f df/9a5da99c7f9b 159290b6e39a781 8542063d006f8a4 999dacd4cdb2e9a 8adc864 /sys/fs/cgroup/pids ro,nosuid, nodev,noexec, relatime - cgroup cgroup rw,pids besteffort/ poddb94f1c3- fdd4-4a92- 8f4d-abf8f59c9f df/9a5da99c7f9b 159290b6e39a781 8542063d006f8a4 999dacd4cdb2e9a 8adc864 /sys/fs/ cgroup/ blkio ro,nosuid, nodev,noexec, relatime - cgroup cgroup rw,blkio besteffort/ poddb94f1c3- fdd4-4a92- 8f4d-abf8f59c9f df/9a5da99c7f9b 159290b6e39a781 8542063d006f8a4 999dacd4cdb2e9a 8adc864 /sys/fs/ cgroup/ memory ro,nosuid, nodev,noexec, relatime - cgroup cgroup rw,memory nodev,noexec, relatime - cgroup cgroup rw,rdma besteffort/ poddb94f1c3- fdd4-4a92- 8f4d-abf8f59c9f df/9a5da99c7f9b 159290b6e39a781 8542063d006f8a4 999dacd4cdb2e9a 8adc864 /sys/fs/ cgroup/ devices ro,nosuid, nodev,noexec, relatime - cgroup cgroup rw,devices besteffort/ poddb94f1c3- fdd4-4a92- 8f4d-abf8f59c9f df/9a5da99c7f9b 159290b6e39a781 8542063d006f8a4 999dacd4cdb2e9a 8adc864 /sys/fs/ cgroup/ cpu,cpuacct ro,nosuid, nodev,noexec, relatime - cgroup cgroup rw,cpu,cpuacct besteffort/ poddb94. ..
2334 1749 0:166 / / rw,relatime - overlay overlay rw,lowerdir=
2335 2334 0:168 / /proc rw,nosuid,
2336 2334 0:169 / /dev rw,nosuid - tmpfs tmpfs rw,size=
2337 2336 0:170 / /dev/pts rw,nosuid,
2338 2336 0:157 / /dev/mqueue rw,nosuid,
2339 2334 0:162 / /sys ro,nosuid,
2340 2339 0:171 / /sys/fs/cgroup rw,nosuid,
2341 2340 0:30 /kubepods/
2342 2340 0:40 /kubepods/
2343 2340 0:38 /kubepods/
2344 2340 0:37 /kubepods/
2345 2340 0:36 /kubepods/
2346 2340 0:42 /kubepods/
2347 2340 0:41 /kubepods/
2348 2340 0:43 / /sys/fs/cgroup/rdma ro,nosuid,
2349 2340 0:34 /kubepods/
2350 2340 0:33 /kubepods/
2351 2340 0:39 /kubepods/