Доверие к tap
Tap-репозитории Homebrew могут содержать формулы, каски и внешние команды. Их загрузка может запускать код Ruby из tap-репозитория, поэтому Homebrew различает официальные и неофициальные tap-репозитории, которым вы явно доверяете.
Официальным tap-репозиториям Homebrew и встроенным командам Homebrew доверяют всегда. По умолчанию неофициальные tap-репозитории пока разрешены, но в Homebrew 6.0.0 или 5.2.0 — в зависимости от того, какая версия выйдет раньше, — для них потребуется явное доверие. brew doctor предупреждает о неофициальных tap-репозиториях, которым не доверяют, а команды установки могут выводить предупреждение перед установкой из них.
Зачем нужно доверие к tap
Формулы, каски и внешние команды — это исполняемые определения пакетов, а не обычные метаданные. Иногда Homebrew необходимо выполнить код Ruby из tap-репозитория, чтобы разрешить зависимости, найти доступные пакеты или запустить команды. Доверяя tap-репозиторию, вы соглашаетесь с тем, что его код будет выполняться с привилегиями вашей учётной записи всякий раз, когда Homebrew потребуется его загрузить.
Доверие к tap ограничивает объём неофициального кода, который Homebrew выполняет по умолчанию. Это снижает последствия взлома tap-репозиториев, неожиданных изменений владельца репозитория, совпадения имён с пакетами из других tap-репозиториев и загрузки команд только потому, что соответствующий tap-репозиторий добавлен. Кроме того, это упрощает автоматизацию: скрипты могут доверять именно тому tap-репозиторию, формуле, каске или команде, которые им нужны, вместо того чтобы полагаться на загрузку всех добавленных tap-репозиториев.
Доверие к tap — одна из составляющих более широкого подхода Homebrew к безопасности цепочки поставок программного обеспечения.
Предпочтительно доверять конкретной нужной вам формуле, каске или команде. Доверяйте tap-репозиторию целиком, только если вы готовы к тому, что Homebrew будет загружать все текущие и будущие формулы, каски и внешние команды из этого репозитория.
Установка из tap-репозитория
При установке формулы или каски по полному имени вы доверяете только этому элементу:
brew install user/repository/formula brew install --cask user/repository/cask
Чтобы установить пакет по короткому имени из добавленного репозитория, сначала доверьте конкретный элемент:
brew tap user/repository brew trust --formula user/repository/formula brew install formula
Для касков используйте brew trust --cask user/repository/cask, а для внешних команд — brew trust --command user/repository/command.
Также можно доверять tap-репозиторию целиком:
brew tap user/repository brew trust user/repository brew install formula
Доверие ко всему tap-репозиторию имеет более широкие последствия. Оно позволяет Homebrew загружать все текущие и будущие формулы, каски и внешние команды из этого репозитория. Это может быть уместно для tap-репозитория, которым вы управляете или на который сильно полагаетесь. Однако при разовой установке, автоматизации или работе с программным обеспечением поставщика, которого вы не контролируете полностью, предпочтительно доверять только нужному элементу.
Доверие в Brewfile
Сведения о синтаксисе доверия в Brewfile, а также о поведении brew bundle при экспорте и очистке см. в разделе trusted документации Homebrew Bundle.
Управление доверием
Список элементов, которым доверяют:
brew trust
Список tap-репозиториев, формул, касков и команд, которым не доверяют:
brew untrust
Отменить доверие к tap-репозиторию или элементу:
brew untrust user/repository brew untrust --formula user/repository/formula
Доверенный tap-репозиторий работает так же, как до появления проверок доверия к tap. Если требуется доверие к tap, недоверенный tap-репозиторий не загружается, если только вы явно не устанавливаете из него формулу или каску по полному имени. Если вы доверяете только определённой формуле, каске или команде, Homebrew может загрузить этот элемент, не доверяя остальной части tap-репозитория.
Переменные среды
Задайте HOMEBREW_REQUIRE_TAP_TRUST=1, чтобы требовать явного доверия уже сейчас.
HOMEBREW_NO_REQUIRE_TAP_TRUST=1 позволяет и дальше разрешать неофициальные tap-репозитории по умолчанию на переходный период. Это не рекомендуется; такую возможность удалят в одном из следующих выпусков.
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/Tap-Trust