¿Por qué getfattr no muestra nada para un archivo que tiene establecido el bit de atributo extendido?

10

Tengo una instalación de Nagios XI ejecutándose en CentOS 6.2, y quiero modificar el script de respaldo. Me di cuenta de que el bit de atributo extendido está establecido para este script de shell, por lo que quiero asegurarme de no estropear nada cuando le realice cambios. Experimenté y descubrí que "cp -p" no conserva esta configuración (vea el comentario para obtener información actualizada sobre esto). Soy nuevo en los atributos extendidos en Linux, y descubrí que hay un comando 'getfattr' que se supone que muestra los atributos extendidos, sin embargo, no muestra nada para este archivo.

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

En última instancia, mi objetivo es modificar el archivo mientras se conservan los atributos establecidos durante la instalación original del producto. ¿Hay alguna razón por la cual se establece el bit de atributo extendido, aunque aparentemente no hay propiedades presentes de acuerdo con getfattr?

Alan
fuente
1
Bueno, resolví un acertijo: "cp -p" por defecto es "cp --preserve = mode, propiedad, marcas de tiempo". El uso de "cp --preserve = all backup_xi.sh backup_xi.sh.ORIG" funciona y conserva el bit de atributo extendido.
Alan

Respuestas:

10

El security.selinuxatributo extendido no se muestra por defecto por getfattr; debes solicitarlo explícitamente.

$ getfattr -d Work
$ getfattr -n security.selinux Work
# file: Work
security.selinux="unconfined_u:object_r:user_home_t:s0"
Ignacio Vazquez-Abrams
fuente
55
Gracias. La página de manual de getfattr es muy engañosa: "-d: volcar los valores de todos los atributos extendidos asociados con la ruta de acceso". Aparentemente "todos" no significa "TODOS". Guau. Descubrí que la opción "-m" con el patrón "-" enumera "todos" los atributos. Usando el comando "getfattr -m - backup_xi.sh", veo "security.selinux" como el único atributo.
Alan
De hecho, la página del manual oculta: "El valor predeterminado para el patrón es" ^ user \\. ", Que incluye todos los atributos en el espacio de nombres de usuario. Especifique" - "para incluir todos los atributos". Bueno saber.
Ashe
1
Para enumerar todos los atributos extendidos:getfattr -d -m ".*" <filename>
eleg