Существует ли стандартный формат архива без метаданных файлов?

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

if [[ $TERM == screen]]; then
    TERM=screen-256color
fi

в дополнение к первому условному оператору в моем файле .bashrc:

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi

У меня также было это в .tmux.conf. ]:

set -g default-terminal "screen-256color"

В моем файле .vimrc:

set term=screen-256color
0
09.03.2017, 00:39
2 ответа

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

  • -P , - absolute-names : Force tar, чтобы не удалять начальные символы '/' (это делается по умолчанию). Если вы не можете указывать абсолютные пути в командной строке, указанный вами путь будет сохранен (попробуйте использовать -C или --change-directory, если вы не можете выполнить cd в нужном корневом каталоге)
  • - owner : принудительно сохранить пользователя в tar-файле, игнорируя фактического владельца файлов / директорий (например, --owner = root)
  • - group : принудительно сохранить группу в tar-файле (например, --group = root).
  • - no-acls : предотвращает копирование ваших собственных ACL в файл tar
  • - numeric-owner , - numeric-group : маскирует фактические имена учетных записей на вашем локальном хранении только UID / GID (не требуется, если ваш принудительный root-доступ, поскольку root всегда равен 0)
  • - mtime : для принудительного изменения времени изменения всех файлов / каталогов, чтобы замаскировать, когда они действительно были изменены

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

3
28.01.2020, 02:25

Лучшее, что я нашел, это следующее, которое пытается нормализовать с помощью

  • сортировка списка файлов
  • использование числового 0 для владельца и группы
  • удаление битов rи wдля владельца и всех разрешений для всех остальных
  • привязка mtimeк эпохе UNIX
find <files> -print0 \
| sort -z \
| tar -cf <output>.tar \
      --format=posix \
      --numeric-owner \
      --owner=0 \
      --group=0 \
      --mode="go-rwx,u-rw" \
      --mtime='1970-01-01' \
      --no-recursion \
      --null \
      --files-from -

Подробнее об этом я писал вhttp://h2.jaguarpaw.co.uk/posts/reproducible-tar/

1
28.01.2020, 02:25

Теги

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