измените принадлежность файла для файлов в архиве tar

Вы хотите использовать, находят, как указано в Вашей ссылке, но с дополнительным - монтируют флаг, который ограничит, находят к текущей файловой системе и игнорируют любых других.

- смонтироваться
Не убывайте каталоги в других файловых системах. Альтернативное название для-xdev, для совместимости с некоторыми другими версиями находки.

10
10.05.2015, 11:09
2 ответа
  • Как создать архив tar.xz, чтобы файлы имели корневое владение при распаковке корневым хранилищем?
  • Это зависит от корня, который распаковывает: Если вы хотите сделать их все корневыми, вы можете использовать

    12
    27.01.2020, 20:00

    Fakeroot

    Утилита fakeroot или более новая утилита fakeroot-ng (та же цель, другая техника реализации) запускает программу и делает вид, что она работает от имени root и что системные вызовы, такие как chown успешны. Только программа считает, что эти вызовы прошли успешно, на самом деле в файловой системе ничего не отражается (да и не может быть, поскольку fakeroot не имеет дополнительных привилегий). Однако, если программа изменяет права собственности на файл, а затем предпринимает какие-то действия, основанные на правах собственности на этот файл, это может изменить поведение программы.

    Типичный способ получить полезную работу от fakeroot - запустить среду fakeroot, в которой происходит следующее:

    1. Создайте несколько файлов, переместите их, измените их права собственности и режимы и т.д.
    2. Создайте архив этих файлов.

    Пример:

    fakeroot sh -c '
        chown root:root usr/bin/foo
        tar cf foo.tar usr
    '
    

    Вам нужно использовать только один вызов fakeroot, поскольку между вызовами нет памяти.

    Пространства имен Linux

    Для полноты картины упомяну, что если у вас ядро Linux ≥3.8, то пространства имен - это еще один способ создать притворно-корневое окружение. Поддержка пользовательского окружения еще не реализована, поэтому я не буду вдаваться в подробности.

    Монтирование архива

    Другой способ решить вашу проблему - смонтировать архив как каталог. Вы можете использовать archivemount, который способен модифицировать несколько форматов архивов через libarchive, включая сжатый tar.

    mkdir mnt
    archivemount foo.tar.xz mnt
    chown root:root mnt/usr/bin/foo
    fusermount -u mnt
    
    8
    27.01.2020, 20:00

    Теги

    Похожие вопросы