Στο Linux σχεδόν κάθε παραβίαση καταλήγει σε μία ερώτηση: «ποιος έχει δικαίωμα να κάνει τι;». Οι χρήστες (users) και τα δικαιώματα αρχείων (file permissions) είναι το θεμέλιο πάνω στο οποίο χτίζεται — ή καταρρέει — η ασφάλεια ενός συστήματος. Σε αυτόν τον οδηγό για αρχάριους μαθαίνεις πώς σκέφτεται ένας ethical hacker γύρω από δικαιώματα, ιδιοκτησία, SUID αρχεία και sudo, με ρεαλιστικά terminal παραδείγματα μέσα σε ένα απομονωμένο εργαστήριο (isolated lab) — πάντα με έμφαση στην ανίχνευση (detection) και την άμυνα (defense).
Γιατί τα δικαιώματα έχουν σημασία για την ασφάλεια
Όταν ένας penetration tester αποκτά πρόσβαση σε ένα σύστημα Linux ως απλός χρήστης, ο πρώτος στόχος σπάνια είναι κάποιο «μαγικό» exploit. Στην πραγματικότητα, οι περισσότερες κλιμακώσεις δικαιωμάτων (privilege escalation) οφείλονται σε κάτι πολύ πιο πεζό: εσφαλμένα ρυθμισμένα δικαιώματα αρχείων. Ένα αρχείο ρυθμίσεων εγγράψιμο από «όλους», ένα ευαίσθητο script που ανήκει σε λάθος χρήστη, ένα εκτελέσιμο με SUID bit που δεν θα έπρεπε να το έχει — αυτά είναι τα λάθη που ανοίγουν την πόρτα από τον απλό χρήστη προς τον root.
Η καλή είδηση είναι ότι ακριβώς οι ίδιες γνώσεις που βοηθούν έναν επιτιθέμενο να εντοπίσει αυτά τα λάθη, βοηθούν έναν system administrator ή ένα blue team να τα διορθώσει πριν τα βρει κάποιος κακόβουλος. Σε αυτόν τον οδηγό όλα τα παραδείγματα προέρχονται από ένα απομονωμένο εργαστήριο με ουδέτερες, ιδιωτικές διευθύνσεις IP (10.10.10.x) — κανένας πραγματικός στόχος, καμία επίθεση εκτός scope.
Βασικές έννοιες: χρήστες, ομάδες, δικαιώματα
Πριν πληκτρολογήσουμε την πρώτη εντολή, ας ξεκαθαρίσουμε το μοντέλο δικαιωμάτων του Linux.
Χρήστες (users) και ομάδες (groups)
Κάθε λογαριασμός στο σύστημα έχει ένα μοναδικό αριθμητικό αναγνωριστικό, το UID. Ο υπερχρήστης root έχει πάντα UID 0 και μπορεί να κάνει τα πάντα, παρακάμπτοντας κάθε έλεγχο δικαιωμάτων. Οι χρήστες οργανώνονται και σε ομάδες (groups) με δικό τους GID, ώστε πολλοί χρήστες να μοιράζονται πρόσβαση σε κοινούς πόρους. Η λίστα των λογαριασμών βρίσκεται στο /etc/passwd, ενώ οι κρυπτογραφημένοι κωδικοί (password hashes) ζουν χωριστά στο /etc/shadow, το οποίο μπορεί να διαβάσει μόνο ο root.
Τα εννέα bits των δικαιωμάτων
Κάθε αρχείο και κατάλογος ανήκει σε έναν ιδιοκτήτη (owner) και μια ομάδα, και έχει τρία σύνολα δικαιωμάτων — για τον ιδιοκτήτη, την ομάδα και «όλους τους άλλους» (others). Κάθε σύνολο περιλαμβάνει τρία δικαιώματα:
- read (r) — ανάγνωση περιεχομένου (τιμή 4).
- write (w) — τροποποίηση (τιμή 2).
- execute (x) — εκτέλεση αρχείου ή είσοδος σε κατάλογο (τιμή 1).
Έτσι το rwxr-xr-- μεταφράζεται σε 754: ο ιδιοκτήτης έχει τα πάντα (7 = 4+2+1), η ομάδα read+execute (5), οι υπόλοιποι μόνο read (4). Αυτή η «οκταδική» (octal) γραφή είναι η γλώσσα με την οποία μιλάει η εντολή chmod.
Τα ειδικά bits: SUID, SGID, sticky
Πέρα από τα εννέα βασικά bits, υπάρχουν τρία «ειδικά». Το πιο κρίσιμο για την ασφάλεια είναι το SUID (Set User ID): όταν ένα εκτελέσιμο το έχει, τρέχει με τα δικαιώματα του ιδιοκτήτη του (συχνά root) ανεξάρτητα από το ποιος το εκτελεί. Αυτό είναι απαραίτητο για ορισμένα εργαλεία (π.χ. το passwd), αλλά ένα λανθασμένο SUID σε ένα «αθώο» πρόγραμμα είναι από τους πιο κοινούς δρόμους για privilege escalation.
Πρακτικό κομμάτι: εξέταση δικαιωμάτων στο lab
Ας δούμε τώρα τις εντολές στην πράξη. Φαντάσου ότι, σε μια εξουσιοδοτημένη αξιολόγηση (authorized assessment), έχεις πρόσβαση ως απλός χρήστης σε ένα μηχάνημα-στόχο του lab (10.10.10.12). Στόχος: να καταγράψεις εσφαλμένες ρυθμίσεις δικαιωμάτων ως ευρήματα προς διόρθωση.
1. Ανάγνωση δικαιωμάτων και ιδιοκτησίας: ls -l, chmod, chown
Το πρώτο βήμα είναι πάντα να «διαβάσεις» τα δικαιώματα. Η ls -l δείχνει τη γραμμή δικαιωμάτων, τον ιδιοκτήτη και την ομάδα κάθε αρχείου. Ένα -rw-rw-rw- σε ένα ευαίσθητο αρχείο (world-writable) είναι κόκκινη σημαία: οποιοσδήποτε χρήστης μπορεί να το τροποποιήσει. Η chmod αλλάζει τα δικαιώματα και η chown αλλάζει τον ιδιοκτήτη — και οι δύο είναι εργαλεία τόσο κατανόησης όσο και διόρθωσης.

Στο screenshot βλέπουμε ένα config.php με δικαιώματα 666 (εγγράψιμο από όλους) — κλασικό εύρημα. Η αμυντική διόρθωση είναι διπλή: chown root:www-data config.php για σωστή ιδιοκτησία και chmod 640 ώστε να το διαβάζει μόνο ο ιδιοκτήτης και η ομάδα του web server, χωρίς κανείς «άλλος» να έχει πρόσβαση. Παρατήρησε πώς η γραμμή δικαιωμάτων αλλάζει από -rw-rw-rw- σε -rw-r-----.
2. Χρήστες του συστήματος: /etc/passwd και /etc/shadow
Το /etc/passwd είναι αναγνώσιμο από όλους και αποκαλύπτει ποιοι λογαριασμοί υπάρχουν και ποιοι έχουν πραγματικό shell (και άρα μπορούν να συνδεθούν διαδραστικά). Το /etc/shadow, αντίθετα, περιέχει τα password hashes και προστατεύεται αυστηρά — μόνο ο root το διαβάζει. Η προσπάθεια ανάγνωσής του ως απλός χρήστης πρέπει να αποτυγχάνει με Permission denied· αν δεν αποτύχει, αυτό από μόνο του είναι σοβαρότατο εύρημα.

Με grep φιλτράρουμε τους λογαριασμούς με /bin/bash για να ξεχωρίσουμε τους «πραγματικούς» χρήστες από τους λογαριασμούς υπηρεσιών (που έχουν /usr/sbin/nologin). Ένας αναπάντεχος λογαριασμός με shell — ειδικά με UID 0 — είναι κλασικό σημάδι persistence ενός επιτιθέμενου. Από πλευράς άμυνας, αυτός ο έλεγχος πρέπει να γίνεται περιοδικά.
3. Αναζήτηση SUID αρχείων: find / -perm -4000
Ένα από τα πιο παραγωγικά βήματα σε μια αξιολόγηση Linux είναι η σάρωση για εκτελέσιμα με SUID bit. Η εντολή find / -perm -4000 -type f 2>/dev/null ψάχνει όλο το σύστημα και «σιωπά» τα σφάλματα πρόσβασης. Το αποτέλεσμα είναι μια λίστα με προγράμματα που τρέχουν ως ο ιδιοκτήτης τους — και οτιδήποτε μη τυπικό εκεί αξίζει προσοχή.

Στο lab εμφανίζονται τα αναμενόμενα SUID binaries (passwd, sudo, mount), αλλά και ένα μη τυπικό: το /usr/bin/find με SUID root. Αυτό ακριβώς το είδος εσφαλμένης ρύθμισης καταγράφεται ως εύρημα. Δεν προχωράμε σε βήμα-βήμα εκμετάλλευση εδώ· ο σκοπός είναι να μάθεις να το εντοπίζεις. Η αμυντική απάντηση είναι απλή: αφαίρεση του SUID bit με chmod u-s από κάθε εκτελέσιμο που δεν το χρειάζεται.
4. Δικαιώματα sudo και προεπιλογές με umask
Η εντολή sudo -l δείχνει ποιες εντολές επιτρέπεται να τρέξει ο τρέχων χρήστης ως root. Είναι από τα πρώτα πράγματα που ελέγχει κανείς: μια καταχώρηση NOPASSWD σε ένα πρόγραμμα που μπορεί να «καταχραστεί» (όπως έναν interactive pager ή έναν editor) ισοδυναμεί με πλήρη πρόσβαση root. Στο ίδιο screenshot βλέπουμε και την umask, που καθορίζει τα προεπιλεγμένα δικαιώματα κάθε νέου αρχείου.

Η umask «αφαιρεί» bits από τα προεπιλεγμένα δικαιώματα. Μια χαλαρή τιμή όπως 0000 σημαίνει ότι κάθε νέο αρχείο γεννιέται world-writable — επικίνδυνη προεπιλογή. Μια ασφαλής τιμή όπως 0027 εξασφαλίζει ότι τα νέα αρχεία δεν είναι προσβάσιμα από «άλλους». Έλεγχος του sudo -l και μιας συντηρητικής umask είναι δύο απλά αλλά ισχυρά αμυντικά βήματα.
Το εργαστηριακό περιβάλλον (isolated lab)
Όλες οι παραπάνω εντολές δοκιμάζονται μόνο σε ένα απομονωμένο εργαστήριο που ελέγχεις εσύ. Ένα τυπικό setup για αρχάριους περιλαμβάνει:
- Ένα λογισμικό εικονικοποίησης (VirtualBox ή VMware) για εικονικές μηχανές (VMs).
- Μια μηχανή επίθεσης με Kali Linux και μία ή περισσότερες σκόπιμα ευάλωτες μηχανές-στόχους (π.χ. Metasploitable, TryHackMe/HackTheBox VMs).
- Δικτύωση τύπου host-only ή internal, ώστε οι μηχανές να «βλέπουν» μόνο η μία την άλλη — τυπικά σε εύρος
10.10.10.0/24— χωρίς πρόσβαση στο internet. - Στιγμιότυπα (snapshots) πριν από κάθε πείραμα, για εύκολη επαναφορά.
Έτσι, ό,τι κι αν κάνεις — ακόμη κι αν «χαλάσεις» δικαιώματα — μένει μέσα στα «τέσσερα τείχη» του lab σου. Νόμιμες πλατφόρμες όπως το TryHackMe και το HackTheBox προσφέρουν έτοιμα, νόμιμα περιβάλλοντα εξάσκησης ακριβώς πάνω σε αυτές τις έννοιες.
Ηθικό και νομικό πλαίσιο
Οι εντολές αυτές είναι απλές, αλλά η χρήση τους σε σύστημα που δεν σου ανήκει μπορεί να είναι παράνομη. Ισχύουν οι θεμελιώδεις κανόνες του ethical hacking:
- Εξουσιοδότηση (Authorization): Δεν εξετάζεις κανένα σύστημα χωρίς γραπτή άδεια από τον νόμιμο ιδιοκτήτη του.
- Εύρος (Scope): Ακόμη και μια «αθώα» εντολή όπως το
findή τοlsμένει εντός των συστημάτων που ορίζει η άδεια. - Lab-only για εξάσκηση: Ως αρχάριος, εξασκείσαι μόνο σε δικές σου VMs ή σε νόμιμες πλατφόρμες — ποτέ σε τυχαίους στόχους στο internet.
- Αμυντική οπτική: Κάθε εύρημα (world-writable αρχείο, μη τυπικό SUID, επικίνδυνο
sudo, χαλαρήumask) καταγράφεται με στόχο τη διόρθωση (remediation), όχι την εκμετάλλευση.
Αν κρατήσεις μία ιδέα: οι ίδιες εντολές που βοηθούν έναν επιτιθέμενο να χαρτογραφήσει τα δικαιώματα ενός συστήματος, βοηθούν έναν υπερασπιστή να το θωρακίσει. Ο ethical hacker μαθαίνει και τις δύο πλευρές — και δρα πάντα με άδεια.
Βασικά συμπεράσματα
- Τα δικαιώματα αρχείων είναι το θεμέλιο της ασφάλειας στο Linux· οι περισσότερες κλιμακώσεις οφείλονται σε εσφαλμένες ρυθμίσεις, όχι σε εξωτικά exploits.
- Η
ls -lδιαβάζει δικαιώματα και ιδιοκτησία· ηchmodκαι ηchownτα διορθώνουν (π.χ. world-writable →640). - Το
/etc/passwdδείχνει τους λογαριασμούς και τα shells· τα hashes ζουν προστατευμένα στο/etc/shadow, προσβάσιμο μόνο από root. - Η
find / -perm -4000εντοπίζει SUID εκτελέσιμα — κλασικό σημείο για privilege escalation· αφαίρεσε το bit μεchmod u-sόπου δεν χρειάζεται. - Το
sudo -lαποκαλύπτει τι μπορεί να τρέξει ένας χρήστης ως root· μια συντηρητικήumask(π.χ.0027) θωρακίζει τα προεπιλεγμένα δικαιώματα. - Κάθε δοκιμή γίνεται μόνο σε απομονωμένο, νόμιμο lab, με γραπτή εξουσιοδότηση και πάντα με αμυντικό, διορθωτικό σκοπό.
Από τη θεωρία στην πράξη. Η Audax Cybersecurity προσφέρει επαγγελματικές υπηρεσίες offensive security — penetration testing & offensive validation — ενώ για όσους ξεκινούν το ταξίδι τους στο ethical hacking, το #1 ελληνικό βιβλίο «Ethical Hacking — Η Κρυφή Γνώση» είναι ο ιδανικός οδηγός.
Θέλετε συνεχή επικύρωση της ασφάλειάς σας — όχι έλεγχο μία φορά τον χρόνο;
Το Erevos AI είναι η ετήσια, managed υπηρεσία CTEM της Audax — ενοποιεί exposure mapping, penetration testing, adversary emulation, detection validation & remediation σε έναν συνεχή, αποδεικτικό κύκλο. Human-led. Machine-scaled. Technically proven. Ευθυγραμμισμένο με NIS2 & DORA.
Ανακαλύψτε το Erevos AI →Χρειάζεστε Penetration Testing για τον οργανισμό σας;
Περιγράψτε το scope του ελέγχου μέσα από το δομημένο ερωτηματολόγιο και λάβετε εξατομικευμένη τεχνική & οικονομική προσφορά από την ομάδα Offensive Security της Audax. Χωρίς αυτόματη τιμή ή δέσμευση — η προσφορά αποστέλλεται μετά από τεχνική αξιολόγηση του scope.
Ζητήστε προσφορά Penetration Testing →