به هر حساب 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 و تناظر حسابها را در یادداشتهای تیم بنویسید. نفر بعدی که پروفایلی را تغییر میدهد باید بداند کدام نماد به آن وابسته است، و همان یادداشت است که نمیگذارد تغییر نام به یک قطعی تبدیل شود.