Los errores de permisos que solo ocurren en subprocesos aparecen cuando el agente inicia procesos secundarios con una identidad, un entorno, un espacio de nombres, una vista del sistema de archivos o una política de seguridad diferentes.
Un proceso del agente puede leer correctamente un archivo del hogar o llamar a una herramienta y, después, recibir un error de permiso denegado cuando la misma acción se ejecuta mediante un shell, un proceso de trabajo de Python, un contenedor o un sandbox. El proceso secundario puede perder grupos suplementarios, credenciales, variables de entorno, capacidades, acceso a sockets, visibilidad de montajes o permisos de ejecución. El texto del comando es idéntico, pero su contexto de seguridad no lo es.
El proceso secundario puede heredar un conjunto diferente de usuarios y credenciales
Los lanzadores pueden establecer el UID, el GID, los grupos suplementarios, la umask, el directorio de trabajo, el entorno y los descriptores de archivo. Los gestores de servicios, los auxiliares setuid, los contenedores y los grupos de procesos de trabajo pueden eliminar privilegios intencionadamente antes de ejecutar código generado. Esta distinción sigue siendo visible durante las pruebas posteriores en el hogar.
Un análisis práctico del contexto de seguridad del proceso comienza con comprobaciones de identidad, política de seguridad y espacio de nombres, en lugar de asumir que los bits de modo de Unix cuentan toda la historia. La señal característica es un ID, unos grupos, una umask o una disponibilidad de credenciales diferentes dentro del proceso secundario.
Que un proceso principal se ejecute como root no garantiza que el proceso secundario tenga acceso sin restricciones, y los ID numéricos pueden asignarse de forma diferente en contenedores o recursos compartidos de red. Compara la identidad efectiva en la llamada al sistema que falla. El resultado intermedio debe seguir siendo inspeccionable antes de que continúe la automatización.
Los espacios de nombres, los montajes y los sandboxes cambian la vista del sistema de archivos
Un subproceso puede entrar en un contenedor o sandbox donde las rutas sean de solo lectura, estén ocultas, reasignadas, montadas con noexec o pertenezcan a otro ID numérico. Los sockets Unix y los archivos de dispositivo pueden no estar presentes aunque aparezcan los archivos normales.
Un caso práctico de resolución de problemas muestra los permisos de sockets del sandbox cuando un proceso secundario no puede acceder al socket reenviado que necesita. La lección es que permiso denegado puede describir una política de conectividad o de espacio de nombres, no solo el contenido de un archivo. Ese límite debe medirse por separado en condiciones operativas realistas.
Si el proceso secundario ve otro inode, otras opciones de montaje u otra ruta, cambiar los permisos del host puede no afectarle. Resuelve la ruta y la identidad del montaje desde dentro del contexto que falla. La consecuencia práctica aparece cuando varias fuentes compiten por un contexto limitado.
Las capacidades y las políticas obligatorias pueden denegar bits de modo permitidos
Las capacidades de Linux dividen los privilegios de root, mientras que SELinux, AppArmor, seccomp y las reglas del sandbox pueden rechazar operaciones pese a que el propietario tenga bits de lectura o ejecución. Las operaciones de red, ptrace, dispositivos y montajes son límites habituales. Esta dependencia debe mantenerse explícita en la interfaz final.
El modelo de capacidades y etiquetas de seguridad enumera los controles de UID y GID junto con las capacidades y las etiquetas de seguridad. Esas capas independientes explican por qué chmod por sí solo puede dejar sin cambios el fallo del subproceso. Por tanto, el resultado debe comprobarse con respecto a las pruebas originales.
El límite del fallo es un mensaje de permiso generado por la aplicación que no corresponde a una denegación del sistema operativo. Captura errno, los registros de auditoría y la llamada al sistema exacta antes de debilitar la política del sandbox o hacer que los archivos sean modificables por todo el mundo. Esta distinción sigue siendo visible durante las pruebas posteriores en el hogar.
Compara los contextos de seguridad del proceso principal y el secundario en la llamada que falla
Captura la ruta del ejecutable, los argumentos, el directorio de trabajo actual, el UID, el GID, los grupos, la umask, los nombres de las variables de entorno, los descriptores de archivo, los ID de los espacios de nombres, la tabla de montajes, el inode de la ruta, el modo, la ACL, la etiqueta de seguridad, las capacidades, el estado de seccomp, la presencia del socket, errno y la decisión de auditoría tanto en el proceso principal como en el secundario.
Usa los controles de capacidades del agente para relacionar el resultado con el alcance de las herramientas del agente. Reproduce el problema con un proceso secundario mínimo y vuelve a añadir las capas del lanzador, el contenedor y el sandbox una por una. El resultado intermedio debe seguir siendo inspeccionable antes de que continúe la automatización.
Concede únicamente la capacidad, el grupo, el montaje, el socket o la ruta que falte. Mantén la restricción cuando refleje el aislamiento previsto; el fallo del subproceso puede ser una señal de que el límite de confianza de la IA doméstica funciona correctamente. Ese límite debe medirse por separado en condiciones operativas realistas.
Centro de Tecnología e IA
Más para leer

¿Qué hace que un planificador de agentes de IA repita pasos que ya completó?
Rastrea los pasos repetidos del planificador mediante la persistencia del estado, la evidencia de finalización, el análisis de los resultados de las herramientas, la...

¿Qué causa la saturación de la CPU cuando se ejecutan simultáneamente la transcodificación por hardware y la IA de vídeo?
Rastrea la saturación de la CPU en la descarga de códecs, la conversión de píxeles, las copias de fotogramas, el preprocesamiento de IA, el...

¿Qué causa que el mismo LLM local devuelva esquemas JSON incoherentes?
Diagnostica el JSON local incoherente fijando la ruta del modelo, el prompt, el esquema, las restricciones del decodificador, el muestreo, el contexto, las condiciones...

