Como obtenho um despejo de todos os atributos estendidos para um arquivo?

15

Getfattr despeja uma lista de atributos estendidos para um arquivo selecionado.

No entanto, getfattr --dump filename apenas despeja o user.*namespace e não as security.*, system.*e trusted.*namespaces. Geralmente, não há atributos de espaço para nome de usuário, a menos que você tenha anexado um a um arquivo manualmente.

Sim, eu sei que posso obter as informações do SELinux usando getfattr -n security.selinux filename. Nesse caso, eu sei a identificação específica do atributo estendido.

Eu tentei isso como o usuário root. Eu diria que o usuário root com todos os recursos é capaz de acessar essas informações. Mas você só recebe o despejo de namespace user. *.

A questão é como posso obter facilmente um despejo completo de todos os namespaces de atributos estendidos de um arquivo sem saber os nomes de todas as chaves em todos os namespaces?

mdpc
fonte
e "lsattr" não é suficiente? (consulte "man chattr" para decodificar a cadeia de atributos longos)
Theophrastus

Respostas:

12

Eu odeio fazer isso, mas a resposta é (depois de mais pesquisas):

 getfattr -d -m - file

Aparentemente, eu perdi isso na minha leitura da página de manual :

-m padrão , --match = padrão

   Inclua apenas atributos com nomes que correspondam ao padrão de expressão regular . [...] Especifique "-" para incluir todos os atributos.

mdpc
fonte
Eu estava usando getfattr -d -m '' filepara isso, não sabia que -era um caso especial, mas parece que tem sido assim desde que o recurso foi adicionado (inicialmente como -ropção). Uma vergonha. É preciso usar -m '[-]'para procurar atributos que contenham -.
Stéphane Chazelas