Python 3.12+tarfileисключение
tarfile.AbsoluteLinkError
исключения
Исключение фильтра 'data': символическая ссылка в архиве указывает на абсолютный путь.
Синтаксис
except tarfile.AbsoluteLinkError:
Ссылка 'conf' → '/etc/passwd' сама ничего не пишет, но следующий член архива с именем 'conf' запишет данные через неё прямо в системный файл. Фильтр 'tar' такую ссылку пропускает, отказывает только 'data'. Отказ действует даже на системах, где символические ссылки не поддерживаются.
Примеры
import tarfile
link = tarfile.TarInfo('conf')
link.type = tarfile.SYMTYPE
link.linkname = '/etc/passwd'
try:
tarfile.data_filter(link, 'out')
except tarfile.AbsoluteLinkError as e:
print(e) # → 'conf' is a link to an absolute path
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности