Warum zeigt getfattr für eine Datei, für die das erweiterte Attributbit gesetzt ist, nichts an?

10

Ich habe eine Nagios XI-Installation unter CentOS 6.2 und möchte das Sicherungsskript ändern. Ich habe festgestellt, dass das erweiterte Attributbit für dieses Shell-Skript gesetzt ist, daher möchte ich sichergehen, dass nichts durcheinander gebracht wird, wenn ich Änderungen daran vornehme. Ich habe experimentiert und festgestellt, dass "cp -p" diese Einstellung nicht beibehält (siehe Kommentar zur Aktualisierung). Ich bin neu in erweiterten Attributen unter Linux und habe festgestellt, dass es einen Befehl 'getfattr' gibt, der die erweiterten Attribute anzeigen soll, jedoch nichts für diese Datei anzeigt.

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

Letztendlich ist es mein Ziel, die Datei zu ändern und dabei die Attribute beizubehalten, die während der ursprünglichen Produktinstallation festgelegt wurden. Gibt es einen Grund, warum das erweiterte Attributbit gesetzt ist, obwohl laut getfattr anscheinend keine Eigenschaften vorhanden sind?

Alan
quelle
1
Nun, ich habe ein Rätsel gelöst: "cp -p" ist standardmäßig "cp --preserve = Modus, Besitz, Zeitstempel". Die Verwendung von "cp --preserve = all backup_xi.sh backup_xi.sh.ORIG" funktioniert und behält das erweiterte Attributbit bei.
Alan

Antworten:

10

Das security.selinuxerweiterte Attribut wird standardmäßig nicht angezeigt getfattr. Sie müssen es ausdrücklich anfordern.

$ getfattr -d Work
$ getfattr -n security.selinux Work
# file: Work
security.selinux="unconfined_u:object_r:user_home_t:s0"
Ignacio Vazquez-Abrams
quelle
5
Vielen Dank. Die Manpage getfattr ist sehr irreführend: "-d: Speichern Sie die Werte aller erweiterten Attribute, die dem Pfadnamen zugeordnet sind." Anscheinend bedeutet "alle" nicht "ALLE". Beeindruckend. Ich fand, dass die Option "-m" mit dem Muster "-" "alle" Attribute auflistet. Mit dem Befehl "getfattr -m - backup_xi.sh" sehe ich "security.selinux" als einziges Attribut.
Alan
In der Manpage wird tatsächlich Folgendes ausgeblendet: "Der Standardwert für das Muster ist" ^ user \\. ", Der alle Attribute im Benutzernamensraum enthält. Geben Sie" - "an, um alle Attribute einzuschließen." Gut zu wissen.
Ashe
1
So listen Sie alle erweiterten Attribute auf:getfattr -d -m ".*" <filename>
Elig