Sté*_*las 15
在 Linux 上由lsattr/处理的属性chattr,其中一些可以由相当多的文件系统(ext2/3/4、reiserfs、JFS、OCFS2、btrfs、XFS、nilfs2、hfsplus...)存储,甚至可以通过 CIFS 查询/SMB(当使用 POSIX 扩展时)是标志。只是可以打开或关闭以禁用或启用属性(如不可变或存档......)的位。它们的存储方式是特定于文件系统的,但通常作为 inode 中的 16/32/64 位记录。
在 Linux 本机文件系统(ext2/3/4、btrfs...)上可以找到完整的标志列表,尽管并非所有标志都适用于所有 FS,对于其他非本机 FS,Linux 尝试将它们映射到等效的相应文件系统中的功能。例如,OSX 存储在 HFS+ 文件系统上的simmutable标志被映射到 Linux 中相应的不可变标志chattr。什么文件系统支持什么标志几乎没有记录。通常,阅读内核源代码是唯一的选择。
另一方面,在 Linux 上设置setfattr或attr在 Linux 上存储的扩展属性不仅仅是标志。它们也附加到文件,并且是键/值对,可以是(键和值)任意字节数组(尽管在某些文件系统上有大小限制)。
密钥可以是例如:system.posix_acl_access或user.rsync.%stat。该system命名空间保留给系统(你不会有改变POSIX的ACL setfattr,但多与setfacl,POSIX的ACL只是碰巧被存储为至少某些文件系统的扩展属性),而user命名空间可以通过应用程序使用(这里rsync使用它作为--fake-super选项,在您不是超级用户时存储有关所有权或权限的信息)。
同样,它们的存储方式是特定于文件系统的。有关更多信息,请参阅维基百科。