Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Eugene Grosbein                      2:5006/1       13 May 2007  13:14:45
 To : Victor Sudakov
 Subject : Re: вопрос про tar
 -------------------------------------------------------------------------------- 
 
 13 май 2007, воскресенье, в 06:41 KRAST, Victor Sudakov написал(а):
 
  VS>> Как сказать tar, чтобы не умничал и сохранял/восстанавливал owner и
  VS>> group по цифровым uid и gid, а не по именам?
  VS>> Или как хотя бы посмотреть в выводе 'tar t', какой же numeric uid был
  VS>> у файла?
  >> В формате tar сохраняются именно имена, а не цифры.
  VS> Hе всё так просто. Если на системе, где tar разворачивается, в
  VS> /etc/passwd не нашлось хранящихся в архиве имён, то tar достаёт из
  VS> какого-то загашника цифры. Заглянуть бы в этот загашник.
 
 Да, был не прав. Хранятся и имена, и цифры. RTFS по libarchive
 показывает, что он безусловно ищет uid по имени и только если имени
 такого нет (getpwnam возвращает NULL), использует сохраненный в архиве
 uid. То же касательно групп. tar управлять этим поведением libarchive
 не имеет возможности. В комментарии еще есть такое:
 
 TODO: Provide an API for clients to override these
 
  VS> А какой архиватор в базовой системе (не dump) умеет хранить и
  VS> извлекать именно цифры?
 
 Hу поправить libarchive и tar, чтобы опционально оторвать трансляцию
 несложно, ломать не строить. Держи:
 
 ftp://www.kuzbass.ru/pub/freebsd/patches/tar.tgz
 
 Эти патчи добавляют к bsdtar опцию -i, которая заставляет его при              
 
 восстановлении владельца файлов во время распаковки использовать uid/gid,      
 
 сохраненные в архиве, вместо поведения по умолчанию, когда по сохраненным      
 
 имени владельца и группы вычисляются uid/gid пользователя в системе,           
 
 на которой разворачивается архив.                                              
 libarchive.diff реализует эту функциональность, добавляя в APШ
 флаг ARCHIVE_EXTRACT_UGID.
 
 tar.diff включает использование ARCHIVE_EXTRACT_UGID при задании опции -i.
 
 Makefile собирает правленные libarchive и линкует правленный tar с libarchive
 статически (с другими библиотеками динамически), не трогая системный
 libarchive.
 Требует установленных в /usr/src исходников tar и libarchive (штатно).
 
 Сборка: make clean all
 Установка правленного tar в /usr/local/bin/tar: make install
 
 Eugene
 
 P.S. PR писать не буду, мне эта функциональность не нужна.
 Если хочешь - пиши.
 --- slrn/0.9.8.0 (FreeBSD)
  * Origin: Svyaz Service JSC (2:5006/1@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: вопрос про tar   Eugene Grosbein   13 May 2007 13:14:45 
Архивное /ru.unix.bsd/2609389c2a8dd.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional