xattr/extended 无法为 /tmp 中的文件设置属性,而在相同安装的 $home 中工作正常

xattr/extended attributes not settable for file in /tmp while in $home on same mount works fine

我正在玩 Linux/Fedora 下的扩展文件属性,目前我遇到了一些问题,因为我无法为 /tmp 中的文件设置 add/change 属性,而在我家工作正常- 而两个路径都在同一个挂载点上,即

/dev/mapper/fedora-root on / type ext4 (rw,relatime,seclabel,data=ordered)

例如,我可以成功地为我的主目录中的文件添加和检索属性,例如,

> setfattr -n user.test.md5 -v 58d8e4cd0e60facf386838cbe8b11767 ~/foo.bar
> getfattr -n user.test.md5 ~/foo.bar 
  # file: foo.bar
  user.test.md5="58d8e4cd0e60facf386838cbe8b11767"

但是,/tmp.

中的同一文件同样失败
> cp ~/foo.bar /tmp/foo.bar
> setfattr -n user.test.md5 -v 58d8e4cd0e60facf386838cbe8b11767 /tmp/foo.bar 
  setfattr: /tmp/foo.bar: Operation not supported

我假设,对扩展属性的支持仅取决于安装 'correctly' 且具有 xattr 支持的文件系统。但是,它似乎也依赖于目录(??),我想知道,是什么阻止我在 /tmp 中设置扩展属性以及如何更改它? (这似乎与 SELinux 无关——至少我在审计日志中没有发现任何东西。)

/tmp 不是我天真地假设挂载的那样,而是挂载为 tmpfs,显然不支持扩展属性

tmpfs on /tmp type tmpfs (rw,seclabel)

感谢 twalberg!

tmpfs 如果在内核配置中启用 CONFIG_TMPFS_XATTR 可以支持扩展属性。 从版本 5.9.3 开始,这仅支持 trusted.*security.* 命名空间,因此您的 setfattr -n user.test.md5 命令仍然会失败。