sudo, &, -b ή --daemon: πώς να τρέξετε έναν πελάτη OpenVPN στο παρασκήνιο
Ένα ampersand ελευθερώνει το τερματικό, όχι τη σύνδεση. Συγκρίνετε το sudo -b, το --daemon και μια παρουσία υπηρεσίας με κριτήριο ποιος κατέχει τη διεργασία και ποιος απαντά στις προτροπές.
Στη φράση «τρέξ’ το στο παρασκήνιο» κρύβονται δύο ερωτήματα. Το πρώτο είναι αν αυτός ο χρήστης μπορεί καθόλου να ξεκινήσει μια προνομιακή διεργασία· το δεύτερο είναι αν η συνεδρία μπορεί να συνεχιστεί χωρίς να πληκτρολογεί κάποιος σε ένα τερματικό. Το ampersand του κελύφους δεν απαντά σε κανένα από τα δύο, και ένα σενάριο που αποθηκεύει τον κωδικό του sudo σε μεταβλητή απαντά άσχημα στο πρώτο και αφήνει το δεύτερο ανέγγιχτο. Ξεχωρίστε τα και οι επιλογές γίνονται εύκολες στη σύγκριση.
Συγκρίνετε τους τρεις υποψηφίους με κριτήριο την κυριότητα, όχι την ευκολία.
Τρεις τρόποι να αφήσετε το τερματικό, τρεις διαφορετικοί ιδιοκτήτες
Η προσθήκη ampersand σε μια εντολή ζητά από το κέλυφος να την εκτελέσει ως εργασία παρασκηνίου, και η εργασία ανήκει ακόμη σε αυτό το κέλυφος. Το sudo μπορεί να ρωτήσει πριν καν ξεκινήσει το πρόγραμμα, και OpenVPN μπορεί να ρωτήσει μετά για μια φράση κλειδιού ή μια σύνδεση. Η εκτέλεση στο παρασκήνιο μιας εντολής που περιμένει είσοδο παράγει μια διεργασία που περιμένει ένα τερματικό που κανείς δεν παρακολουθεί. Το τερματικό ελευθερώνεται· η αλληλεπίδραση όχι.
Είναι η φθηνότερη επιλογή και εκείνη που αποτυγχάνει με τον πιο μπερδεμένο τρόπο, επειδή η προτροπή εμφανίζεται σε σημείο που ο χειριστής έχει ήδη εγκαταλείψει.
Το sudo -b δεν είναι χειριστής διαπιστευτηρίων
sudo -b εκτελεί την εντολή στο παρασκήνιο από τη σκοπιά του ίδιου του sudo, κάτι που ακούγεται σαν το λειτούργημα που λείπει και δεν είναι. Σύμφωνα με το εγχειρίδιο του sudo, οι διαδραστικές εντολές συνήθως συμπεριφέρονται άσχημα σε αυτή τη λειτουργία, και ο έλεγχος εργασιών του κελύφους δεν μπορεί να διαχειριστεί τις διεργασίες που δημιουργεί. Μετακινεί τη διεργασία χωρίς να της δίνει τρόπο να απαντά σε ερωτήσεις. Τίποτα σε αυτό δεν παρέχει φράση κλειδιού ιδιωτικού κλειδιού ή σύνδεση σε πύλη.
Αν η σύνδεση χρειάζεται αλληλεπίδραση, η λύση είναι μια υποστηριζόμενη μη διαδραστική ρύθμιση ελέγχου ταυτότητας, όχι ένας άλλος τρόπος εκκίνησης της ίδιας προτροπής.
Το --daemon αλλάζει το πρόγραμμα, όχι τη σύνδεση
--daemon ζητά από το ίδιο το OpenVPN να αποσπαστεί μετά την αρχικοποίηση. Το εγχειρίδιο της έκδοσης 2.6 σημειώνει ότι η ανακατεύθυνση του syslog συμβαίνει κατά την ανάλυση της επιλογής, μολονότι η απόσπαση γίνεται αργότερα, οπότε τα μηνύματα μπορεί να σταματήσουν να εμφανίζονται στο τερματικό νωρίτερα από το αναμενόμενο. Η σιωπή μετά από αυτό το σημείο δεν αποδεικνύει τίποτα για τη σήραγγα. Προσθέστε μια ρητή --log ή --log-append ώστε η έξοδος να καταλήγει κάπου που μπορείτε να διαβάσετε.
Η λειτουργία δαίμονα αφαιρεί επίσης μόνιμα την κονσόλα. Ένα προστατευμένο ιδιωτικό κλειδί απαιτεί askpass σε αυτή τη λειτουργία, και τα διαπιστευτήρια που εισάγονται από την κονσόλα μαζί με επιλογές προσωρινής μνήμης μπορούν να αφήσουν μια μεταγενέστερη επαναπιστοποίηση χωρίς σημείο για ερώτηση. Ελέγξτε το μοντέλο ελέγχου ταυτότητας ως προς την εγκατεστημένη έκδοση πριν υποθέσετε ότι μια εκκίνηση στο παρασκήνιο θα επιβιώσει στην πρώτη ανανέωση κλειδιού.
Τι αγοράζει η επικύρωση του sudo και τι όχι
sudo -v επικυρώνει ή ανανεώνει το προσωρινά αποθηκευμένο τοπικό διαπιστευτήριο, ελέγχοντας ταυτότητα αν το απαιτεί η πολιτική. Δεν ξεκινά το OpenVPN, δεν ελέγχει ταυτότητα στην πύλη και δεν εγγυάται ότι μια μεταγενέστερη εντολή στο σενάριο επιτρέπεται. sudo -n σημαίνει το αντίθετο: μην ρωτάς, αποτύγχανε. Αυτό κάνει μια τοπική αποτυχία εξουσιοδότησης ρητή, κάτι χρήσιμο, και δεν λέει τίποτα για το τι θα ζητήσει αργότερα το OpenVPN.
Καμία από τις δύο επιλογές δεν είναι λόγος να δοθούν γενικές εντολές χωρίς κωδικό ή να περαστεί κωδικός διαχειριστή σε ένα σενάριο.
Προτιμήστε έναν ιδιοκτήτη που μπορεί να παρατηρηθεί
Για μια σήραγγα που ανήκει σε μηχάνημα, χρησιμοποιήστε την παρουσία υπηρεσίας που υποστηρίζει η διανομή. Αυτός ο ιδιοκτήτης παρέχει εκκίνηση, διακοπή, κατάσταση και αρχεία καταγραφής, και επιβιώνει όταν τελειώσει η συνεδρία σας. Το να συνθέσετε εκτέλεση παρασκηνίου κελύφους, δαιμονοποίηση και βρόχο επανεκκίνησης το ένα γύρω από το άλλο δημιουργεί τρεις ιδιοκτήτες για μία σήραγγα και καμία σαφή απάντηση για το ποιος τρέχει.
Ό,τι κι αν επιλέξετε, επαληθεύστε τον πόρο για τον οποίο υπάρχει η σήραγγα. Ένα επιτυχές αίτημα εκκίνησης είναι γεγονός διεργασίας, όχι απόδειξη λειτουργικής σύνδεσης.