如何获取文件的所有扩展属性的转储?

mdp*_*dpc 20 linux files xattr

Getfattr 转储选定文件的扩展属性列表。

然而,getfattr --dump filename 只有转储user.*命名空间,而不是security.*system.*trusted.*命名空间。通常,除非您手动将用户命名空间属性附加到文件,否则没有用户命名空间属性。

是的,我知道我可以通过使用getfattr -n security.selinux filename. 在这种情况下,我知道扩展属性的具体标识。

我已经以 root 用户的身份尝试过这个。我假设具有完整功能的 root 用户能够访问此信息。但是你只能得到 user.* 命名空间转储。

问题是如何在不知道所有名称空间中所有键的名称的情况下轻松获得文件的所有扩展属性名称空间的完整转储?

mdp*_*dpc 18

我讨厌这样做,但答案是(经过更多研究):

 getfattr -d -m - file
Run Code Online (Sandbox Code Playgroud)

我在阅读手册页时显然错过了这一点:

-m 模式,-- match =模式

   仅包含名称与正则表达式模式匹配的属性。[...] 指定“-”以包含所有属性。

  • 我为此使用了 `getfattr -d -m '' file`,我不知道 `-` 是一个特殊情况,但看起来自从添加该功能以来就一直是这样(最初是 `-r ` 选项)。丢人现眼。需要使用“-m '[-]'”来搜索包含“-”的属性。 (3认同)