Skip to main content

Descripción de las directivas del sistema de archivos para el espacio aislado local en CLI de GitHub Copilot

Cuando se habilita el espacio aislado local, CLI de Copilot ejecuta cada proceso o operación de espacio aislado en una directiva del sistema de archivos que controla qué archivos y directorios pueden leer y escribir. Obtenga información sobre cómo se compila esa directiva y cómo comprobar el acceso que concede.

Nota:

Los espacios aislados locales para GitHub Copilot están en versión preliminar pública y están sujetos a cambios.

Importante

El espacio aislado local en Windows requiere una compilación de Windows Insiders.

Introduction

Al habilitar el espacio aislado local, CLI de Copilot ejecuta los comandos que invoca en su nombre dentro de un espacio aislado del sistema operativo. El espacio aislado aplica una directiva de sistema de archivos: un conjunto de reglas que deciden qué rutas de acceso puede leer un proceso o una operación de espacio aislado, que puede escribir y cuáles no pueden tocar en absoluto.

La mayoría de esta directiva se ensambla automáticamente, de modo que los comandos diarios sigan funcionando sin configurar. En este artículo se explica cómo Copilot llega a la directiva y cómo comprobar el acceso que concede en un directorio determinado.

Para obtener información general sobre el espacio aislado local, incluido cómo activarlo y desactivarlo, consulte Acerca de los espacios aislados locales y en la nube para GitHub Copilot y Uso del espacio aislado local.

¿A qué se aplica la directiva?

La directiva del sistema de archivos cubre el trabajo Copilot en su nombre, pero se aplica de maneras diferentes en función del tipo de trabajo:

  • Los comandos de Shell y las búsquedas integradas se ejecutan como procesos secundarios de espacio aislado, por lo que el sistema operativo aplica la directiva directamente. Las grep herramientas y glob , por ejemplo, ejecutan ripgrep como un proceso secundario de espacio aislado.
  • Los procesos locales de MCP y del servidor de lenguaje (LSP) también se pueden ejecutar dentro del espacio aislado, por lo que el sistema operativo también aplica la directiva en ellos.
  • Las herramientas integradas de lectura de archivos y edición de archivos se ejecutan como parte de sí mismo en lugar de CLI de Copilot como un proceso secundario de espacio aislado. Comprueban la misma directiva del sistema de archivos antes de leer o escribir un archivo, pero dado que el espacio aislado del sistema operativo nunca ve estas operaciones, la comprobación es una protección solo de software en lugar de una que el sistema operativo aplica.
  • Los servidores MCP remotos se ejecutan fuera de la máquina, por lo que no hay ningún proceso secundario local en el espacio aislado y la directiva del sistema de archivos no las restringe.
  • Los subagentes no actúan directamente; orquestan otras herramientas. Si se aplica la directiva y cómo depende de la herramienta que invoca un subagente.

Por lo tanto, un proceso de espacio aislado está restringido por el sistema operativo, mientras que una operación en proceso aplica la misma directiva en el software, por lo que este artículo hace referencia a un proceso o operación de espacio aislado en lugar de solo a comandos.

Niveles de permisos

El espacio aislado es deny-by-default: a menos que se conceda explícitamente una ruta de acceso, un comando no puede usarlo. Cada ruta de acceso de la directiva tiene uno de los tres niveles de permisos:

  • Lectura y escritura : el comando puede leer y modificar archivos en esta ruta de acceso.
  • Solo lectura : el comando puede leer archivos en esta ruta de acceso, pero no cambiarlos.
  • Denegado : el comando no puede leer ni escribir en esta ruta de acceso, aunque una regla más amplia lo permita.

Dado que se deniega el acceso a menos que se conceda, Copilot debe conceder un comando todo lo que necesita legítimamente, los archivos del proyecto, las herramientas que ejecuta y las ubicaciones auxiliares, como directorios temporales, al tiempo que mantiene todo lo demás fuera de los límites.

Nota:

Estos niveles de permisos se aplican a cada proceso o operación de espacio aislado, pero se aplican de forma diferente: para los procesos secundarios de espacio aislado, el sistema operativo los aplica directamente, mientras que las propias herramientas integradas de lectura de archivos y edición de archivos de la CLI comprueban los mismos niveles de software, sin un backstop del sistema operativo.

Cómo se compila la directiva

Antes de que se inicie cada proceso de espacio aislado, CLI de Copilot resuelve la directiva efectiva para ese proceso mediante el directorio de trabajo actual, el entorno, la configuración y las concesiones automáticas. Esto restringe el proceso solo al acceso que necesita y significa que no tiene que administrar estas ubicaciones comunes usted mismo.

El directorio de trabajo

Cuando Include working directory (Incluir directorio de trabajo ) está habilitado en la configuración del sistema de archivos para el espacio aislado local, como es de forma predeterminada, el directorio de trabajo actual tiene acceso de lectura y escritura. En un repositorio de Git, Copilot también agrega las concesiones de Git asociadas. Al desactivar esta configuración, se suprimen todas esas concesiones automáticas, por lo que debe agregar reglas de permiso para las rutas de acceso de Git y del proyecto necesarias manualmente. Consulte Configurar la configuración del entorno aislado local.

Nota:

Si obtiene Copilot de una organización de propiedad empresarial, un administrador puede desactivar la configuración Incluir directorio de trabajo y bloquearla, por lo que no puede volver a activarla. Consulte Configuración administrada por la empresa.

Herramientas en la ruta de acceso

Para ejecutar un programa como python o git, el espacio aislado tiene que permitir que el comando vea el directorio en el que reside el programa. La PATH variable de entorno enumera estos directorios y Copilot les concede acceso de solo lectura, junto con directorios denominados por variables de herramientas relacionadas, como GOPATH, CARGO_HOMEy PYTHONPATH. Solo lectura es el nivel adecuado para las herramientas externas: un comando debe ejecutar git, no modificarlo. Para obtener la lista completa de las PATH variables de entorno de cadena de herramientas y el espacio aislado inspecciona y cómo se interpreta cada una de ellas, consulte Referencia de comandos de la CLI de GitHub Copilot.

Ubicaciones del sistema y del perfil

A las ubicaciones estándar del sistema y al directorio de perfil de usuario (inicio) se les concede solo lectura, de modo que los comandos puedan leer archivos de configuración y bibliotecas compartidas sin poder cambiarlos.

Cachés del administrador de paquetes

Para permitir que las instalaciones y compilaciones funcionen dentro del espacio aislado, Copilot también concede acceso a las memorias caché y los registros usados por administradores de paquetes comunes y cadenas de herramientas, solo lectura para registros y cadenas de herramientas, y lectura y escritura para las memorias caché de compilación. En el /sandbox policy informe, aparece como acceso a la herramienta de desarrollo.

Repositorios Git

Cuando trabaja en un subdirectorio de un repositorio de Git, Copilot concede acceso de lectura a todo el repositorio para que los comandos puedan ver el proyecto completo, al tiempo que limita las escrituras en el directorio de trabajo actual y los metadatos de Git del repositorio (su .git directorio). Esto permite que un comando lea en el repositorio, pero mantiene los cambios centrados en dónde está trabajando.

Dado que el acceso de lectura abarca todo el repositorio, un comando de espacio aislado puede leer archivos fuera del subdirectorio actual, incluida cualquier información confidencial almacenada en otro lugar del proyecto. Para mantener las rutas de acceso específicas fuera de alcance, puede agregar reglas de denegación. Consulte Configurar la configuración del entorno aislado local.

Cuando las reglas de acceso se superponen

Dado que Copilot concede varias ubicaciones y puede agregar sus propias reglas, las reglas se pueden superponer. Cuando lo hacen, el camino más específico gana. Por ejemplo, si /project se puede escribir, pero se marca /project/secrets solo lectura, todo en /project permanece grabable excepto /project/secrets. Se trata de una manera útil de proteger una subcarpeta confidencial.

Las superposiciones también se resuelven en su favor cuando una concesión de conveniencia se obtendría de otro modo. Considere un proyecto de Python con un entorno virtual local (.venv) que aparece en PATH. El tratamiento de ese directorio como una ubicación normal de la herramienta de solo lectura haría que sea de solo lectura, aunque se encuentre dentro del proyecto grabable, y un comando como pip install podría producir un error cuando intentó actualizar el entorno. Copilot resuelve esto automáticamente: una concesión que se agrega automáticamente (como un directorio de herramientas en PATH) da forma a una concesión de lectura y escritura más amplia que ya la cubre. Por lo tanto, un directorio local .venvde proyecto , node_modules/.bino similar permanece grabable como parte del área de trabajo.

Las reglas que configure siempre se conservan. Si marca una ruta de acceso de solo lectura o la deniega, esa decisión se mantiene incluso cuando se detectara y concedera automáticamente la misma ruta de acceso. Esto le proporciona una manera confiable de proteger una ubicación confidencial, por ejemplo, denegar un .env archivo para que ningún comando de espacio aislado pueda leer los secretos.

Comprobación de lo que permite la directiva actual

Dado que la directiva se ensambla para cada directorio y comando, la manera más sencilla de ver el acceso que tiene es preguntar CLI de Copilot. En una sesión, escriba:

Shell
/sandbox policy

Copilot imprime la directiva efectiva para el directorio actual: las rutas de acceso de lectura y escritura, solo lectura y denegado que recibiría un comando iniciado desde aquí, junto con el acceso a la red y el acceso a la herramienta de desarrollo en vigor. Este es el resultado resuelto después de que las concesiones automáticas y su propia configuración se hayan combinado y se hayan resuelto las superposiciones, no solo una copia de la configuración guardada.

Algunas cosas que debe tener en cuenta al leer el informe:

  • Refleja el directorio actual. Dado que las concesiones se detectan por directorio, la misma configuración puede resolverse en rutas de acceso diferentes en función de dónde se ejecute.
  • Si no existe una ruta de acceso configurada en el disco, se deja fuera de la directiva y se indica en una sección Notas . Esto explica por qué es posible que una regla que haya agregado no tenga ningún efecto.
  • Si el espacio aislado está desactivado, /sandbox policy le indica que en lugar de imprimir una directiva, ya que no hay restricciones vigentes.

Para comprobar solo si el espacio aislado está activado actualmente, use /sandbox status. Para obtener más información sobre estos comandos, consulte Uso del espacio aislado local.

Personalización de la directiva

Puede conceder rutas de acceso adicionales de lectura y escritura o de solo lectura, denegar rutas de acceso y cambiar otro comportamiento del sistema de archivos, ya sea desde el cuadro de diálogo o en el /sandbox config archivo de configuración. Después de realizar un cambio, ejecute /sandbox policy para confirmar el resultado. Para obtener instrucciones paso a paso, consulte Configurar la configuración del entorno aislado local.

Directivas administradas por la empresa

Si se realiza Copilot a través de una organización de propiedad empresarial, un administrador puede aplicar una directiva de sistema de archivos a través de la configuración administrada. La configuración administrada actúa como una línea de base que no se puede aflojar: pueden requerir espacio aislado, agregar rutas de acceso denegadas y limitar las rutas de acceso que puede conceder. Cuando se aplica una configuración administrada, el /sandbox config cuadro de diálogo lo muestra como un valor bloqueado (administrado) y /sandbox policy lo refleja en la directiva resuelta.

A diferencia de la mayoría de la configuración, donde gana un único origen, la directiva de espacio aislado se compone de cada origen en vigor a la vez. La configuración administrada puede llegar a través de más de un canal simultáneamente (administrado por el servidor, MDM y basado en archivos), y estos se combinan entre sí, y con su propia configuración, en la dirección más restrictiva en lugar de un origen reemplazando a otro: un botón de alternancia necesario permanece activado, las rutas de acceso denegadas de todos los orígenes se agregan y las rutas de acceso que puede conceder solo se pueden restringir. Para obtener más información, vea Configuración administrada por la empresa.

Lectura adicional