Due account VPN, un gateway e un’icona del desktop che si connette come chi l’ha usata per ultimo. La causa abituale è un lanciatore che riscrive il nome utente di un profilo condiviso subito prima di connettersi, o uno che cerca un nome visualizzato che entrambi i profili condividono per caso. NetworkManager distingue già i profili tramite UUID, quindi l’icona può nominarne esattamente uno e lasciare in pace l’identità. Ciò che non dovrebbe trasportare è la password.

Un lanciatore è un puntatore, non un deposito di credenziali.

Trovate l’UUID e confermate l’identità

Elencate le connessioni salvate e leggete l’UUID, l’ID di connessione e il nome utente che ogni profilo conserva. Confermate quale profilo appartiene a quale account prima di creare qualcosa, perché un nome visualizzato è un’etichetta e non una chiave. Se i due account richiedono gateway diversi o profili diversi, è un’attività di configurazione separata.

Usate l’UUID nel lanciatore. La ricerca per nome visualizzato funziona finché qualcuno non rinomina un profilo, e allora l’icona si connette come l’account sbagliato o come nulla.

Scrivete la voce del desktop

Una voce del desktop richiede un tipo, un nome e una riga eseguibile. Il comando deve far salire quell’UUID e lasciare che NetworkManager chieda il segreto, ed è a questo che serve nmcli --ask connection up uuid .... Mantenete Terminal=true perché la richiesta sia visibile quando serve un segreto. Sostituite il segnaposto con l’UUID che avete realmente osservato, e non aggiungete un involucro shell solo per nascondere la richiesta.

La specifica Desktop Entry definisce Exec come il programma e i suoi argomenti. Non è uno script shell, e non ne ha bisogno.

Lasciate che l’agente custodisca il segreto

I segreti appartengono all’agente per utente, al portachiavi o a una richiesta interattiva. Una password in Exec è visibile nell’elenco dei processi, nel file desktop e in qualsiasi schermata della finestra delle proprietà. Se il profilo richiede un segreto, lasciate che la richiesta supportata lo raccolga e che l’agente lo ricordi per quell’utente.

--ask è interattivo per concezione. Non è una ricetta per l’automazione senza sorveglianza e non garantisce che ogni sfida di autenticazione o plugin possa essere messa in script.

Non ricorrete a sudo

L’autorizzazione a modificare o attivare una connessione è un permesso di NetworkManager concesso tramite la sua politica, non un privilegio Unix. Eseguire il lanciatore con sudo non dà al processo il portachiavi di un altro utente e non corregge un rifiuto del gateway. Su una macchina condivisa, verificate quali account locali vedono quali profili e chi possiede ogni segreto; icone separate non creano isolamento da sole.

Due profili attivi per lo stesso gateway possono anche contendersi le rotte o violare una regola di concorrenza. È una questione di politica, non un difetto del lanciatore.

Verificate l’intera azione

Attivate il lanciatore una volta e confermate tre cose: l’UUID che è salito, l’identità che il gateway ha visto e se è comparso un invito al segreto dove lo aspettavate. Se la connessione fallisce, conservate il primo messaggio di errore. Aggiungere la password alla riga di comando per far sembrare autosufficiente la scorciatoia nasconde quell’errore e crea un problema peggiore.

Scrivete l’UUID e la corrispondenza degli account nelle note del team. La prossima persona che modificherà un profilo deve sapere quale icona ne dipende, ed è quella nota a impedire che una rinomina diventi un’interruzione.

Articoli correlati