Модуль Python tarfile игнорирует ошибки при извлечении по умолчанию , если errorlevel
не установлен на 1
или 2
(или debug
на 1
если должны быть напечатаны только сообщения об ошибках).
Попробуйте выполнить mkdir /tmp/foo && sudo chown root /tmp/foo && chmod a-w /tmp/foo
и использовать tarfile
для извлечения файла .tar.gz поверх /tmp/foo
- вы увидите, что ваш код Python вообще не вызывает исключений. Файлы не были бы извлечены из /tmp/foo
, который по-прежнему является пустым каталогом.
Почему это поведение? Кто / что выигрывает от такого поведения по умолчанию ? Другими словами, кто и что хотел бы игнорировать, скажем, ошибки прав доступа при распаковке tar-файла?