无法在 fedora 22 上的 ext4 上设置扩展属性 - 不支持操作

无法在 fedora 22 上的 ext4 上设置扩展属性 - 不支持操作

我正在尝试在 Fedora 22 上使用扩展属性。即使在我的文件上,我似乎也无法设置属性,但我可以读取它们。它看起来是这样的:

[jarek@localhost ~]$ cd /tmp/
[jarek@localhost tmp]$ 触摸
[jarek@localhost tmp]$ setfattr -n "user.abc" -v "blah" a
setfattr: a: 不支持的操作
[jarek@localhost tmp]$ sudo setfattr -n "user.abc" -v "blah" a
setfattr: a: 不支持的操作
[jarek@localhost tmp]$ strace setfattr -n "user.abc" -v "blah" a
...
setxattr("a", "user.abc", "blah", 4, 0) = -1 EOPNOTSUPP(不支持的操作)
...
+++ 以 1 +++ 退出
[jarek@localhost tmp]$ getfattr a
[jarek@localhost tmp]$ echo $?
0

有关我的系统的一些信息:

[jarek@localhost ~]$ uname -a
Linux localhost.localdomain 4.1.5-200.fc22.x86_64 #1 SMP 8 月 10 日星期一 23:38:23 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[jarek@localhost 测试]$ mount |grep /dev/sda5
/dev/sda5 on / type ext4 (rw,noatime,seclabel,discard,data=ordered)

有谁知道我做错了什么?这适用于 Ubuntu 14.04。

编辑

这确实是我的系统上的/tmp一个文件系统tmpfs,而不是ext4文件系统。

答案1

您没有在文本中提及它,但您的代码块显示您正在使用/tmp.即使您的根文件系统(HDD 或 SSD)是 ext4,您也可能已/tmp安装为单独的文件系统(可能是 tmpfs 类型),并且不支持扩展属性。您可以通过执行以下任一命令来检查是否存在这种情况:

  • mount | grep tmp
  • df /tmp
  • grep /tmp /etc/fstab

成功的事实getfattr有点令人惊讶,但也不是很令人惊讶。我猜有些开发人员认为,当文件系统不支持扩展属性时,报告文件没有扩展属性是无害的。毕竟,这是真的——该文件没有扩展属性。

相关内容