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?
4 Answers
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.
-
as for the
getfacl
test you're right. Except if I were able to find a non-default ACL (by suppressing default ones and header). Checking/proc/mount
doesn't appear to be enough in cases where theacl
option is a default option not coming from the mount command orfstab
, though. Dec 31, 2014 at 9:03 -
I noticed when running ZFS on Linux, with
acltype=posixacl
, the/proc/mounts
will showposixacl
, but in another system with just ext4, there's nothing inside/proc/mounts
, butacl
was a default mount option for ext4. Aug 4, 2016 at 13:33
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
-
2
-
1Examining
/etc/mke2fs.conf
only tells you what the defaults would be if you created a new filesystem now. It tells you nothing about the actual configuration used in the past when the filesystem was created (which is whattune2fs
will do). May 24 at 7:40
To know if ACL is available you can:
Check current kernel version and filesystem:
uname -r
df -T
ormount | grep root
Recent 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 #optionnal
cat /boot/config* | grep _ACL
Depending of the system you could find the settings in/proc
instead. 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.config
cat running.config | grep _ACL
You should see something like:CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
For 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:
- superuser.com,
- serverfault,
- bencane.com,
- wiki.archlinux.org
XFS will support it by default, and you can verify that with:
grep default_mntopts /etc/mke2fs.conf
-
Examining
/etc/mke2fs.conf
only tells you what the defaults would be if you created a new filesystem now. It tells you nothing about the actual configuration used at the time the filesystem was created. May 24 at 7:41 -
As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.– Community BotMay 30 at 22:16