LINUX.ORG.RU
ФорумAdmin

Перенос системы tar-ом, бинарники с capabilities

 , getcap


3

3

Перенёс систему tar-ом, и как я и подозревал getcap /usr/bin/ping выдаёт пустую строчку, а на старом диске cap_net_raw=ep. Переделывать не хочу, думаю как-то найти/угадать список таких файлов и вручную починить, либо они сами после обновлений соответствующих пакетов со временем все исправятся а вручную фиксить только по мере обнаружения проблем. Что в этом плане может пойти не так и что кроме capabilities могло не скопироваться? Сам никакие экзотические свойства файлов не использую, то есть вопрос только про файлы из дефолтных дебиановских пакетов.

Кстати вроде в прошлый раз много лет назад я так же переносил debian 7 и даже не заметил ничего.

Перемещено hobbit из general

★★★★★

Что в этом плане может пойти не так и что кроме capabilities могло не скопироваться?

Все. Кром capabilities, есть selinux, атрибуты (которые lsattr), смонтированные псевдофайловые системы (/proc, /sys, /dev, /dev/*)

Лучше перенеси image корневой ФС. Или возьми список пакетов и установи на новую систему их же. Ещё лучше - lvm с pvmove, но видимо его у тебя пока нет

А хомяк уже можно и перенести, хоть tar, хоть чем.

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

Корневая фс это /etc /boot /root и пачка пустых директорий и симлинков, там негде этому взяться и более того я во всех трёх директориях уже редактировал что-то и незачем откатывать. Так что лучше usr. В var тоже не надо и там логи уже писались.

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

Не помогло. tar --xattrs -c -f - . | tar --xattrs -x -f - -C /mnt не копирует cap

cp -a кстати успешно из копирует но почему tar нет?

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 3)
Ответ на: комментарий от firkax

А нет, получилось.

Вобщем, слева нужно либо --xattrs либо --xattrs-include='*', а справа - ни --xattrs ни --no-xattrs вообще ни на что не влияют, но обязательно нужно --xattrs-include='*'. Очень плохо с их стороны писать чушь в мане и про первый флаг а про второй утверждать что он принимает регэксп а не шелл-паттерн.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 3)
Ответ на: комментарий от firkax

Подтверждаю, tar в Debian 12 сохраняет, но не восстанавливает capabilities. Также он не показывает их в списке файлов в архиве, но если открыть файл в текстовом редакторе, то атрибут видно. bsdtar из этого архива восстанавливает атрибут правильно.

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

но если открыть файл в текстовом редакторе, то атрибут видно

Как? У меня от флага –xattrs добавляется PaxHeader но ко всем фалйам (и к тем у кого был cap и к тем у кого не было), и в нём битовые маски которые без таблиц не расшифровать.

А так выше выяснил что надо писать.

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

Как?

SCHILY.xattr.security.capability= там простым текстом, но я проверял на архиве с одним файлом, так что, возможно, это не показательно.

добавляется PaxHeader

Эта часть документирована, но я вот раньше не знал, что от --xattrs формат меняется на PAX.

anonymous
()

Я сохраняю аттрибуты в отдельные файлы.

Монтирую корень с -o bind.

Перехожу в корень и делаю:

getfacl -R -s -n . > artefacts/file.acl
getfattr -R -d -m - . > artefacts/file.attr 2>/dev/null

Восстановление:

setfacl --restore=file.acl
setfattr --restore file.attr

Для обоих видов аттрибутов эти файлы имеют на десктопе по 2-3 KB.

Тар вызываю только с добавочной опцией --numeric-owner.

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

О, а вот так их можно было починить не делая tar заново и не возясь с ребутом в initramfs.

getfattr в дебиане в пакете attr который по дефолту видимо не установлен

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

Нашёл https://www.gnu.org/software/tar/manual/html_chapter/operations.html

По дефолту извлекаются только user. атрибуты, хотя даже тут если до этого не дочитать - имеется вполне однозначная фраза что «–xattr –extract указывает извлекать атрибуты» и без оговорок. Ну и там написано что это шелл паттерн, откуда в мане взяли про регулярку не знаю.

firkax ★★★★★
() автор топика