Perché getfattr non visualizza nulla per un file con il bit di attributo esteso impostato?


10

Ho un'installazione Nagios XI in esecuzione su CentOS 6.2 e voglio modificare lo script di backup. Ho notato che il bit dell'attributo esteso è impostato per questo script della shell, quindi voglio essere sicuro di non rovinare nulla quando apporto delle modifiche. Ho sperimentato e ho scoperto che "cp -p" non conserva questa impostazione (vedi commento per l'aggiornamento su questo). Sono nuovo agli attributi estesi su Linux e ho scoperto che esiste un comando 'getfattr' che dovrebbe mostrare gli attributi estesi, tuttavia non mostra nulla per questo file.

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::---

In definitiva, il mio obiettivo è quello di modificare il file preservando gli attributi impostati durante l'installazione del prodotto originale. C'è un motivo per cui è impostato il bit dell'attributo esteso, anche se apparentemente non sono presenti proprietà secondo getfattr?


1
Bene, ho risolto un indovinello: "cp -p" viene impostato automaticamente su "cp --preserve = mode, proprietà, timestamps". L'uso di "cp --preserve = all backup_xi.sh backup_xi.sh.ORIG" funziona e conserva il bit dell'attributo esteso.
Alan,

Risposte:


10

L' security.selinuxattributo esteso non è mostrato di default da getfattr; è necessario richiederlo esplicitamente.

$ getfattr -d Work
$ getfattr -n security.selinux Work
# file: Work
security.selinux="unconfined_u:object_r:user_home_t:s0"

5
Grazie. La pagina man getfattr è molto fuorviante: "-d: scarica i valori di tutti gli attributi estesi associati al nome percorso." Apparentemente "tutto" non significa "TUTTO". Wow. Ho scoperto che l'opzione "-m" con lo schema "-" elenca "tutti" gli attributi. Usando il comando "getfattr -m - backup_xi.sh", vedo "security.selinux" come unico attributo.
Alan,

Infatti, la pagina man nasconde: "Il valore predefinito per pattern è" ^ user \\. ", Che include tutti gli attributi nello spazio dei nomi dell'utente. Specificare" - "per includere tutti gli attributi." Buono a sapersi.
Ashe,

1
Per elencare tutti gli attributi estesi:getfattr -d -m ".*" <filename>
beneficiare del
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.