Closed ghost closed 7 years ago
Could you please explain first how you run into it? access() is not called if the fuse option default_permissions() is specified. But default_permissions() is always set, unless the unionfs-fuse option "-o relaxed_permissions" is given and also only if not run as root. And with "-o relaxed_permissions" and as user it also should not matter, as the underlying file system should catch permissions issue (although I was not entirely sure about corner cases and therefore made it optional).
Thanks, Bernd
unionfs -ocow,relaxed_permissions rw=RW:ro=RO u
touch u/x
test -x u/x && echo x
Running with -d -f shows that access is not implemented.
I'm interested in running something like non-root chroot against ro dir and keep all the changes in rw dir (even when the files touched are owned by root - in ro). Using cow+relaxed_permissions is the only way, from what I see.
It is possible that this case is not triggered on every machine (kernel, fs, etc.). I might have limited access on one machine which didn't triggered this case, but this is not so important, as I have full access to one which always triggers this problem.
Tell me if you need logs or other details.
Hmm, ok, this is a bit cosmetic.
hi. would you be able to also write a test for that?
I've added a test case, but I didn't know how to update this pull request, so I've made another one: #67.
PRs are automatically updated as you update your branch so next time just commit keep committing and it will be fine...
access() is not implemented and return false positives for commands like: test -x file_without_execute