ACL 未启用,但正在工作

ACL 未启用,但正在工作

这怎么可能?

  1. ACL 未启用/etc/fstab,我可以通过手动打开fstab或运行来验证它sudo mount | grep -i acl

  2. 但是getfacl&setfacl命令可以毫无怨言地工作!

问题是,首先我需要了解为什么这是有效的,其次我需要检查其他系统以查看它们是否支持 ACL,那么我该怎么做呢?

ACL 命令在/&上进行了测试/mydrive(请参阅下面的mount输出)。

操作系统信息:

uname -a:
Linux localhost 3.2.0-4-amd64 #1 SMP Debian 3.2.57-3+deb7u1 x86_64 GNU/Linux

lsb_release -a:
No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 7.5 (wheezy) Release: 7.5 Codename: wheezy

mount:
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=384309,mode=755) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=308664k,mode=755) /dev/disk/by-uuid/3180f94a-e765-44e9-93f7-33aa1c6422c0 on / type ext4 (rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered) tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k) tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=1188500k) /dev/sda5 on /mydrive type ext4 (rw,relatime,user_xattr,barrier=1,data=ordered) rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime) fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)

答案1

分机3/4文件系统有一个默认安装选项标题中的属性。您可以通过以下方式查看它:

$ LC_ALL=C tune2fs -l /dev/device | grep 'Default mount options:'
Default mount options:    user_xattr acl

您可以使用 更改它tune2fs -o,安装时使用-o noacl会覆盖它。

创建新文件系统时,mke2fs将根据您在 中指定的内容进行设置/etc/mke2fs.conf。例如,我的有:

[defaults]
[...]
        default_mntopts = acl,user_xattr
[...]

然而,作为吉尔斯指出,自 2.6.39 起,默认情况下acl启用user_xattr(前提是在编译时内核中启用了支持,这通常是默认情况)。因此,即使没有acl默认的挂载选项,acls 也会在较新的内核上默认启用,禁用它的唯一方法是使用mount -o noacl.

要检查 ACL 是否受支持,最好是尝试查询它们:

$ chacl -l /the/mountpoint
chacl: cannot get access ACL on '/the/mountpoint': Operation not supported

相关内容