El propósito de ~/Library/Containers
es proporcionar el monto de los directorios de inicio virtualizados para aplicaciones de espacio aislado. Cuando una aplicación de espacio aislado "solicita" el directorio de inicio del usuario (a través de NSHomeDirectory
), se le asigna la ruta a su directorio contenedor. Estas características no permiten que las aplicaciones de espacio aislado accedan a los datos en estos directorios, ni ocupan (más de una cantidad trivial) de almacenamiento adicional. (De hecho, para el punto anterior, esta función está diseñada para restringir el acceso de las aplicaciones a sus datos; para el último, las "carpetas duplicadas" son solo enlaces simbólicos, que funcionan como referencias al directorios reales que representan.)
Una aplicación que se encuentra en un espacio aislado puede solo leer y escribir en ubicaciones que son subdirectorios de su propio contenedor. Las carpetas con enlaces simbólicos en cada Container
(por ejemplo, Descargas y Documentos) no son accesibles no de forma predeterminada a las aplicaciones de espacio aislado. Las aplicaciones de espacio aislado solo pueden acceder a ubicaciones de sistemas de archivos externos si se les otorga acceso explícito a través de NSOpenPanel
o NSSavePanel
(uno de los cuadros de diálogo emergentes que le solicita que seleccione un archivo para abrir o una ubicación donde guardar un archivo). ) a través de la API de Powerbox (este es el modelo utilizado por las aplicaciones basadas en documentos; por ejemplo, esto le permite guardar y abrir documentos que edite con un editor de texto en un espacio aislado en su carpeta Documents
). De hecho, las aplicaciones que no usan la aplicación Sandbox (y, por lo tanto, no tienen un directorio contenedor) pueden acceder virtualmente a cualquier archivo dentro de su directorio de inicio (aunque habrá algunas más restrictions implementado en macOS Mojave), mientras que los que sí usan el Sandbox de aplicaciones (es decir, aquellos que están dado un contenedor) no puede. Además, vale la pena señalar que todas las aplicaciones en la tienda de aplicaciones de Mac deben usar la aplicación Sandbox.
En resumen: sí, se supone que esas "carpetas de inicio replicadas" están ahí, es decir, el comportamiento previsto; no, no consumen ninguna cantidad significativa de espacio de disco adicional; y la función que hace que aparezcan estas carpetas es, en realidad, evitar que estas aplicaciones accedan a sus datos personales, y no las habilitan.
Lectura adicional: