Intereting Posts
Linux отбрасывает пакеты, если они получены от другого оборудования Замените ip tuntap на / etc / network / interfaces (или как создать интерфейс tun в / etc / network / interfaces) Согласованный (физический) объем на множестве файлов (нормализация объема) Как сконфигурировать имя устройства для шифрования корневого раздела с Grub2? Сложность установки и компиляции Dada Engine на OSX Как установить беспроводной маршрутизатор Realtek RTL8723BE на debian? Кукла показывает другую версию версии пакета марионеточного агента Ошибка ошибки сегментации Startx после установки дополнений VirtualGuest для Virtualbox Возможно ли переопределить учетную запись пользователя службы RPM во время установки? Как я могу добавить действие в Nemo (Linux Mint) для воспроизведения нескольких mp3-файлов в плейлисте vlc? Каков наилучший способ привязать Caps Lock к окну Windows? vim / emacs для просмотра рекурсивных результатов поиска grep? Проверьте, существуют ли файлы в списке файлов в определенном каталоге Пересмотр пользователей, у которых установлены настройки по умолчанию / bin / bash Измените, как выглядит и ведет себя Дельфин (GTK / KDE)

Изменить идентификатор пользователя и идентификатор группы файлов в архиве?

У меня есть tarball, и файлы, которые он содержит, не имеют права пользователя и группы. Файлы принадлежат jenkins:jenkins и я бы хотел, чтобы они принадлежали naftuli:othergroup .

Есть ли способ изменить архив на месте, чтобы файлы, которые он содержит, принадлежали naftuli:othergroup ?

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

Архив :: Tar или аналогичное программное обеспечение будет одним из методов.

 % touch foo % tar cvf x foo foo % tar tvf x -rw-rw-r-- 1 jdoe12 jdoe12 0 May 6 20:36 foo % perl -MArchive::Tar -e '$t=Archive::Tar->new;$t->read("x");$t->chown("foo","root");$t->write("y")' % tar tvf y -rw-rw-r-- 1 root jdoe12 0 May 6 20:36 foo % 

Вы не можете явно изменять разрешения при извлечении, но вы можете поместить предпочтительные идентификаторы в tarball при создании (даже если он не работает от имени root ).

 tar cvf /tmp/tarball.tar --user=naftuli --group=othergroup files... 

Если исходная система не знает данные вашей учетной записи, вы можете --user=naftuli:3000 имена с предпочтительным uid и gid (например, --user=naftuli:3000 ).

В качестве альтернативы, если у вас уже есть tarball, вы можете извлечь файлы, созданные jenkins, как вы сами ( naftuli:othergroup ), а потому, что вы не root файлы станут вами.