6

IIRC then the mount options shown in /proc/mounts have changed. Some time ago acl and user_xattr were shown, now it seems that only noacl and nouser_xattr are shown if these features are turned off.

Where is this configured? Does that depend on the compiled-in defaults of the filesystem code? How can I check whether a volume supports e.g. ACL? Is there a better solution than testing with setfacl, getfacl?

  • Yes, checking closer, same problem using tune2fs -l /dev/sdxN. It shows if using /dev/disk/by-uuid/XXX instead of /dev/sdxN for some. /dev/sdxN for others. root aka / shows in /proc/mounts – but not others. Manual mounts shows in /etc/mtab but not root etc. So ... deleted answer. – Runium Jun 19 '13 at 13:37
  • @don_crissti Wow, what an extreme investigation. What makes this a comment in contrast to an answer? – Hauke Laging Jun 19 '13 at 14:32
4

Upstream decided to enable acl and user_xattr by default and remove them as mount options (noacl / nouser_xattr are still valid mount options hence they are shown).

  • 1
    Is there a way to show all flags, in whatever state they're in? – Marcin Jun 19 '13 at 19:18
2

Some filesystem types support ACLs with no mount option, others only with a mount option. For ext2/ext3/ext4, some default mount options including acl/noacl are stored in the filesystem (you can see this in tune2fs -l /dev/BLOCK_DEVICE | grep '^Default mount options:'). As noted by don_crissti, for ext4, whether the option is shown or not depends on the kernel version (since kernel 2.6.39, acl defaults on no matter what the filesystem says). Filesystems such as vfat and minix have no ACL support. Filesystems such as tmpfs, xfs and zfs always support ACLs.

Unless you want to build and maintain a big table of filesystem types, versions, commands to check defaults, and kernel versions, there is no way to determine whether a filesystem supports ACLs via mount options or filesystem characteristics. You can't tell by pure observation with getfacl either as it will always at least report unix permissions. Even if a filesystem supports ACLs, it may not support the ACL types that you want. So your best bet is to call setfacl (or the underlying C APIs) to try to set the ACL you want. If the error status is EOPNOTSUPP (Operation not supported), you'll know that the filesystem doesn't support (this type of) ACLs.

  • Support of POSIX draft type ACLs in zfsonlinux (other ZFS implementations only support NFSv4 ACLs which Linux doesn't support yet (except with patches as on Suse)), is recent and AFAIK has not been officially released yet. – Stéphane Chazelas Jun 9 '14 at 12:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.