Два VPN акаунта, един шлюз и икона на работния плот, която се свързва като този, който я е използвал последен. Обичайната причина е стартер, който пренаписва потребителското име на споделен профил точно преди свързване, или такъв, който търси показвано име, което двата профила случайно споделят. NetworkManager вече различава профилите по UUID, така че иконата може да назове точно един от тях и да не пипа самоличността. Това, което не бива да носи, е паролата.

Стартерът е показалец, а не хранилище на идентификационни данни.

Намерете UUID и потвърдете самоличността

Избройте запазените връзки и прочетете UUID, идентификатора на връзката и потребителското име, което всеки профил пази. Потвърдете кой профил на кой акаунт принадлежи, преди да създавате каквото и да е, защото показваното име е етикет, а не ключ. Ако двата акаунта се нуждаят от различни шлюзове или различни профили, това е отделна задача по конфигурация.

Използвайте UUID в стартера. Търсенето по показвано име работи, докато някой не преименува профил, и тогава иконата се свързва с грешния акаунт или с нищо.

Напишете записа за работния плот

Записът за работния плот се нуждае от тип, име и ред за изпълнение. Командата трябва да вдигне този UUID и да остави NetworkManager да поиска тайната — точно за това служи nmcli --ask connection up uuid .... Запазете Terminal=true, за да се вижда подканата, когато е нужна тайна. Заменете заместителя с UUID, който действително сте наблюдавали, и не добавяйте обвивка на shell само за да скриете подканата.

Спецификацията Desktop Entry определя Exec като програмата и нейните аргументи. Това не е shell скрипт и не се нуждае от такъв.

Оставете агентът да пази тайната

Тайните принадлежат на агента за всеки потребител, на ключодържателя или на интерактивна подкана. Парола в Exec се вижда в списъка с процеси, в desktop файла и на всеки екранен снимок на диалога за свойства. Ако профилът се нуждае от тайна, оставете поддържаната подкана да я събере и агентът да я запомни за този потребител.

--ask е интерактивен по замисъл. Това не е рецепта за автоматизация без надзор и не гарантира, че всяко предизвикателство за удостоверяване или приставка може изобщо да бъде скриптирано.

Не посягайте към sudo

Разрешението да промените или активирате връзка е разрешение на NetworkManager, дадено чрез неговата политика, а не привилегия на Unix. Стартирането на стартера с sudo не дава на процеса ключодържателя на друг потребител и не поправя отказ от шлюза. На споделена машина прегледайте кои локални акаунти виждат кои профили и кой притежава всяка тайна; отделните икони сами по себе си не създават изолация.

Два активни профила за един и същ шлюз също могат да се конкурират за маршрути или да нарушат правило за едновременност. Това е въпрос на политика, а не дефект в стартера.

Проверете цялото действие

Активирайте стартера веднъж и потвърдете три неща: кой UUID се вдигна, каква самоличност е видял шлюзът и дали се появи подкана за тайна там, където очаквахте. Ако връзката се провали, запазете първото съобщение за грешка. Добавянето на паролата към командния ред, за да изглежда прекият път самостоятелен, скрива тази грешка и създава по-лош проблем.

Запишете UUID и съответствието на акаунтите в бележките на екипа. Следващият човек, който промени профил, трябва да знае коя икона зависи от него, и именно тази бележка не позволява преименуването да стане прекъсване.

Подобни статии