Dos cuentas VPN, una puerta de enlace y un icono de escritorio que se conecta como quien lo usó por última vez. La causa habitual es un lanzador que reescribe el nombre de usuario de un perfil compartido justo antes de conectar, o uno que busca un nombre visible que ambos perfiles comparten. NetworkManager ya distingue los perfiles por UUID, así que el icono puede nombrar exactamente uno de ellos y dejar la identidad en paz. Lo que no debería llevar es la contraseña.

Un lanzador es un puntero, no un almacén de credenciales.

Encuentre el UUID y confirme la identidad

Liste las conexiones guardadas y lea el UUID, el ID de conexión y el nombre de usuario que guarda cada perfil. Confirme qué perfil pertenece a qué cuenta antes de crear nada, porque un nombre visible es una etiqueta y no una clave. Si las dos cuentas necesitan puertas de enlace distintas o perfiles distintos, esa es una tarea de configuración aparte.

Use el UUID en el lanzador. La búsqueda por nombre visible funciona hasta que alguien renombra un perfil, y entonces el icono se conecta como la cuenta equivocada o como nada.

Escriba la entrada de escritorio

Una entrada de escritorio necesita un tipo, un nombre y una línea ejecutable. El comando debe levantar ese UUID y dejar que NetworkManager pida el secreto, que es para lo que sirve nmcli --ask connection up uuid .... Mantenga Terminal=true para que el aviso se vea cuando haga falta un secreto. Sustituya el marcador por el UUID que realmente observó, y no añada un envoltorio de shell solo para ocultar el aviso.

La especificación Desktop Entry define Exec como el programa y sus argumentos. No es un script de shell, y no necesita uno.

Deje que el agente guarde el secreto

Los secretos pertenecen al agente por usuario, al llavero o a un aviso interactivo. Una contraseña en Exec es visible en la lista de procesos, en el archivo de escritorio y en cualquier captura del diálogo de propiedades. Si el perfil necesita un secreto, deje que el aviso compatible lo recoja y que el agente lo recuerde para ese usuario.

--ask es interactivo por diseño. No es una receta para la automatización sin supervisión y no garantiza que cada desafío de autenticación o complemento pueda programarse.

No recurra a sudo

La autorización para modificar o activar una conexión es un permiso de NetworkManager concedido a través de su política, no un privilegio de Unix. Ejecutar el lanzador con sudo no le da al proceso el llavero de otro usuario ni arregla un rechazo de la puerta de enlace. En una máquina compartida, revise qué cuentas locales ven qué perfiles y quién posee cada secreto; los iconos separados no crean aislamiento por sí solos.

Dos perfiles activos para la misma puerta de enlace también pueden competir por las rutas o infringir una regla de concurrencia. Eso es una cuestión de política y no un fallo del lanzador.

Verifique toda la acción

Active el lanzador una vez y confirme tres cosas: el UUID que subió, la identidad que vio la puerta de enlace y si apareció un aviso de secreto donde lo esperaba. Si la conexión falla, conserve el primer mensaje de error. Añadir la contraseña a la línea de comandos para que el acceso directo parezca autosuficiente oculta ese error y crea un problema peor.

Escriba el UUID y la correspondencia de cuentas en las notas del equipo. La siguiente persona que cambie un perfil necesita saber qué icono depende de él, y esa nota es lo que impide que un cambio de nombre se convierta en una caída.

Artículos relacionados