Όταν ανοίγεις ένα νέο σύστημα, το πρώτο πράγμα που πρέπει να ξέρεις είναι πού βρίσκεσαι και πώς κινείσαι. Με μερικές βασικές εντολές μπορείς να «δειπνήσεις» ολόκληρο το Linux: να πλοηγηθείς, να βρεις ό,τι χρειάζεσαι, να διαβάσεις τα σωστά αρχεία, να αναζητήσεις μοτίβα, να καταλάβεις γιατί κάτι είναι κλειδωμένο και, τέλος, να αποκωδικοποιήσεις δεδομένα που φαίνονται ακατάληπτα. Ας το κάνουμε απλό και γειωμένο, σαν κουβέντα μεταξύ μας.
Προσανατολισμός: πού είσαι και τι υπάρχει γύρω σου Ξεκίνα με το pwd (print working directory) για να δεις πού στέκεσαι και το ls για να δεις τι έχει ο φάκελος. Θέλεις να κινηθείς; cd / για να πας στο root (η κορυφή του συστήματος). Από εκεί, οι φάκελοι-«μαγνήτες» είναι ο /etc (ρυθμίσεις), ο /var/log (logs, το «κλειστό κύκλωμα» ασφαλείας), και ο /var/www (τα ίδια τα αρχεία ενός web site). Θυμήσου: οι επιτιθέμενοι «σκανάρουν» αυτούς τους φακέλους, οι αμυνόμενοι τους παρακολουθούν σαν γεράκια.
Διάβασμα αρχείων χωρίς να πνιγείς Για μικρά αρχεία, το cat είναι βασιλιάς. Το /etc/passwd (λίστα χρηστών) είναι κλασικό παράδειγμα. Για μεγάλα αρχεία; Προτίμησε less (π.χ. less /var/log/syslog) που ανοίγει σελίδα-σελίδα. Και μην ξεχνάς: πάτησε Q για έξοδο, αλλιώς θα αναρωτιέσαι γιατί «κόλλησε». Θες μόνο μια γρήγορη ματιά; head για τις πρώτες γραμμές, tail για τις τελευταίες (π.χ. tail /var/log/auth.log για τις πιο πρόσφατες απόπειρες σύνδεσης). Πριν ανοίξεις κάτι άγνωστο, τσέκαρε με file τι τύπος αρχείου είναι. Έτσι δεν θα «ξεράσει» ο τερματικός σου αλαμπουρνέζικα όταν κάνεις cat σε δυαδικό.
Κρυφά αρχεία: οι τελείες έχουν σημασία Ο home φάκελός σου φαίνεται «άδειος»; Με το κλασικό ls ναι, γιατί τα «dotfiles» κρύβονται. Δώσε ls -a και θα δεις τους πραγματικούς θησαυρούς: τον φάκελο .ssh (κλειδιά σύνδεσης σε άλλες μηχανές), το .bash_history (κάθε εντολή που έτρεξες, ένα ημερολόγιο χρήστη). Είναι «κρυφά» μόνο από ευγένεια. Με ένα flag γίνονται ορατά. Χρήσιμο για έλεγχο, κρίσιμο για forensics.
Μην ψάχνεις με το χέρι: άσε τη μηχανή να βρει Η εντολή find είναι ο προσωπικός σου «ιχνηλάτης». Παράδειγμα: find / -name “*.log” για να βρεις όλα τα log files σε όλο το σύστημα. Θες κάτι πιο στοχευμένο; find / -user root -name “*.conf” για αρχεία ρυθμίσεων που ανήκουν στον root. Ο αστερίσκος είναι το «οτιδήποτε» σου. Αυτή είναι η ουσία του enumeration: χτίζεις απλά φίλτρα μέχρι το σύστημα να σου «ξεράσει» τα μυστικά του.
Ψάξε μέσα στα αρχεία: από τη θάλασσα στη βελόνα Το grep είναι το μαχαίρι σου. Θες μόνο τη γραμμή για τον root από το /etc/passwd; grep root /etc/passwd και τέλος. Θες να εντοπίσεις αποτυχημένες συνδέσεις; grep “Failed password” /var/log/auth.log. Και τώρα έρχεται η μαγεία των pipes: πάρε το αποτέλεσμα, στείλ’ το σε wc -l για καταμέτρηση γραμμών (πόσες αποτυχίες), ή σε sort | uniq -c για να ομαδοποιήσεις και να μετρήσεις ανά διεύθυνση IP. Από χαώδη logs σε καθαρές απαντήσεις, χωρίς να διαβάσεις μία-μία τις γραμμές.
Δικαιώματα: ο «τοίχος» του Linux Με ls -l βλέπεις τα permissions: τριάδες rwx για Ιδιοκτήτη/Ομάδα/Υπόλοιποι. Παράδειγμα που τα εξηγεί όλα: /etc/passwd είναι αναγνώσιμο από όλους (λίστα χρηστών), ενώ το /etc/shadow (τα hashed passwords) όχι. Δοκίμασε cat /etc/shadow ως απλός χρήστης και θα πάρεις Permission denied. Αυτό δεν είναι αποτυχία· είναι πληροφορία. Σου δείχνει ακριβώς πού είναι ο τοίχος.
Πώς περνάς τον τοίχο (νόμιμα) Δύο εργαλεία: sudo και chmod. Με sudo τρέχεις ΜΙΑ εντολή σαν root αν επιτρέπεται (π.χ. sudo cat /etc/shadow). Αυτός είναι ο λόγος που το sudo είναι «κλειδί παντού». Με chmod αλλάζεις δικαιώματα (π.χ. κάνεις ένα script εκτελέσιμο). Δεν χρειάζεται να θυμάσαι όλους τους αριθμούς σήμερα (ναι, 755/644 θα τα δεις συνέχεια). Κράτα το νόημα: τα δικαιώματα είναι ο τοίχος, το sudo δανείζεται το master key, το chmod μετακινεί τον τοίχο.
Από «κώδικα» σε καθαρό κείμενο Πολύ συχνά θα πέσεις πάνω σε δεδομένα που είναι encoded, όχι πραγματικά encrypted. Το πιο κοινό είναι το base64. Φαίνεται σαν τυχαία σαλάτα χαρακτήρων αλλά γυρνάει πίσω με μια κίνηση: echo “…” | base64 -d. Για να «ψαρέψεις» κείμενο μέσα από εικόνες ή εκτελέσιμα, υπάρχει το strings: βγάζει κάθε αναγνώσιμο κομμάτι κειμένου από δυαδικά αρχεία. Κάποιοι κρύβουν κωδικούς σε .jpg πιστεύοντας ότι δεν θα το δει κανείς. Ε, το strings το βλέπει. Και όταν τίποτα άλλο δεν σου μιλάει, έρχεται το xxd: σου δείχνει το ακατέργαστο περιεχόμενο byte-by-byte (hexdump), ιδανικό για να καταλάβεις ΤΙ ακριβώς κρατάς στα χέρια σου.
Οι 15 εντολές που κάνουν τη δουλειά Αν το σκεφτείς, όσα χρειάζεσαι καθημερινά είναι λίγα αλλά δυνατά: pwd, ls (με -a, -l), cd, cat, less, head, tail, file, find, grep, sort, uniq, wc, sudo, chmod, συν τα βοηθητικά base64, strings, xxd. Οι «επαγγελματίες» δεν έχουν μυστικές εντολές. Έχουν καλύτερα «δέσιμα» (pipes), τα τρέχουν γρήγορα, και ρωτούν πιο έξυπνα το σύστημα.
Νοοτροπία που ξεχωρίζει Δύο παγίδες κρατάνε πίσω πολλούς: α) προσπαθούν να αποστηθίσουν όλο το manual αντί να εξασκηθούν σε αυτές τις λίγες εντολές, β) μόλις δουν Permission denied ή ένα παράξενο σφάλμα, νομίζουν ότι τα «έσπασαν» και τα παρατάνε. Μην το κάνεις. Το σφάλμα είναι χάρτης: σου δείχνει ακριβώς πού είναι το εμπόδιο. Άνοιξε τερματικό, τρέξε τα παραπάνω «κρύα», χωρίς σκονάκι. Στη δεύτερη περασιά αυτές οι εντολές γίνονται πραγματικά δικές σου. Και τότε, θα «βλέπεις» το σύστημα σαν σπίτι σου.
Αν ήξερες ήδη αυτά τα κόλπα ή αν σου άρεσε το κείμενο, μοιράσου το με κάποιον που θα του φανεί χρήσιμο. Κι αν το βρήκες ενδιαφέρον, ρίξε μια ματιά και στα υπόλοιπα άρθρα μας για να συνεχίσεις το ταξίδι σου.



