Чому getfattr не відображає нічого для файлу, у якому встановлено розширений біт атрибутів?


10

У мене встановлена ​​Nagios XI, що працює на CentOS 6.2, і хочу змінити сценарій резервного копіювання. Я помітив, що для цього сценарію оболонки встановлено розширений біт атрибутів, тому я хочу бути впевненим, що нічого не псую, коли вношу зміни до нього. Я експериментував і виявив, що "cp -p" не зберігає цей параметр (див. Коментар для оновлення щодо цього). Я новачок у розширених атрибутах на Linux і виявив, що є команда 'getfattr', яка повинна відображати розширені атрибути, однак у цьому файлі нічого не відображається.

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

Зрештою, моя мета - змінити файл, зберігаючи будь-які атрибути, встановлені під час встановлення оригінального продукту. Чи є причина, чому встановлений розширений біт атрибутів, навіть якщо, мабуть, не існує властивостей відповідно до getfattr?


1
Ну, я вирішив одну загадку: "cp -p" за замовчуванням "cp --preserve = режим, право власності, часові позначки". Використання "cp --preserve = all backup_xi.sh backup_xi.sh.ORIG" працює і зберігає розширений біт атрибута.
Алан

Відповіді:


10

security.selinuxРозширений атрибут за умовчанням не відображається по getfattr; ви повинні явно вимагати цього.

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

5
Дякую. Сторінка getfattr man дуже вводить в оману: "-d: скидання значень усіх розширених атрибутів, пов'язаних з іменем шляху." Мабуть, "усі" не означає "ВСІ". Ого. Я виявив, що опція "-m" з шаблоном "-" перераховує "всі" атрибути. Використовуючи команду "getfattr -m - backup_xi.sh", я бачу "security.selinux" як єдиний атрибут.
Алан

Дійсно, сторінка man ховає: "Значення за замовчуванням для шаблону -" ^ user \\. ", Яке включає всі атрибути в просторі імен користувача. Вкажіть" - "для включення всіх атрибутів." Добре знати.
Ashe

1
Щоб перерахувати всі розширені атрибути:getfattr -d -m ".*" <filename>
elig
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.