У меня есть сотрудник, который говорит, что вы должны быть осторожны при извлечении тарболов, потому что они могут вносить изменения, о которых вы не знаете. Я всегда думал, что тарбол - это просто иерархия сжатых файлов, поэтому, если вы распакуете его в / tmp / example /, он не сможет вставить файл в / etc / или что-то подобное.
27
-P
опция, которая влияет на его поведение в этом отношении./etc/passwd
в случае, если он был запущен от имени пользователя root. Со временем я считаю, что этоgtar
дает такую же безопасность, как и выstar
.Ответы:
Различные утилиты tar ведут себя по-разному в этом отношении, поэтому хорошо быть осторожным. Для файла tar, который вы не создали, всегда перечисляйте оглавление перед его извлечением.
Solaris tar :
В случае файла tar с полными (абсолютными) путями, такими как:
... если вы извлечете такой файл, вы получите оба файла.
GNU tar :
... если вы извлечете полностью исправленный tar-файл, используя GNU tar, не используя
-P
опцию, он скажет вам:и распакует файл в подкаталоги вашего текущего каталога.
AIX tar :
ничего не говорит об этом и ведет себя как tar-архив Solaris - он создает и извлекает tar-файлы с полными / абсолютными путями.
HP-UX tar : (лучшая онлайн-ссылка приветствуется)
OpenBSD tar :
Также есть
-P
опции, реализованные дляtar
macOS, FreeBSD и NetBSD с той же семантикой, с добавлением, чтоtar
во FreeBSD и macOS «откажется извлекать записи архива, чьи имена путей содержат..
или чей целевой каталог будет изменен символической ссылкой» без-P
.Звезда Шилитоола :
источник
..
представляет угрозу безопасности, поэтому используйте егоstar
или недавноgtar
. Также взгляните наstar
примеры tar-архивов, которые содержат созданные вручнуюtar
заголовки, которые заставляют большинствоtar
реализаций удалять файлы даже без предупреждения.tar
Solaris, AIX и HP-UX? Если это так, зачем указывать только GNU tar, особенно если (опять же согласно приведенной выше цитате) они изменились на отказ от принятия..
? Проблемы с искаженным вводом, конечно, являются ошибками, и я полагаю, что вы сообщили о них как таковые.star
(самая старая бесплатная реализация) должен рассматриваться как неполный.Одна из забавных вещей, которые происходят с tar-бомбами, заключается в том, что они изменяют разрешения текущего каталога на тот, который включен в tarball.
Например, если тарбол содержит «.» каталог, и вы распаковываете его в / tmp как root, он разрушит вашу систему, сделав / tmp не доступным для записи никому, кроме root.
источник
/
, он изменит права доступа к корневому каталогу, что приведет к непредвиденным последствиям (я помню, что получал «невозможно выполнить / bin / bash» при входе в консоль, потому что/
был режим 770).