这怎么可能?
ACL 未启用
/etc/fstab
,我可以通过手动打开fstab
或运行来验证它sudo mount | grep -i acl
。但是
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
默认的挂载选项,acl
s 也会在较新的内核上默认启用,禁用它的唯一方法是使用mount -o noacl
.
要检查 ACL 是否受支持,最好是尝试查询它们:
$ chacl -l /the/mountpoint
chacl: cannot get access ACL on '/the/mountpoint': Operation not supported