Is it enough to see getfacl giving no error, or do I have to check some other place to see whether or not ACLs are supported by the file systems?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
If you’re talking about a mounted filesystem, I don’t know of any intrinsic way to tell whether ACL are possible. Note that “are ACL supported?” isn’t a very precise question since there are several types of ACL around (Solaris/Linux/not-POSIX-after-all, NFSv4, OSX, …). Note that getfacl is useless as a test since it will happily report Unix permissions if that’s all there is: you need to try setting an ACL to test.
Still on mounted filesystem, you can check for the presence of acl in the mount options (which you can find in /proc/mount). Note that this isn’t enough: you also need to take the kernel version and the filesystem type in consideration. Some filesystem types always have ACL available, regardless of mount options; this is the case for tmpfs, xfs and zfs. Some filesystems have ACL unless explicitly excluded; this is the case for ext4 since kernel 2.6.39.
Method 2
To know if ACL is available you can:
-
Check current kernel version and filesystem:
uname -rdf -Tormount | grep rootRecent distro have ACL mount option included by default (since kernel 2.6). So it’s not mandatory to redefine it in /etc/fstab (or similar). Non exhaustive list of filesystems concerned: ext3, ext4, tmpfs, xfs and zfs .
If you have older setup then you may have to recompile the kernel and/or add acl in
/etc/fstab.
fstab example:/dev/root / ext4 acl,errors=remount-ro 0 1 -
Look for existing ACL settings (the “usual” config place is on /boot):
sudo mount | grep -i acl #optionnalcat /boot/config* | grep _ACLDepending of the system you could find the settings in
/procinstead. Here is a way to extract the config from the .gz archive and then search for acl settings:cat /proc/config.gz | gunzip > running.config && grep -i 'acl' running.configcat running.config | grep _ACLYou should see something like:
CONFIG_EXT3_FS_POSIX_ACL=yCONFIG_EXT2_FS_POSIX_ACL=yCONFIG_XFS_POSIX_ACL=yFor the filesystem you can try to get more info with:
sudo tune2fs -l /xxx/xxx| grep 'Default mount options:'(replace xxx/xxx by your filesystem)
—
Helpfull information can be found on:
– serverfault,
– bencane.com,
Method 3
acl should be enabled as default if you are using ext2/3/4 or btrfs.
Check with:
tune2fs -l /dev/sdXY | grep "Default mount options:"
If it isn’t in the output do a:
tune2fs -o acl /dev/sdXY
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0