Dê a cada conta VPN o seu próprio lançador do NetworkManager
Duas contas num mesmo gateway precisam de dois perfis nomeados, não de um nome de utilizador reescrito. Aponte o lançador a um UUID e deixe o agente recolher o segredo.
Duas contas VPN, um gateway e um ícone de ambiente de trabalho que se liga como quem o usou por último. A causa habitual é um lançador que reescreve o nome de utilizador de um perfil partilhado mesmo antes de ligar, ou um que procura um nome de apresentação que ambos os perfis partilham. O NetworkManager já distingue os perfis por UUID, pelo que o ícone pode nomear exatamente um deles e deixar a identidade em paz. O que não deve transportar é a palavra-passe.
Um lançador é um apontador, não um armazém de credenciais.
Encontre o UUID e confirme a identidade
Liste as ligações guardadas e leia o UUID, o ID da ligação e o nome de utilizador que cada perfil guarda. Confirme qual perfil pertence a que conta antes de criar algo, porque um nome de apresentação é uma etiqueta e não uma chave. Se as duas contas precisarem de gateways diferentes ou de perfis diferentes, isso é uma tarefa de configuração separada.
Use o UUID no lançador. A procura por nome de apresentação funciona até alguém renomear um perfil, e então o ícone liga-se como a conta errada ou como nada.
Escreva a entrada de ambiente de trabalho
Uma entrada de ambiente de trabalho precisa de um tipo, um nome e uma linha executável. O comando deve levantar esse UUID e deixar o NetworkManager pedir o segredo, que é para isso que serve nmcli --ask connection up uuid .... Mantenha Terminal=true para que o pedido fique visível quando for necessário um segredo. Substitua o marcador pelo UUID que realmente observou, e não acrescente um invólucro de shell só para esconder o pedido.
A especificação Desktop Entry define Exec como o programa e os seus argumentos. Não é um script de shell, e não precisa de um.
Deixe o agente guardar o segredo
Os segredos pertencem ao agente por utilizador, ao porta-chaves ou a um pedido interativo. Uma palavra-passe em Exec é visível na lista de processos, no ficheiro de ambiente de trabalho e em qualquer captura do diálogo de propriedades. Se o perfil precisar de um segredo, deixe o pedido suportado recolhê-lo e o agente lembrá-lo para esse utilizador.
--ask é interativo por conceção. Não é uma receita para automação sem supervisão e não garante que cada desafio de autenticação ou extensão possa sequer ser escrito como script.
Não recorra ao sudo
A autorização para modificar ou ativar uma ligação é uma permissão do NetworkManager concedida pela sua política, não um privilégio Unix. Executar o lançador com sudo não dá ao processo o porta-chaves de outro utilizador e não corrige uma rejeição do gateway. Numa máquina partilhada, reveja que contas locais veem que perfis e quem possui cada segredo; ícones separados não criam isolamento por si só.
Dois perfis ativos para o mesmo gateway também podem competir pelas rotas ou violar uma regra de concorrência. Isso é uma questão de política e não um erro do lançador.
Verifique toda a ação
Ative o lançador uma vez e confirme três coisas: o UUID que subiu, a identidade que o gateway viu e se apareceu um pedido de segredo onde o esperava. Se a ligação falhar, guarde a primeira mensagem de erro. Acrescentar a palavra-passe à linha de comandos para o atalho parecer autónomo esconde esse erro e cria um problema pior.
Escreva o UUID e a correspondência das contas nas notas da equipa. A próxima pessoa que alterar um perfil precisa de saber que ícone depende dele, e é essa nota que impede que uma mudança de nome se torne numa interrupção.