我正在尝试将文件属性设置如下:
- 使用 0644 权限创建文件 foo.txt
当我试图为此设置xattr时
if (setxattr("foo.txt", "user.test", "test", 4, XATTR_CREATE) == -1) perror("");
我收到错误,因为不支持操作
有什么可以启用的吗?如何解决这个问题?
返回值
On success, zero is returned. On failure, -1 is returned and errno is set appropriately. ... If extended attributes are not supported by the file system, or are disabled, errno is set to ENOTSUP.
因此,要么您的文件系统不支持扩展属性(例如,ext[234]、cifs、btrfs 支持),要么它们在内核构建或挂载时被禁用。
对于 NFS,在内核配置中没有单独的开关来启用扩展属性。从源代码来看,当您启用对orfs/nfs/dir.c
的支持时,它似乎已启用。但是 NFS 仍然依赖于底层文件系统。因此,您还必须在服务器端启用扩展属性。CONFIG_NFS_V3
CONFIG_NFS_V4
ext2 的挂载选项
...
user_xattr|nouser_xattr
支持“用户”。扩展属性(或没有)。