我正在尝试在 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
有点令人惊讶,但也不是很令人惊讶。我猜有些开发人员认为,当文件系统不支持扩展属性时,报告文件没有扩展属性是无害的。毕竟,这是真的——该文件没有扩展属性。