Geef elk VPN-account zijn eigen NetworkManager-starter
Twee accounts op één gateway hebben twee benoemde profielen nodig, geen herschreven gebruikersnaam. Richt de starter op een UUID en laat de agent het geheim verzamelen.
Twee VPN-accounts, één gateway en een bureaubladpictogram dat verbindt als wie het laatst gebruikte. De gebruikelijke oorzaak is een starter die vlak voor het verbinden de gebruikersnaam van een gedeeld profiel herschrijft, of een die een weergavenaam opzoekt die beide profielen toevallig delen. NetworkManager onderscheidt profielen al op UUID, dus het pictogram kan precies één ervan benoemen en de identiteit met rust laten. Wat het niet moet dragen, is het wachtwoord.
Een starter is een verwijzing, geen opslagplaats voor inloggegevens.
Vind de UUID en bevestig de identiteit
Toon de opgeslagen verbindingen en lees de UUID, de verbindings-ID en de gebruikersnaam die elk profiel bewaart. Bevestig welk profiel bij welk account hoort voordat je iets aanmaakt, want een weergavenaam is een label en geen sleutel. Als de twee accounts verschillende gateways of verschillende profielen nodig hebben, is dat een aparte configuratietaak.
Gebruik de UUID in de starter. Opzoeken op weergavenaam werkt tot iemand een profiel hernoemt, en dan verbindt het pictogram als het verkeerde account of als niets.
Schrijf de bureaubladvermelding
Een bureaubladvermelding heeft een type, een naam en een uitvoerbare regel nodig. De opdracht moet die UUID omhoog brengen en NetworkManager om het geheim laten vragen, waarvoor nmcli --ask connection up uuid ... bedoeld is. Houd Terminal=true aan zodat de prompt zichtbaar is wanneer een geheim nodig is. Vervang de plaatsaanduiding door de UUID die je werkelijk hebt waargenomen, en voeg geen shell-omhulsel toe alleen om de prompt te verbergen.
De Desktop Entry-specificatie definieert Exec als het programma en zijn argumenten. Het is geen shellscript en heeft er geen nodig.
Laat de agent het geheim bewaren
Geheimen horen bij de agent per gebruiker, de sleutelring of een interactieve prompt. Een wachtwoord in Exec is zichtbaar in de proceslijst, in het bureaubladbestand en op elke schermafbeelding van het eigenschappensdialoogvenster. Als het profiel een geheim nodig heeft, laat de ondersteunde prompt het verzamelen en de agent het voor die gebruiker onthouden.
--ask is interactief van ontwerp. Het is geen recept voor onbeheerde automatisering en het garandeert niet dat elke authenticatie-uitdaging of plug-in überhaupt te scripten is.
Grijp niet naar sudo
Toestemming om een verbinding te wijzigen of te activeren is een NetworkManager-recht dat via het beleid wordt verleend, geen Unix-privilege. De starter met sudo uitvoeren geeft het proces niet de sleutelring van een andere gebruiker en lost geen weigering door de gateway op. Controleer op een gedeelde machine welke lokale accounts welke profielen zien en wie elk geheim bezit; afzonderlijke pictogrammen zorgen niet op zichzelf voor isolatie.
Twee actieve profielen voor dezelfde gateway kunnen ook om routes strijden of een regel voor gelijktijdigheid overtreden. Dat is een beleidsvraag, geen fout in de starter.
Controleer de hele actie
Activeer de starter één keer en bevestig drie dingen: welke UUID omhoogkwam, welke identiteit de gateway zag en of er een geheimvraag verscheen waar je die verwachtte. Als de verbinding mislukt, bewaar dan de eerste foutmelding. Het wachtwoord aan de opdrachtregel toevoegen om de snelkoppeling zelfstandig te laten lijken verbergt die fout en maakt het probleem erger.
Schrijf de UUID en de accounttoewijzing in de teamnotities. De volgende persoon die een profiel wijzigt, moet weten welk pictogram ervan afhangt, en juist die notitie voorkomt dat een hernoeming een storing wordt.