Filesystem (directory) permissions meaning difference for x86_64and x86 for 3.1?

From: Bruno PrÃmont
Date: Wed Nov 09 2011 - 15:51:35 EST


Hi,

On a x86_64 system I'm getting permission denied when trying to chdir()
into a directory where I have only 'x' permissions (be it with unix
permissions or with posix ACLs).
For the same layout of directory I can successfully chdir() on x86 as I
can with older kernels of 2.6 series.

In both cases the filesystem is tmpfs with support for posix ACLs and
kernel is 3.1.0.


Directory layout:
drwx--x--- 3 root test 60 Nov 9 21:14 /tmp/btest
drwxrwx--- 2 root test 40 Nov 9 21:14 /tmp/btest/subtest
drwxr-x---+ 3 root root 60 Nov 9 21:10 /tmp/test
drwxrwx---+ 2 root root 40 Nov 9 21:10 /tmp/test/subtest

Posix ACLs
# file: /tmp/test
# owner: root
# group: root
user::rwx
group::r-x
group:test:--x
mask::r-x
other::---

# file: test/subtest/
# owner: root
# group: root
user::rwx
group::r-x
group:test:rwx
mask::rwx
other::---


When executing as user test (with test as only group), on x86_64 I get
EPERM on chdir(X) where X is any one of the 4 directories above.

On x86 I can chdir() into the directory without issue (as expected),
and when in /tmp/test (or /tmp/btest) I get EPERM when trying to list
contents - expected as well. Under subtest I can list content.

The same results are obtained on XFS filesystem.

Any idea what's wrong?

Both test configs attached.


Bruno

Attachment: x86.config.bz2
Description: application/bzip

Attachment: x86_64.config.bz2
Description: application/bzip