Dwa konta VPN, jedna brama i ikona pulpitu, która łączy się jako ten, kto użył jej ostatnio. Zwykłą przyczyną jest launcher, który tuż przed połączeniem przepisuje nazwę użytkownika współdzielonego profilu, albo taki, który szuka nazwy wyświetlanej współdzielonej przypadkiem przez oba profile. NetworkManager już rozróżnia profile po UUID, więc ikona może wskazać dokładnie jeden z nich i nie ruszać tożsamości. Czego nie powinna nosić, to hasło.

Launcher to wskaźnik, a nie magazyn poświadczeń.

Znajdź UUID i potwierdź tożsamość

Wypisz zapisane połączenia i odczytaj UUID, identyfikator połączenia oraz nazwę użytkownika przechowywaną przez każdy profil. Zanim cokolwiek utworzysz, potwierdź, który profil należy do którego konta, bo nazwa wyświetlana to etykieta, a nie klucz. Jeśli dwa konta potrzebują różnych bram lub różnych profili, to osobne zadanie konfiguracyjne.

Użyj UUID w launcherze. Wyszukiwanie po nazwie wyświetlanej działa, dopóki ktoś nie zmieni nazwy profilu, a wtedy ikona łączy się jako niewłaściwe konto albo jako nic.

Zapisz wpis pulpitu

Wpis pulpitu potrzebuje typu, nazwy i wiersza wykonywalnego. Polecenie powinno podnieść ten UUID i pozwolić NetworkManagerowi zapytać o sekret, do czego służy nmcli --ask connection up uuid .... Zachowaj Terminal=true, aby monit był widoczny, gdy potrzebny jest sekret. Zastąp symbol zastępczy UUID, który rzeczywiście zaobserwowałeś, i nie dodawaj otoczki powłoki tylko po to, by ukryć monit.

Specyfikacja Desktop Entry definiuje Exec jako program i jego argumenty. To nie jest skrypt powłoki i nie potrzebuje go.

Pozwól agentowi trzymać sekret

Sekrety należą do agenta dla każdego użytkownika, do pęku kluczy albo do interaktywnego monitu. Hasło w Exec jest widoczne na liście procesów, w pliku pulpitu i na każdym zrzucie okna właściwości. Jeśli profil potrzebuje sekretu, pozwól obsługiwanemu monitowi go zebrać, a agentowi zapamiętać go dla tego użytkownika.

--ask jest interaktywne z założenia. To nie przepis na automatyzację bez nadzoru i nie gwarantuje, że każde wyzwanie uwierzytelniania lub wtyczka da się w ogóle oskryptować.

Nie sięgaj po sudo

Uprawnienie do zmiany lub aktywacji połączenia to uprawnienie NetworkManagera nadawane przez jego politykę, a nie przywilej Unix. Uruchomienie launchera z sudo nie daje procesowi pęku kluczy innego użytkownika i nie naprawia odrzucenia przez bramę. Na współdzielonej maszynie sprawdź, które konta lokalne widzą które profile i kto posiada każdy sekret; osobne ikony same nie tworzą izolacji.

Dwa aktywne profile dla tej samej bramy mogą też konkurować o trasy lub naruszać regułę współbieżności. To kwestia polityki, a nie błąd launchera.

Zweryfikuj całe działanie

Aktywuj launcher raz i potwierdź trzy rzeczy: który UUID się podniósł, jaką tożsamość widziała brama i czy monit o sekret pojawił się tam, gdzie się go spodziewałeś. Jeśli połączenie się nie uda, zachowaj pierwszy komunikat błędu. Dodanie hasła do wiersza poleceń, by skrót wyglądał samodzielnie, ukrywa ten błąd i tworzy gorszy problem.

Zapisz UUID i przyporządkowanie kont w notatkach zespołu. Następna osoba, która zmieni profil, musi wiedzieć, która ikona od niego zależy, i właśnie ta notatka nie pozwala, by zmiana nazwy stała się awarią.

Powiązane artykuły