The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
tar и selinux - не востанавливает контекст, !*! aba, 22-Фев-08, 11:26  [смотреть все]
Поставил Fedora 8. Включена SELinux.
Нужно сделать архив в котором сохраняются расширенние атрибути и с которого потом можно их извлечь. Проводим следующие команди

[root@edeldb /]# cd /tmp/
[root@edeldb tmp]# mkdir test
[root@edeldb tmp]# cd test

Находим что нибудь подходящее для теста

[root@edeldb test]# ls -ldZ /etc/y*
-rw-r--r--  root root system_u:object_r:net_conf_t:s0  /etc/yp.conf
drwxr-xr-x  root root system_u:object_r:etc_t:s0       /etc/yum
-rw-r-----  root root system_u:object_r:etc_t:s0       /etc/yum.conf
drwxr-xr-x  root root system_u:object_r:etc_t:s0       /etc/yum.repos.d

Проводим тест для tar с разними параметрами

[root@edeldb test]# tar -cz -f a_default.tgz /etc/y*
[root@edeldb test]# tar -cz --xattrs --acls --selinux -f a_xattrs.tgz /etc/y*
[root@edeldb test]# tar -cz --no-xattrs -f a_no_xattrs.tgz /etc/y*

Смотрим что получилось

[root@edeldb test]# ll
total 24
-rw-r--r-- 1 root root 2057 2008-02-22 10:08 a_default.tgz
-rw-r--r-- 1 root root 2057 2008-02-22 10:09 a_no_xattrs.tgz
-rw-r--r-- 1 root root 2430 2008-02-22 10:09 a_xattrs.tgz

По логике по дефаулту расширение атрибути отключени. Сразу первий вопрос: можно ли по дефаулту их включить? файла типа /etc/tar.conf нету.
Пробуєм извлечь. Извлекаем только с a_xattrs.tgz (в других архивах по логике нету расширених атрибутов, хотя я не уверен есть ли они в a_xattrs.tgz, как проверить не знаю)

[root@edeldb test]# tar -xz -f a_xattrs.tgz
[root@edeldb test]# ls -lZ etc
-rw-r--r--  root root system_u:object_r:unconfined_tmp_t:s0 yp.conf
drwxr-xr-x  root root system_u:object_r:unconfined_tmp_t:s0 yum
-rw-r-----  root root system_u:object_r:unconfined_tmp_t:s0 yum.conf
drwxr-xr-x  root root system_u:object_r:unconfined_tmp_t:s0 yum.repos.d

по дефаулту не извлекается контекст
пробуем принудительно (для чистоти експеримента удаляем созданий каталог /tmp/test/etc)

[root@edeldb test]# tar -xz --xattrs --acls --selinux -f a_xattrs.tgz
[root@edeldb test]# ls -lZ etc
-rw-r--r--  root root system_u:object_r:unconfined_tmp_t:s0 yp.conf
drwxr-xr-x  root root system_u:object_r:unconfined_tmp_t:s0 yum
-rw-r-----  root root system_u:object_r:unconfined_tmp_t:s0 yum.conf
drwxr-xr-x  root root system_u:object_r:unconfined_tmp_t:s0 yum.repos.d

Опять контекст не востановлен.
Подскажите в чем может бить причина и как побороть.

  • tar и selinux - не востанавливает контекст, !*! PavelR, 11:49 , 22-Фев-08 (1)
    • tar и selinux - не востанавливает контекст, !*! aba, 12:45 , 22-Фев-08 (2)
      >
      >
      > Контекст - это не свойство файла, а свойство операционной системы. В
      >ОС есть файл, который определяет, в какой контекст относить конкретную директорию
      >или файл, по абсолютному его имени.

      А что тогда архивирует tar c опцией --selinux?
      Теперь я окончательно запутался! Может подойду к вопросу с другой сторони, раскажу для чего мне ето надо.
      Есть настроеная система. Хочу сделать резервний диск, которий использовать как для целей востановления так и для возможности клонирования на другой комп. Раньше стояла Федора3 с отключенним SELinux. Било достаточно заархивировать нужние папки а потом просто извлеч или все или частично файли (в зависимости от цели клонирование или востановление).
      А как теперь поступать не знаю. Ну создам я архив всех папок системи. Загружусь с LiveCD разобю новий винт распакую туда файли, а оно не будет работать.Или будет?
      Как правильно поступить.

      • tar и selinux - не востанавливает контекст, !*! PavelR, 13:42 , 22-Фев-08 (3)
        • tar и selinux - не востанавливает контекст, !*! aba, 11:00 , 29-Фев-08 (4)
          первое ето апгрейд tar'а. Большое подозрение на багу в програме.
          yum update tar
          В оригинале с Федорой8 идет tar-1.17-3.fc8 после апдейта ставит tar-1.17-7.fc8

          Повторяем експеримент
          tar -cz --xattrs --acls --selinux -f a_xattrs.tgz /etc/y*
          tar -xz --xattrs --acls --selinux -f a_xattrs.tgz
          смотрим что получилось
          ls -ldZ *
          -rw-r--r--  root root system_u:object_r:net_conf_t:s0  yp.conf
          drwxr-xr-x  root root system_u:object_r:etc_t:s0       yum
          -rw-r-----  root root system_u:object_r:etc_t:s0       yum.conf
          drwxr-xr-x  root root system_u:object_r:etc_t:s0       yum.repos.d
          Уже хорошо. Всетаки била глюка в tar'е

          Но во время распаковки появляется следующее сообщение
          [test]# tar -xz --xattrs --acls --selinux -f a_xattrs.tgz
          tar: etc/yum/pluginconf.d: Попередження: Помилка у функції acl_from_text: Invalid argument
          Что ето значит и насколько критично я не знаю. Подскажите.
          [test]# tar -xz --xattrs --no-acls --selinux -f a_xattrs.tgz
          Отрабативает без ошибок.

          Заодно вилазит еще один нюанс. Для експеримента берем другие файли.
          ls -ldZ /usr/lib/libsysfs*
          lrwxrwxrwx  root root system_u:object_r:lib_t:s0       /usr/lib/libsysfs.so.2 -> libsysfs.so.2.0.1
          -rwxr-xr-x  root root system_u:object_r:lib_t:s0       /usr/lib/libsysfs.so.2.0.1
          Пакуем
          tar -cz --xattrs --acls --selinux -f b_xattrs.tgz /usr/lib/libsysfs*
          tar -xz --xattrs --acls --selinux -f b_xattrs.tgz
          витянули и смотрим
          [test]# ls -ldZ usr/lib/libsysfs*
          lrwxrwxrwx  root root system_u:object_r:unconfined_tmp_t:s0 usr/lib/libsysfs.so.2 -> libsysfs.so.2.0.1
          -rwxr-xr-x  root root system_u:object_r:lib_t:s0       usr/lib/libsysfs.so.2.0.1
          Проблема с символьними ссилками. Подозрение что ссилка витягивается раньше чем файл и на нее не проставляется контекст. В манах по tar не нашел как заставить извлекасть символьние ссилки в конце. Повторное распаковивание архива у меня не решает проблему
          tar -xz --xattrs --acls --selinux -f b_xattrs.tgz
          ls -ldZ usr/lib/libsysfs*
          lrwxrwxrwx  root root system_u:object_r:unconfined_tmp_t:s0 usr/lib/libsysfs.so.2 -> libsysfs.so.2.0.1
          -rwxr-xr-x  root root system_u:object_r:lib_t:s0       usr/lib/libsysfs.so.2.0.1
          Подскажите, как побороть




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру