Τα σενάρια Bash αποτελούν σημαντικό μέρος της δουλειάς ενός διαχειριστή συστήματος. Σας επιτρέπουν να αυτοματοποιείτε τόσο εγκόσμιες όσο και κρίσιμες εργασίες.
Ένα από τα καλύτερα πράγματα με τα σενάρια είναι ότι μπορούν να εκτελεστούν ανεξάρτητα χωρίς ανθρώπινη παρέμβαση, αλλά μερικές φορές μπορεί να είναι δύσκολο να αυτοματοποιηθούν εργασίες που απαιτούν κωδικούς πρόσβασης χρήστη. Ας δούμε πώς μπορείτε να αυτοματοποιήσετε με ασφάλεια τα σενάρια που απαιτούν κωδικούς πρόσβασης χωρίς να διακυβεύεται η ασφάλεια.
Δημιουργία απλού σεναρίου
Ας υποθέσουμε ότι θέλετε να δημιουργήσετε ένα απλό σενάριο που δημιουργεί αντίγραφα ασφαλείας του αρχικού φακέλου Linux σε μια απομακρυσμένη τοποθεσία, ώστε να μπορείτε να επαναφέρετε εύκολα τα δεδομένα σας σε περίπτωση απώλειας δεδομένων.
Ξεκινήστε δημιουργώντας ένα αρχείο σεναρίου Bash στον αρχικό σας φάκελο, χρησιμοποιώντας την εντολή αφής ή οποιαδήποτε άλλη μέθοδο και ονομάστε την backup_home.sh. Μη διστάσετε να χρησιμοποιήσετε οποιοδήποτε όνομα και κατάλογο της αρεσκείας σας.
Το σενάριο χρησιμοποιεί το rsync command, ένα ισχυρό εργαλείο αντιγραφής αρχείων, για τη δημιουργία αντιγράφων ασφαλείας όλων των αρχείων στον τοπικό σας κατάλογο σε έναν απομακρυσμένο διακομιστή.
Αντιγράψτε το περιεχόμενο του παρακάτω σεναρίου και επικολλήστε το στο αρχείο Bash. Θυμηθείτε να αντικαταστήσετε τον χρήστη john με το σωστό όνομα του τοπικού οικιακού χρήστη. Δώστε επίσης το σωστό όνομα χρήστη και διεύθυνση IP για τον απομακρυσμένο διακομιστή.
#!/bin/bash
#Αντιγραφή δεδομένων σε απομακρυσμένο διακομιστή
rsync -avl --mkpath /home/john user_name@μακρινός_server/home/Backup
Εάν δεν έχετε απομακρυσμένο διακομιστή για δοκιμή, μπορείτε απλά εγκαταστήστε το VirtualBox και ρυθμίστε ένα VM στο τοπικό σας μηχάνημα. Χρησιμοποιήστε τον επισκέπτη VM ως απομακρυσμένο διακομιστή σας.
Αποθηκεύστε το αρχείο. Για να εκτελέσετε το σενάριο πρέπει να του εκχωρήσετε το δικαίωμα εκτέλεσης χρησιμοποιώντας την εντολή sudo chmod 755. Όλοι οι χρήστες μπορούν να εκτελέσουν το σενάριο, αλλά μόνο οι χρήστες sudo μπορούν να τροποποιήσουν το αρχείο.
Τέλος, εκτελέστε το σενάριο Bash από το τερματικό χρησιμοποιώντας την εντολή:
./backup_home.sh
Κάθε φορά που εκτελείτε αυτό το σενάριο, θα σας ζητηθεί να εισαγάγετε τον κωδικό πρόσβασης του απομακρυσμένου διακομιστή. Αυτό δεν είναι ιδανικό εάν θέλετε να εκτελέσετε το σενάριο χωρίς ανθρώπινη παρέμβαση, όπως όταν χρησιμοποιείτε το Cron.
Αυτοματοποίηση σύνδεσης με κωδικό πρόσβασης
Εγκαθιστώ sshpass, ένας μη διαδραστικός πάροχος κωδικού πρόσβασης, στον τοπικό σας υπολογιστή ή στον υπολογιστή από τον οποίο θα εκτελέσετε το σενάριο.
Σε διανομές που βασίζονται στο Debian
Εάν βρίσκεστε σε διανομή που βασίζεται στο Debian, όπως το Ubuntu, το Pop!_OS και το Lubuntu:
sudo apt εκσυγχρονίζω && sudo apt εγκαθιστώ sshpass
Σε RHEL και Fedora
dnf εγκαθιστώ sshpass
Μετά την εγκατάσταση του sshpass τροποποιήστε το σενάριο ώστε να φαίνεται ως εξής.
#!/bin/bash
#Αντιγραφή δεδομένων σε απομακρυσμένο διακομιστή
sshpass -σελ "ο κωδικός σας" rsync -avl --mkpath /home/john user_name@remote_server/home/Backup
Εδώ δίνετε τον κωδικό πρόσβασης σε απλό κείμενο. Προφανώς, αυτός δεν είναι ο ιδανικός τρόπος, καθώς δεν είναι ασφαλής και δεν είναι καλή πρακτική. Εάν το σενάριο φτάσει ποτέ σε λάθος χέρια, είστε σε μεγάλο πρόβλημα.
Για να το κάνουμε πιο ασφαλές, θα χρησιμοποιήσουμε το GnuPG, ένα ασφαλές και ανοιχτού κώδικα εργαλείο κρυπτογράφησης.
Κρυπτογράφηση του κωδικού πρόσβασής σας
Το GnuPG είναι εγκατεστημένο από προεπιλογή στα περισσότερα συστήματα Linux, αλλά σε περίπτωση που δεν είναι εγκατεστημένο στο σύστημά σας, Δείτε πώς να εγκαταστήσετε το GnuPG.
Δημιουργήστε ένα κρυφό αρχείο με όνομα μυστικά χρησιμοποιώντας την εντολή αγγίζω .μυστικά. Δεδομένου ότι έχουμε κάνει το αρχείο κρυφό από προεπιλογή ως πρόσθετο μέτρο ασφαλείας, δείτε πώς μπορείτε προβολή κρυφών αρχείων στο Linux.
Στο αρχείο μυστικών, εισαγάγετε τον κωδικό πρόσβασης του απομακρυσμένου υπολογιστή σας και αποθηκεύστε τον.
Στη συνέχεια, κρυπτογραφήστε το αρχείο χρησιμοποιώντας το gpg εντολή.
sudogpg.μυστικά
Θα σας ζητηθεί να εισαγάγετε μια ασφαλή και ισχυρή φράση πρόσβασης για το άνοιγμα του κρυπτογραφημένου αρχείου.
Το GnuPG θα δημιουργήσει ένα νέο αρχείο με την επέκταση .gpg προσαρτάται στο παλιό όνομα αρχείου. Το νέο όνομα του αρχείου σας θα πρέπει τώρα να είναι μυστικά.gpg, υποθέτοντας ότι χρησιμοποιήσατε το μυστικά όνομα αρχείου.
Εάν προβάλετε το περιεχόμενο του secrets.gpg χρησιμοποιώντας το Γάτα εντολή, θα εμφανιστεί ένα ασυνήθιστο κείμενο που θα δείχνει ότι ο κωδικός πρόσβασής σας είναι κρυπτογραφημένος.
Για να προβάλετε τα περιεχόμενα του αρχείου σε απλό κείμενο, θα πρέπει να το αποκρυπτογραφήσετε χρησιμοποιώντας την ακόλουθη εντολή (θα σας ζητηθεί να εισαγάγετε τον κωδικό πρόσβασης που ορίσατε κατά την κρυπτογράφηση):
gpg-dqμυστικότητα.gpg
Χρήση κρυπτογραφημένου κωδικού πρόσβασης στο σενάριο σας
Για να χρησιμοποιήσετε τον κρυπτογραφημένο κωδικό πρόσβασης στο σενάριο, ενημερώστε το σενάριο ως εξής:
#!/bin/bash
#Αντιγραφή δεδομένων σε απομακρυσμένο διακομιστή
gpg -dq secrets.gpg | sshpass rsync -avl --mkpath /home/john user_name@μακρινός_server/home/Backup
Εκτελέστε ξανά τα σενάρια δημιουργίας αντιγράφων ασφαλείας και αυτή τη φορά δεν θα σας ζητηθεί κωδικός πρόσβασης.
Αυτοματοποίηση εργασιών με σενάρια Bash
Το GnuGP χρησιμοποιείται συχνά για την ασφάλεια ευαίσθητων αρχείων και δεδομένων στον υπολογιστή σας και είναι επίσης ένα εξαιρετικό εργαλείο για την ασφάλεια των κωδικών πρόσβασης σε αυτοματοποιημένα σενάρια Bash στο Linux.
Υπάρχουν πολλά που μπορείτε να κάνετε με τα σενάρια του Bash. Το Bash είναι ένα ισχυρό εργαλείο που μπορεί να σας βοηθήσει να αυτοματοποιήσετε πολλά πράγματα στο Linux και η εκμάθηση της σύνταξης σεναρίων Bash είναι μια αξιόλογη επένδυση.