Por que o getfattr não exibe nada para um arquivo com o bit de atributo estendido definido?

10

Eu tenho uma instalação do Nagios XI em execução no CentOS 6.2 e quero modificar o script de backup. Notei que o bit de atributo estendido está definido para esse script de shell, por isso quero ter certeza de que não estrago nada quando fizer alterações nele. Eu experimentei e descobri que "cp -p" não preserva essa configuração (consulte o comentário para atualização sobre isso). Eu sou novo em atributos estendidos no Linux e descobri que existe um comando 'getfattr' que deve exibir os atributos estendidos, no entanto, ele não exibe nada para este arquivo.

cd /usr/local/nagiosxi/scripts
ll backup_xi.sh
-rwxr-x---.  1 nagios nagios   2757 Jul  3 10:03 backup_xi.sh*

# nothing is displayed by 'getfattr':
getfattr -d backup_xi.sh

# and nothing special seems to be present according to 'getfacl':
getfacl backup_xi.sh
# file: backup_xi.sh
# owner: nagios
# group: nagios
user::rwx
group::r-x
other::---

Por fim, meu objetivo é modificar o arquivo, preservando quaisquer atributos que foram definidos durante a instalação original do produto. Existe uma razão pela qual o bit de atributo estendido é definido, mesmo que aparentemente nenhuma propriedade esteja presente de acordo com o getfattr?

Alan
fonte
1
Bem, resolvi um enigma: "cp -p" assume como padrão "cp --preserve = mode, propriedade, timestamps". O uso de "cp --preserve = all backup_xi.sh backup_xi.sh.ORIG" funciona e preserva o bit de atributo estendido.
Alan

Respostas:

10

O security.selinuxatributo estendido não é mostrado por padrão por getfattr; você deve solicitá-lo explicitamente.

$ getfattr -d Work
$ getfattr -n security.selinux Work
# file: Work
security.selinux="unconfined_u:object_r:user_home_t:s0"
Ignacio Vazquez-Abrams
fonte
5
Obrigado. A página do manual getfattr é muito enganadora: "-d: Despeja os valores de todos os atributos estendidos associados ao nome do caminho." Aparentemente, "todos" não significa "todos". Uau. Eu descobri que a opção "-m" com o padrão "-" lista "todos" atributos. Usando o comando "getfattr -m - backup_xi.sh", vejo "security.selinux" como o único atributo.
10773 Alan
De fato, a página de manual oculta: "O valor padrão para o padrão é" ^ user \\. ", Que inclui todos os atributos no espaço para nome do usuário. Especifique" - "para incluir todos os atributos." Bom saber.
Ashe
1
Para listar todos os atributos estendidos:getfattr -d -m ".*" <filename>
elegível para