Δώστε σε κάθε λογαριασμό 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 και την αντιστοίχιση λογαριασμών στις σημειώσεις της ομάδας. Το επόμενο άτομο που θα αλλάξει ένα προφίλ πρέπει να ξέρει ποιο εικονίδιο εξαρτάται από αυτό, και αυτή η σημείωση είναι που εμποδίζει μια μετονομασία να γίνει διακοπή.