Как получить дамп всех расширенных атрибутов для файла?

16

Getfattr выводит список расширенных атрибутов для выбранного файла.

Тем не менее, getfattr --dump filename только выводит user.*пространство имен , а не security.*, system.*и trusted.*пространства имен. Как правило, атрибуты пространства имен пользователя отсутствуют, если вы не прикрепили их к файлу вручную.

Да, я знаю, что могу получить информацию о SELinux с помощью getfattr -n security.selinux filename. В этом случае я знаю конкретную идентификацию расширенного атрибута.

Я пробовал это как пользователь root. Я бы предположил, что пользователь root с полными возможностями может получить доступ к этой информации. Но вы получаете только дамп пространства имен пользователя. *.

Вопрос в том, как легко получить полный дамп всех расширенных пространств имен атрибутов файла, не зная имен всех ключей во всех пространствах имен?

Якорь,
источник
а "lsattr" не хватает? (см. «man chattr» для расшифровки длинной строки атрибута)
Феофраст

Ответы:

12

Я ненавижу делать это, но ответ (после дополнительных исследований):

 getfattr -d -m - file

Я очевидно пропустил это в моем чтении справочной страницы :

-m шаблон , --match = шаблон

   Включайте только атрибуты с именами, соответствующими шаблону регулярного выражения . [...] Укажите «-» для включения всех атрибутов.

Якорь,
источник
Я использовал getfattr -d -m '' fileдля этого, я не знал, что -это особый случай, но похоже, что так было с тех пор, как функция была добавлена ​​(изначально как -rопция). Позор. Нужно использовать -m '[-]'для поиска атрибутов, которые содержат -.
Стефан