/proc/mounts 中显示的挂载选项

/proc/mounts 中显示的挂载选项

IIRC 中显示的安装选项/proc/mounts已更改。前段时间显示了acluser_xattr,现在似乎只有关闭这些功能后才会显示noacl和。nouser_xattr

这是在哪里配置的?这是否取决于文件系统代码的编译默认值?如何检查卷是否支持 ACL 等?有没有比使用setfacl,进行测试更好的解决方案getfacl

答案1

上游决定启用acluser_xattr 默认情况下并将它们删除为安装选项( noacl/nouser_xattr 有效mount选项因此会显示)。

答案2

某些文件系统类型支持没有挂载选项的 ACL,而其他文件系统类型仅支持挂载选项。对于 ext2/ext3/ext4,一些默认挂载选项(包括 acl/noacl)存储在文件系统中(您可以在 中查看tune2fs -l /dev/BLOCK_DEVICE | grep '^Default mount options:')。作为由don_crissti 指出,对于 ext4,是否显示该选项取决于内核版本(从内核 2.6.39 开始,acl无论文件系统说什么,都默认打开)。 vfat 和 minix 等文件系统没有 ACL 支持。 tmpfs、xfs 和 zfs 等文件系统始终支持 ACL。

除非您想要构建和维护一个包含文件系统类型、版本、检查默认值的命令和内核版本的大表,否则无法通过挂载选项或文件系统特征来确定文件系统是否支持 ACL。您无法通过纯粹的观察来判断,getfacl因为它总是至少报告 unix 权限。即使文件系统支持 ACL,它也可能不支持您想要的 ACL 类型。因此,您最好的选择是调用setfacl(或底层 C API)来尝试设置您想要的 ACL。如果错误状态为 EOPNOTSUPP(不支持操作),您就会知道文件系统不支持(此类)ACL。

相关内容