我想设置文件属性如下:setxattr失败,不支持的操作
- 创建文件foo.txt的有0644权限
当我试图为这个setxattr作为
if (setxattr("foo.txt", "user.test", "test", 4, XATTR_CREATE) == -1) perror("");
我收到错误的操作,不支持
有什么要启用的吗? 如何解决这个问题?
我想设置文件属性如下:setxattr失败,不支持的操作
当我试图为这个setxattr作为
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.
所以,无论是你的文件系统不支持扩展属性(分机[234],CIFS,BTRFS做,例如),或者它们在内核构建或安装时被禁用。
对于NFS,没有单独的开关在内核配置中启用扩展属性。来源fs/nfs/dir.c
,它似乎启用,当您启用CONFIG_NFS_V3
或CONFIG_NFS_V4
的支持。但是NFS仍然依赖于底层的文件系统。所以你必须在服务器端启用扩展属性。
安装选项的ext2
...
user_xattr | nouser_xattr
支持 “用户”。扩展属性(或不)。
如何在Linux内核中启用nfs文件系统的扩展属性? – 2013-02-14 10:42:50
@AntonKovalenko在'fs/nfs */*。c'中搜索'xattr'。 – 2013-02-14 10:51:30
@Venkat请参阅更新的答案。 – 2013-02-14 11:04:19
你的文件系统是否支持它?使用'user_xattr'挂载选项重新挂载可能会有所帮助。 – 2013-02-14 10:19:01
你在使用哪个文件系统? – 2013-02-14 10:19:30
我正在使用nfs文件系统 – 2013-02-14 10:38:24