LINUX.ORG.RU

tar: SELinux support is not available

 , ,


0

1

друзья! использую ArchLinux, в котором по умолчанию нет поддержки SElinux. Задача - имеем файл system.img (Андроид), который я хотел бы распаковать, отредактировать нужное, запаковать назад (erofs). Взял смонтировал файл system.img в loop, далее нужно скопировать все файлы из loop в созданный каталог, но с сохранением контекста SElinux. Делаю это командой sudo tar –selinux -cf - | sudo tar –selinux -xf - данная команда выдаёт ошибку о том, что tar не имеет поддержки SElinux. Умный человек остановился бы здесь, внимательно подумав. Я же используя инструкцию с АрчВики добавил в систему поддержку SElinux, поставив для для этого туеву хучу пакетов с aur-а и убив кучу времени. После добавления selinux в параметры ядра и перезагрузки системы я внезапно обнаружил что данная ошибка никуда не исчезла. Ну, как я уже писал выше - умный человек не делал бы такого, но поскольку я не очень умный то уж как есть. Почесав репу и почитав в интернет понял что в Арче tar собран без поддержки selinux так как его вообще нет в Арче по умолчанию, и мол надо пересобрать tar с включением этой поддержки.

Друзья, поэтому два вопроса, помогите пожалуйста.

  1. я не умею собирать пакеты из сорцов. Прошу, если есть инструкция на примере сборки какого нибудь пакета (не из aur, а который в оф.репозиториях) - пожалуйста дайте такую инструкцию или подскажите что надо сделать. О том что в арче есть ABS знаю, но это всё что я знаю. Умею набирать буквы в терминале последовательно и нажимать Энтер)))

  2. а прав ли я в том, что для сохранения контекста нужен tar? как вы уже догадались, с моими знаниями я не придумал бы ту команду с использованием tar, я нашёл её в интернет. И вот сейчас подумал, а может перенос файлов из loop в каталог с сохранением контекста можно было выполнить в каком нибудь файловом менеджере с поддержкой контекста selinux? но в каком? я об этом не знаю. Если есть такие файловые менеджеры подскажите пожалуйста, и кроме того для меня остаётся неясным вопрос. Если мне нужно всего лишь скопировать эти файлы, нужна ли в моей системе активированая SElinux или нет? я активировал, sestatus говорит enabled, но ведь скорее всего активировать нужно в том случае, если мне нужны защитные свойства этого модуля. Мне они не нужны, мне всего лишь нужно скопировать файлы, отредактировать их в каталоге и потом на основе этих файлов пересоздать img-образ в файловой системе erofs.

Не проверял, но подозреваю, что тебе не нужна поддержка SELinux для сохранения контекста. Вроде это просто xattrs в конечном счёте. Достаточно, чтобы атрибуты с нужным префиксом сохранялись при распаковке/упаковке.

anonymous
()
Ответ на: комментарий от anonymous

в таком случае мне нужен либо FM с возможностью сохранения этих атрибутов, либо пересобрать tar с поддержкой selinux. Но к сожалению не знаю как сделать то и другое.

corelinux
() автор топика
Ответ на: комментарий от corelinux

в таком случае мне нужен либо FM с возможностью сохранения этих атрибутов

cp/mv/rm/rsync и т.д.

либо пересобрать tar с поддержкой selinux

Перечитай внимательно мой комментарий, потом читай документацию tar (GNU или bsdtar — без разницы).

anonymous
()
Ответ на: комментарий от rtxtxtrx

спасибо, но вот сейчас я понимаю что скорее всего мне вообще не нужно использовать tar и объясню почему (может ошибаюсь). Дело в том, что команду по упаковке архива и последующей распаковке из архива автор инструкции скорее всего сделал ради того,чтобы все действия вложить в одну команду. Вот она целиком:

(cd system && sudo tar –selinux -cf - .) | (cd system_new && sudo tar –selinux -xf -)

т.е. мы берём все файлы из каталога system (у меня по факту в нём смонтированы файлы как loop), архивируем их в архив с сохранением контекста всех файлов, и потом распаковываем содержимое только что созданного архива в новый каталог. Так вот, если я сейчас прав, то мне на самом деле не нужен никакой архив. Мне всего лишь надо скопировать файлы из каталога system в каталог system_new с сохранением аттрибутов selinux. Это ведь можно сделать в файловом менеджере, например mc либо thunar, верно? но тогда как указать файловому менеджеру чтобы сохранял контекст selinux?

P.S. дополню кое что. Если можно было использовать –xattrs при создании архива и извлечении, тогда зачем эта заморочка с указанием –selinux? я был сделал вывод, что –xattrs не сохранит этот контекст.

corelinux
() автор топика
Последнее исправление: corelinux (всего исправлений: 1)
Ответ на: комментарий от rtxtxtrx

ты втираешь мне какую-то дичь

нет, скорее всего ты меня неправильно понял. Повторюсь, у меня задача состоит в том чтобы открыть system.img, изменить там один файл, создать новую файловую систему erofs и туда залить все файлы вместе с изменённым. Всё. Больше ничего не надо. Когда я попытался это сделать, tar отказался работать,мол не поддерживаю selinux. Ты предлагаешь использовать опцию –xattrs, она будет копировать контекст selinux или нет? я просто не знаю. Второй вариант - хотелось бы пересобрать tar с поддержкой selinux (это уже ради спортивного интереса)

corelinux
() автор топика
Ответ на: комментарий от corelinux

открыть system.img, изменить там один файл, создать новую файловую систему erofs…

Тебе реально нужно создать новую ФС?..

Если только внести изменения, если размер не увеличивается, если ФС не «только чтение», то монтируешь, изменяешь, отмонтируешь. Не нужны ни tar, ни копирование, ни прочие домыслы.

Если будешь создавать новое, как минимум, у него будет другой УУИД, со всеми возможными последствиями.

andytux ★★★★★
()