תנו לכל חשבון VPN מפעיל NetworkManager משלו
שני חשבונות בשער אחד זקוקים לשני פרופילים בעלי שם, לא לשם משתמש שנכתב מחדש. כוונו את המפעיל ל-UUID ותנו לסוכן לאסוף את הסוד.
שני חשבונות VPN, שער אחד וסמל שולחן עבודה שמתחבר בתור מי שהשתמש בו לאחרונה. הסיבה הרגילה היא מפעיל שמשכתב את שם המשתמש של פרופיל משותף ממש לפני ההתחברות, או כזה שמחפש שם תצוגה ששני הפרופילים חולקים במקרה. NetworkManager כבר מבדיל בין פרופילים לפי UUID, כך שהסמל יכול לנקוב בשם של אחד מהם בדיוק ולהניח לזהות. מה שהוא לא אמור לשאת הוא הסיסמה.
מפעיל הוא מצביע, לא מאגר של אישורי גישה.
מצאו את ה-UUID ואמתו את הזהות
הציגו את החיבורים השמורים וקראו את ה-UUID, מזהה החיבור ושם המשתמש שכל פרופיל שומר. אשרו איזה פרופיל שייך לאיזה חשבון לפני שיוצרים משהו, כי שם תצוגה הוא תווית ולא מפתח. אם שני החשבונות זקוקים לשערים שונים או לפרופילים שונים, זו משימת תצורה נפרדת.
השתמשו ב-UUID במפעיל. חיפוש לפי שם תצוגה עובד עד שמישהו משנה שם של פרופיל, ואז הסמל מתחבר בתור החשבון הלא נכון או בתור כלום.
כתבו את רשומת שולחן העבודה
רשומת שולחן עבודה זקוקה לסוג, לשם ולשורה ניתנת להרצה. הפקודה צריכה להעלות את ה-UUID הזה ולתת ל-NetworkManager לבקש את הסוד, ולשם כך נועד nmcli --ask connection up uuid .... השאירו Terminal=true כדי שההנחיה תוצג כשנדרש סוד. החליפו את מציין המקום ב-UUID שבאמת צפיתם בו, ואל תוסיפו עטיפת shell רק כדי להסתיר את ההנחיה.
מפרט Desktop Entry מגדיר את Exec בתור התוכנית והארגומנטים שלה. זה אינו סקריפט shell, והוא לא זקוק לאחד.
תנו לסוכן להחזיק את הסוד
סודות שייכים לסוכן לפי משתמש, לצרור המפתחות או להנחיה אינטראקטיבית. סיסמה בתוך Exec נראית ברשימת התהליכים, בקובץ שולחן העבודה ובכל צילום מסך של תיבת הדו-שיח של המאפיינים. אם הפרופיל זקוק לסוד, תנו להנחיה הנתמכת לאסוף אותו ולסוכן לזכור אותו עבור אותו משתמש.
--ask הוא אינטראקטיבי בתכנון. זו אינה מתכונת לאוטומציה ללא השגחה, והוא אינו מבטיח שכל אתגר אימות או תוסף יכול להיות מתוסרט בכלל.
אל תתפסו ב-sudo
הרשאה לשנות או להפעיל חיבור היא הרשאה של NetworkManager הניתנת דרך המדיניות שלו, ולא פריבילגיית Unix. הפעלת המפעיל עם sudo לא נותנת לתהליך את צרור המפתחות של משתמש אחר, והיא לא מתקנת דחייה של השער. במחשב משותף, עברו על אילו חשבונות מקומיים רואים אילו פרופילים ומי מחזיק בכל סוד; סמלים נפרדים לא יוצרים בידוד בעצמם.
שני פרופילים פעילים לאותו שער יכולים גם להתחרות על נתיבים או להפר כלל של מקביליות. זו שאלה של מדיניות ולא תקלה במפעיל.
אמתו את כל הפעולה
הפעילו את המפעיל פעם אחת ואשרו שלושה דברים: ה-UUID שעלה, הזהות שהשער ראה, והאם הופיעה הנחיית סוד במקום שבו ציפיתם. אם החיבור נכשל, שמרו את הודעת השגיאה הראשונה. הוספת הסיסמה לשורת הפקודה כדי שהקיצור ייראה עצמאי מסתירה את השגיאה הזו ויוצרת בעיה חמורה יותר.
כתבו את ה-UUID ואת מיפוי החשבונות בהערות של הצוות. האדם הבא שישנה פרופיל צריך לדעת איזה סמל תלוי בו, וההערה הזו היא מה שמונע משינוי שם להפוך לתקלה.