Το rm -rf
είναι μία εντολή Bash παρόμοια με την DROPεντολή SQL. Αν δεν έχετε αντίγραφο (αντίγραφο ασφαλείας) του πίνακα της βάσης δεδομένων σας, θα χάσετε όλα τα δεδομένα.
rm -rf είναι μια εντολή που όταν καλείται χωρίς δικαιώματα root θα αφαιρέσει όλους τους φακέλους στους οποίους έχει πρόσβαση ο χρήστης. Όταν γίνεται επίκληση με δικαιώματα root, θα εξαφανίσει τον σκληρό σας δίσκο.
Δεν είχα την τύχη να κάνω το λάθος να εκτελέσω αυτόν τον κώδικα σε διακομιστή παραγωγής στο παρελθόν, αλλά δεν ήταν όλοι τόσο τυχεροί. Ακολουθούν μερικές ενδιαφέρουσες rm -rf ιστορίες που μπορεί να βρείτε σχετικές.
1. Thomas & το Πρόγραμμα απορριμμάτων που βασίζεται στο CLI
Thomas ήταν στο εργαστήριό του στο College Unix και εργαζόταν σε ένα ενδιάμεσο έργο για το οποίο ήταν συνδεδεμένος με έναν διακομιστή σε ένα παρακείμενο εργαστήριο χρησιμοποιώντας τοPuTTY + RealVNC.
Το έργο του ήταν απλό: Δημιουργήστε ένα πρόγραμμα CLI “trash” που παίρνει μια λίστα με διαδρομές αρχείων και τις μετακινεί σε ένα~/.trash
κατάλογος. Στη συνέχεια, μπορείτε να “αδειάστε τον κάδο απορριμμάτων” που εκτελεί το rm στον κατάλογο. Έκανε το πρώτο μέρος και ολοκλήρωνε την άδεια εντολή.
Κάπως όρισε τη λάθος μεταβλητή που άφησε τη διαδρομή αφαίρεσης ως /
και είχε πρόσβαση sudo. Τίποτα δεν συνέβη όταν έτρεξε τον κωδικό στην αρχή, αλλά λίγο μετά ο κώδικας έγινε δυσλειτουργικός και άρχισε να εμφανίζεται στατικός. Το Ctrl + C δεν μπορούσε να βοηθήσει. Στη συνέχεια, η οθόνη έμεινε κενή και αποσυνδέθηκε.
Ο κώδικάς του έτρεξε ένα sudo rm-rf /
και αυτό διέγραψε όλα τα δεδομένα στον διακομιστή. Ευτυχώς για τον Thomas, εργαζόταν στον δοκιμαστικό διακομιστή του τμήματος και μπόρεσε να ανακτήσει τα δεδομένα από δίσκους αντιγράφων ασφαλείας. Δεν έχασε την αποδοχή του.
2. Ένα καθαρό σκούπισμα κατά τη διάρκεια μιας συνεδρίας δημιουργίας αντιγράφων ασφαλείας
ΟAlex ήταν διαχειριστής δικτύου σε μια εταιρεία που δημιουργούσε αντίγραφα ασφαλείας των μηχανημάτων της μέσω σεναρίων. Σε μια μοιραία Παρασκευή, αναβάθμισε το σενάριο με το κείμενο, rm -rf ${DIRECTERY}/
αντί για
rm -rf ${DIRECTORY}/ – ενημέρωση της εντολής σε μόλις
rm-rfεπειδή το ${DIRECTERY} έγινε κενή συμβολοσειρά.
Η συνεδρία δημιουργίας αντιγράφων ασφαλείας ξεκίνησε αργότερα το ίδιο βράδυ και πριν ο Άλεξ το καταλάβει, όλα τα μηχανήματα στο δίκτυο σκουπίστηκαν! Για καλή του τύχη, η εταιρεία δημιουργεί αντίγραφα ασφαλείας των αρχείων κάθε ώρα, οπότε δεν έγινε μεγάλη ζημιά.Παρόλα αυτά, ήταν ένα πολυάσχολο Σαββατοκύριακο. Πολύ ειρωνικό ότι μια εργασία δημιουργίας αντιγράφων ασφαλείας θα καθαρίσει τα συστήματα, σωστά;
3. The Automated Recursive Cleaner
Μια φορά ο Eric δούλευε σε έναν διακομιστή αρχείων και ήθελε να καθαρίζει αυτόματα ορισμένα αρχεία κάθε εβδομάδα περίπου. Σχεδίασε τη γραμμή του και τη δοκίμασε με στόχο να αφαιρέσει μόνο σχετικά παλαιότερα αρχεία. Η δουλειά του ήταν μέσα σε έναν ενιαίο κατάλογο, οπότε δεν πίστευε ότι κάτι θα μπορούσε να πάει στραβά. Λοιπόν, αργότερα ανακάλυψε ότι μάντεψε λάθος.
Έτρεξε την ακόλουθη εντολή και λειτούργησε. Στη συνέχεια, πρόσθεσε με μη αυτόματο τρόπο τη γραμμή στο crontab και αυτό ήταν όταν αντικατέστησε κατά λάθος το .
με ένα / .
εύρημα . -type f -name-ctime -60 -exec rm -rf {} \;
Γρήγορη προώθηση για μια εβδομάδα αργότερα και ένας σημαντικός αριθμός αρχείων εξαφανίστηκε. Το χειρότερο είναι ότι διαγράφηκαν σε κάτι που φαινόταν σαν τυχαίο μοτίβο, έτσι πίστευε ότι η εταιρεία είχε χακαριστεί μέχρι που έκανε έλεγχο κώδικα και συνειδητοποίησε ότι ήταν ο χάκερ.
Ευτυχώς, κρατούσε εξωτερικά αντίγραφα ασφαλείας κάθε μέρα και έτσι κατάφερε να διορθώσει το λάθος του. Από εκείνη την ημέρα μπορείτε να στοιχηματίσετε ότι είναι πολύ προσεκτικός με τις εντολές που εκτελεί με δικαιώματα διαχειριστή.
Τα 2 κύρια σημεία λήψης που υπάρχουν στις παραπάνω ιστορίες είναι 1, ελέγχετε πάντα τον κωδικό σας και το πιθανό αποτέλεσμα που προκύπτει και 2, διατηρείτε πάντα τα αντίγραφα ασφαλείας σας όσο το δυνατόν πιο ενημερωμένα γιατί ποτέ δεν ξέρετε πότε θα σου φανούν χρήσιμα.
Ξέρετε καμιά τρελή rm -rf ιστορίες από εμπειρία ή αλλού; Μοιραστείτε τα μαζί μας στην ενότητα σχολίων.