Skip to main content

Общие сведения о политиках файловой системы для локальной песочницы интерфейс командной строки GitHub Copilot

Если включена локальная песочница, запускает каждый изолированный процесс или операцию в политике файловой системы, Второй пилот CLI которая управляет файлами и каталогами, которые она может читать и записывать. Узнайте, как эта политика создана и как проверить доступ, который он предоставляет.

Примечание.

Локальные песочницы для GitHub Copilot них находятся и подвергаются Публичный предварительный просмотр изменению.

Внимание

Для локальной песочницы в Windows требуется сборка Windows insiders.

Introduction

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

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

Общие сведения о локальной песочнице, включая включение и отключение, см. в разделе Сведения об облачных и локальных песочницах для GitHub Copilot и Использование локальной песочницы.

Что применяется к политике

Политика файловой системы охватывает работу Copilot от вашего имени, но она применяется различными способами в зависимости от типа работы:

  • Команды оболочки и встроенные поиски выполняются как изолированные дочерние процессы, поэтому операционная система напрямую применяет политику. grep glob Например, запустите ripgrep как изолированный дочерний процесс.
  • Локальные процессы MCP и языкового сервера (LSP) также могут выполняться внутри песочницы, поэтому операционная система также применяет политику к ним.
  • Встроенные средства чтения и редактирования файлов выполняются как часть Второй пилот CLI самого себя, а не как изолированный дочерний процесс. Они проверяют ту же политику файловой системы перед чтением или записью файла, но так как песочница операционной системы никогда не видит эти операции, проверка является защитой только программной системы, а не одной операционной системой.
  • Удаленные серверы MCP выполняются за пределами компьютера, поэтому локальный дочерний процесс для песочницы и политика файловой системы не ограничивает их.
  • Субагенты не действуют напрямую; они оркестрируют другие инструменты. Применяется ли политика и как зависит от средства, вызываемого подагентом.

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

Уровни разрешений

Песочница по умолчанию запрещена: если путь явно не предоставлен, команда не может использовать ее. Каждый путь в политике имеет один из трех уровней разрешений:

  • Чтение и запись — команда может считывать и изменять файлы по этому пути.
  • Только для чтения — команда может считывать файлы по этому пути, но не изменять их.
  • Отклонено — команда не может читать или записывать данные по этому пути, даже если более широкое правило в противном случае позволит ему.

Так как доступ запрещен, если он не предоставлен, Copilot необходимо предоставить команду всем, что он законно нуждается в файлах проекта, средствах, которые он выполняет, и вспомогательных расположениях, таких как временные каталоги, при сохранении всех остальных ограничений.

Примечание.

Эти уровни разрешений применяются к каждому изолированному процессу или операции, но они применяются по-разному: для изолированных дочерних процессов операционная система применяет их напрямую, в то время как встроенные средства чтения файлов и редактирования файлов cli проверяют одинаковые уровни программного обеспечения без резервной системы операционной системы.

Как создается политика

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

Рабочий каталог

Если включен рабочий каталог в параметрах файловой системы для локальной песочницы( как по умолчанию), текущий рабочий каталог предоставляется доступ на чтение и запись. В репозитории Copilot Git также добавляет связанные гранты Git. Отключение этого параметра отключает все эти автоматические гранты, поэтому необходимо добавить правила разрешения для необходимых путей проекта и Git вручную. См. Настройка локальных настроек песочницы.

Примечание.

Если вы получаете Copilot от корпоративной организации, администратор может отключить параметр "Включить рабочий каталог " и заблокировать его, чтобы вы не могли включить его обратно. См. Управляемые корпоративными настройками.

Средства в пути

Чтобы запустить программу, например python или git, песочница должна позволить команде увидеть каталог, в который находится программа. Переменная PATH среды перечисляет эти каталоги и Copilot предоставляет им доступ только для чтения , а также каталоги, именованные связанными переменными инструментов, такими как GOPATH, CARGO_HOMEи PYTHONPATH. Только для чтения — это правильный уровень для внешних инструментов: команда должна выполняться git, а не изменять ее. Полный PATH список переменных среды с цепочкой инструментов проверяет песочницу и интерпретируется каждым из них, см. в разделе Справочник команды GitHub Copilot CLI.

Расположения систем и профилей

Стандартные системные расположения и каталог профилей пользователей (главная) предоставляются только для чтения, чтобы команды могли считывать файлы конфигурации и общие библиотеки без возможности их изменения.

Кэши диспетчера пакетов

Чтобы позволить установкам и сборкам работать в песочнице, Copilot также предоставляет доступ к кэшам и реестрам, используемым общими диспетчерами пакетов и цепочками инструментов— только для чтения реестров и цепочки инструментов, а также для чтения и записи для кэшей сборок. В отчете это отображается как доступ к средству/sandbox policy разработки.

Репозитории Git

При работе в подкаталоге репозитория Git предоставляет доступ на чтение ко всему репозиторию, Copilot чтобы команды могли видеть полный проект, ограничивая запись в текущий рабочий каталог и метаданные репозитория Git (его .git каталог). Это позволяет команде читать в репозитории, но сохраняет изменения, ориентированные на то, где вы работаете.

Так как доступ на чтение охватывает весь репозиторий, команда песочницы может считывать файлы за пределами текущей подкаталога, включая все конфиденциальные данные, хранящиеся в другом месте проекта. Чтобы сохранить определенные пути вне досягаемости, можно добавить правила запрета. См. Настройка локальных настроек песочницы.

При перекрытии правил доступа

Так как Copilot предоставляет несколько расположений, и вы можете добавить собственные, правила могут перекрываться. Когда они делают, более конкретный путь выигрывает. Например, если /project запись доступна, но вы помечаете /project/secrets только для чтения, все в /project остающихся записываемых, кроме /project/secrets. Это удобный способ защиты конфиденциальной вложенной папки.

Перекрытия также разрешаются в вашей пользу, когда удобное предоставление в противном случае окажется в пути. Рассмотрим проект Python с локальной виртуальной средой (.venv), которая отображается на вашем компьютереPATH. Обработка этого каталога как обычного расположения инструмента только для чтения сделает его доступным только для чтения , даже если он находится внутри записываемого проекта, и команда, например pip install , может завершиться ошибкой при попытке обновить среду. Copilot Разрешает это для вас: предоставление, которое оно добавлено автоматически (например, каталог инструментов) PATHдает более широкий доступ для чтения и записи, который уже охватывает его. Таким образом, локальный .venv``node_modules/.binили аналогичный каталог остается доступным для записи в рамках рабочей области.

Правила, которые вы настраиваете, всегда хранятся. Если пометить путь только для чтения или запретить его, это решение стоит даже в том случае, если тот же путь будет обнаружен и предоставлен автоматически. Это дает надежный способ защитить конфиденциальное расположение, например запретить .env файл, чтобы не было изолированной команды, чтобы считывать секреты.

Проверка того, что позволяет текущая политика

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

Shell
/sandbox policy

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

При чтении отчета следует учитывать несколько моментов:

  • Он отражает текущий каталог. Так как гранты обнаруживаются в каждом каталоге, одни и те же параметры могут разрешаться в зависимости от того, где выполняется выполнение.
  • Если настроенный путь не существует на диске, он остается вне политики и отмечен в разделе "Заметки ". Это объясняет, почему добавленное правило может не влиять.
  • Если песочница отключена, говорит вам, что вместо печати политики, /sandbox policy так как ограничения не применяются.

Чтобы проверить, включена ли песочница в данный момент, используйте /sandbox status. Дополнительные сведения об этих командах см. в разделе Использование локальной песочницы.

Настройка политики

Вы можете предоставить дополнительные пути только для чтения или записи, запретить пути и изменить другое поведение файловой системы в /sandbox config диалоговом окне или в файле параметров. После внесения изменений выполните команду /sandbox policy , чтобы подтвердить результат. Для пошаговых инструкций см. АВТОТИТР.

Политики, управляемые предприятием

Если вы получаете Copilot доступ к корпоративной организации, администратор может применить политику файловой системы с помощью управляемых параметров. Управляемые параметры действуют как базовые показатели, которые нельзя освободить: они могут требовать песочницу, добавлять запрещенные пути и ограничивать разрешенные пути. Где применяется управляемый параметр, /sandbox config диалоговое окно отображает его как заблокированное (управляемое) значение и /sandbox policy отражает его в разрешенной политике.

В отличие от большинства параметров, где один источник выигрывает, политика песочницы состоит из каждого источника одновременно. Управляемые параметры могут одновременно поступать через несколько каналов — управляемые сервером, MDM и файловые параметры, и они объединяются друг с другом, а также с собственными параметрами, а не **** одним источником, переопределяющим другой: обязательный переключатель остается на месте, отказано в пути из всех источников, и пути, которые можно предоставить, можно только сузить. Дополнительные сведения см. в разделе Управляемые корпоративными настройками.

Дополнительные материалы