امنح كل حساب VPN مشغّل NetworkManager الخاص به
حسابان على بوابة واحدة يحتاجان ملفين شخصيين مسمّيين، لا اسم مستخدم مُعاد كتابته. وجّه المشغّل إلى UUID ودع الوكيل يجمع السر.
حسابان VPN وبوابة واحدة وأيقونة سطح مكتب تتصل باسم من استخدمها أخيرًا. السبب المعتاد هو مشغّل يعيد كتابة اسم المستخدم في ملف شخصي مشترك قبل الاتصال مباشرة، أو مشغّل يبحث عن اسم عرض يشترك فيه الملفان. يميّز NetworkManager بين الملفات الشخصية عبر UUID بالفعل، لذا يمكن للأيقونة أن تسمّي واحدًا منها بالتحديد وتترك الهوية كما هي. وما لا ينبغي أن تحمله هو كلمة المرور.
المشغّل مؤشر وليس مخزنًا لبيانات الاعتماد.
اعثر على UUID وتأكّد من الهوية
اسرد الاتصالات المحفوظة واقرأ UUID ومعرّف الاتصال واسم المستخدم الذي يخزّنه كل ملف شخصي. تأكّد من الملف الشخصي الذي يخص كل حساب قبل إنشاء أي شيء، لأن اسم العرض تسمية وليس مفتاحًا. وإذا كان الحسابان يحتاجان بوابات مختلفة أو ملفات شخصية مختلفة، فذلك مهمة إعداد منفصلة.
استخدم UUID في المشغّل. البحث باسم العرض يعمل إلى أن يعيد أحدهم تسمية ملف شخصي، وعندها تتصل الأيقونة بالحساب الخطأ أو لا تتصل بشيء إطلاقًا.
اكتب مدخل سطح المكتب
يحتاج مدخل سطح المكتب إلى نوع واسم وسطر تنفيذي. يجب أن يُحضر الأمر ذلك UUID ويدع NetworkManager يطلب السر، وهذا ما يفعله nmcli --ask connection up uuid .... أبقِ Terminal=true كي يظهر الطلب عندما يلزم السر. استبدل العنصر النائب بـ UUID الذي لاحظته فعلًا، ولا تُضف غلافًا للصدفة فقط لإخفاء الطلب.
تعرّف مواصفة مدخل سطح المكتب Exec بأنه البرنامج ومعاملاته. إنه ليس نصًا برمجيًا للصدفة، ولا يحتاج إلى واحد.
دع الوكيل يحتفظ بالسر
تعود الأسرار إلى الوكيل الخاص بكل مستخدم أو إلى حلقة المفاتيح أو إلى طلب تفاعلي. كلمة المرور في Exec ظاهرة في قائمة العمليات وفي ملف سطح المكتب وفي أي لقطة شاشة لمربع حوار الخصائص. إذا احتاج الملف الشخصي سرًا، فدع الطلب المدعوم يجمعه ودع الوكيل يتذكّره لذلك المستخدم.
--ask تفاعلي بحسب التصميم. إنه ليس وصفة لأتمتة بلا إشراف، ولا يضمن إمكانية كتابة كل تحدٍّ للمصادقة أو ملحق كنص برمجي على الإطلاق.
لا تلجأ إلى sudo
التصريح بتعديل اتصال أو تنشيطه هو إذن من NetworkManager يُمنح عبر سياسته، وليس امتيازًا في Unix. تشغيل المشغّل عبر sudo لا يمنح العملية حلقة مفاتيح مستخدم آخر، ولا يصلح رفضًا من البوابة. على جهاز مشترك، راجع أي الحسابات المحلية ترى أي ملفات شخصية ومن يملك كل سر، فالأيقونات المنفصلة لا تنشئ عزلًا بحد ذاتها.
قد يتنافس ملفان شخصيان نشطان لنفس البوابة على المسارات أو يخالفا قاعدة تزامن. تلك مسألة سياسة وليست خللًا في المشغّل.
تحقّق من الإجراء بأكمله
فعّل المشغّل مرة واحدة وتأكّد من ثلاثة أمور: UUID الذي ظهر، والهوية التي رآها البوابة، وهل ظهر طلب سر حيث توقّعت. إذا فشل الاتصال فأبقِ أول رسالة خطأ. وإضافة كلمة المرور إلى سطر الأوامر لتجعل الاختصار يبدو مكتفيًا بذاته تخفي ذلك الخطأ وتصنع مشكلة أسوأ.
اكتب UUID ومقابل الحسابات في ملاحظات الفريق. من سيغيّر ملفًا شخصيًا بعدك يحتاج أن يعرف أي أيقونة تعتمد عليه، وتلك الملاحظة هي ما يمنع إعادة التسمية من أن تصبح انقطاعًا.