Дайце кожнаму акаўнту VPN уласны запускальнік NetworkManager
Два акаўнты на адным шлюзе патрабуюць двух названых профіляў, а не перапісанага імені карыстальніка. Накіруйце запускальнік на UUID і дайце агенту сабраць сакрэт.
Два акаўнты VPN, адзін шлюз і значок на працоўным стале, які падключаецца як той, хто карыстаўся ім апошнім. Звычайная прычына — запускальнік, які перапісвае імя карыстальніка агульнага профілю непасрэдна перад падключэннем, або той, што шукае адлюстраванае імя, якое маюць абодва профілі. NetworkManager ужо адрознівае профілі па UUID, таму значок можа назваць роўна адзін з іх і не чапаць ідэнтычнасць. Чаго ён не павінен несці — гэта пароль.
Запускальнік — гэта паказальнік, а не сховішча ўліковых даных.
Знайдзіце UUID і пацвердзіце ідэнтычнасць
Пералічыце захаваныя злучэнні і прачытайце UUID, ідэнтыфікатар злучэння і імя карыстальніка, якое захоўвае кожны профіль. Пацвердзіце, які профіль належыць якому акаўнту, перш чым нешта ствараць, бо адлюстраванае імя — гэта этыкетка, а не ключ. Калі двум акаўнтам патрэбныя розныя шлюзы або розныя профілі, гэта асобная задача наладкі.
Выкарыстоўвайце UUID у запускальніку. Пошук па адлюстраваным імені працуе, пакуль хтосьці не перайменуе профіль, і тады значок падключыцца як няправільны акаўнт або ні да чаго.
Напішыце запіс працоўнага стала
Запісу працоўнага стала патрэбныя тып, імя і радок выканання. Каманда павінна падняць гэты UUID і дазволіць NetworkManager запытаць сакрэт — менавіта для гэтага служаць nmcli --ask connection up uuid .... Пакіньце Terminal=true, каб запыт быў бачны, калі патрэбны сакрэт. Замяніце запаўняльнік на UUID, які вы сапраўды назіралі, і не дадавайце абгортку абалонкі, каб проста схаваць запыт.
Спецыфікацыя Desktop Entry вызначае Exec як праграму і яе аргументы. Гэта не скрыпт абалонкі, і ён не патрабуе яго.
Дайце агенту трымаць сакрэт
Сакрэты належаць агенту для кожнага карыстальніка, звязцы ключоў або інтэрактыўнаму запыту. Пароль у Exec бачны ў спісе працэсаў, у файле працоўнага стала і на любым здымку экрана дыялога ўласцівасцей. Калі профілю патрэбны сакрэт, дайце падтрымліванаму запыту сабраць яго і агенту запомніць яго для гэтага карыстальніка.
--ask інтэрактыўны па задуме. Гэта не рэцэпт для аўтаматызацыі без нагляду, і ён не гарантуе, што кожны выклік аўтэнтыфікацыі ці плагін наогул можна будзе перавесці ў скрыпт.
Не хапайцеся за sudo
Дазвол змяніць або актываваць злучэнне — гэта дазвол NetworkManager, выдадзены праз яго палітыку, а не прывілей Unix. Запуск запускальніка з sudo не дае працэсу звязку ключоў іншага карыстальніка і не выпраўляе адмову шлюза. На агульнай машыне прагледзьце, якія лакальныя акаўнты бачаць якія профілі і хто валодае кожным сакрэтам; асобныя значкі самі па сабе не ствараюць ізаляцыі.
Два актыўныя профілі для аднаго шлюза таксама могуць канкураваць за маршруты або парушаць правіла адначасовасці. Гэта пытанне палітыкі, а не памылка запускальніка.
Праверце дзеянне цалкам
Актывуйце запускальнік адзін раз і пацвердзіце тры рэчы: які UUID падняўся, якую ідэнтычнасць убачыў шлюз і ці з'явіўся запыт сакрэту там, дзе вы чакалі. Калі злучэнне не ўдалося, захавайце першае паведамленне пра памылку. Дадаванне пароля ў радок каманд, каб цэтлік выглядаў самадастатковым, хавае гэтую памылку і стварае горшую праблему.
Запішыце UUID і адпаведнасць акаўнтаў у нататкі каманды. Наступнаму чалавеку, які зменіць профіль, трэба ведаць, які значок залежыць ад яго, і менавіта гэтая нататка не дае перайменаванню стаць прастоем.