Πώς να χρησιμοποιήσετε το rbash (Restricted Bash Shell) στο Linux


Στον κόσμο του Linux και των συστημάτων που μοιάζουν με Unix, η ασφάλεια είναι ζωτικής σημασίας, ειδικά όταν πολλοί χρήστες μοιράζονται ένα σύστημα. Ένας τρόπος για να ενισχυθεί η ασφάλεια είναι η χρήση περιορισμένων κελυφών. Ένα τέτοιο κέλυφος είναι το rbash ή το Περιορισμένο Bash.

Αυτό το άρθρο θα εξηγήσει τι είναι το rbash, πώς διαφέρει από το κανονικό κέλυφος Bash και θα παρέχει πρακτικά παραδείγματα χρήσης του.

Τι είναι το Shell;

Πριν βουτήξουμε στο rbash, ας διευκρινίσουμε τι είναι το κέλυφος.

Το κέλυφος είναι ένα πρόγραμμα που επιτρέπει στους χρήστες να αλληλεπιδρούν με το σύστημα Linux μέσω μιας διεπαφής γραμμής εντολών. Ερμηνεύει τις εντολές που εισάγει ο χρήστης και επικοινωνεί με το σύστημα για να εκτελέσει αυτές τις εντολές.

Το Bash (Bourne Again SHell) είναι ένα από τα πιο ευρέως χρησιμοποιούμενα κελύφη σε περιβάλλοντα Linux.

Τι είναι το rbash;

Το rbash είναι μια περιορισμένη έκδοση του κελύφους Bash, η οποία έχει σχεδιαστεί για να περιορίζει την πρόσβαση των χρηστών σε ορισμένες εντολές και λειτουργίες, ενισχύοντας την ασφάλεια του συστήματος.

Όταν ένας χρήστης συνδέεται σε ένα σύστημα χρησιμοποιώντας το rbash, δεν μπορεί να εκτελέσει εργασίες που θα μπορούσαν να θέσουν σε κίνδυνο το σύστημα ή άλλους χρήστες.

Βασικές διαφορές μεταξύ Bash και rbash

Ακολουθούν ορισμένες βασικές διαφορές μεταξύ bash και rbash:

  • Στο rbash, οι χρήστες δεν μπορούν να αλλάξουν τον κατάλογό τους με την εντολή cd. Μπορούν να λειτουργήσουν μόνο στον οικιακό τους κατάλογο.
  • Ορισμένες εντολές όπως exec, set και unset είναι περιορισμένες, εμποδίζοντας τους χρήστες να αλλάξουν το περιβάλλον του κελύφους.
  • Οι χρήστες δεν μπορούν να αλλάξουν μεταβλητές περιβάλλοντος που μπορεί να επηρεάσουν άλλους χρήστες ή ρυθμίσεις συστήματος.
  • Στο rbash, οι χρήστες δεν μπορούν να ανακατευθύνουν την είσοδο ή την έξοδο, καθιστώντας πιο δύσκολη την εκτέλεση εντολών που μπορούν να έχουν πρόσβαση ή να χειρίζονται αρχεία έξω από τις καθορισμένες περιοχές τους.

Αυτοί οι περιορισμοί καθιστούν το rbash κατάλληλο για σενάρια όπου θέλετε να παρέχετε περιορισμένη πρόσβαση στους χρήστες, διατηρώντας παράλληλα ένα επίπεδο ασφάλειας.

Πότε να χρησιμοποιήσετε το rbash

Ακολουθούν ορισμένες περιπτώσεις όπου η χρήση του rbash είναι επωφελής:

  • Δημόσια τερματικά: Σε περιβάλλοντα όπως βιβλιοθήκες ή σχολεία όπου οι χρήστες χρειάζονται πρόσβαση σε βασικές εντολές, αλλά δεν πρέπει να παραβιάζουν τις ρυθμίσεις του συστήματος.
  • Κοινόχρηστοι διακομιστές: Σε κοινόχρηστα συστήματα, το rbash μπορεί να εμποδίσει τους χρήστες να έχουν πρόσβαση σε δεδομένα άλλων χρηστών ή σε κρίσιμα αρχεία συστήματος.
  • Περιβάλλοντα δοκιμών και μάθησης: Όταν διδάσκετε στους χρήστες βασικές δεξιότητες γραμμής εντολών, το rbash μπορεί να βοηθήσει στον περιορισμό των ενεργειών τους για την αποφυγή τυχαίων αλλαγών στο σύστημα.

Πώς να ρυθμίσετε το rbash στο Linux

Η εγκατάσταση του rbash στο σύστημα Linux είναι μια απλή διαδικασία, το μόνο που χρειάζεται να κάνετε είναι να ακολουθήσετε τα εξής βήματα:

1. Εγκαταστήστε το Bash σε Linux

Οι περισσότερες διανομές Linux διαθέτουν το Bash εγκατεστημένο από προεπιλογή, μπορείτε να ελέγξετε αν είναι εγκατεστημένο εκτελώντας:

bash --version

2. Δημιουργήστε έναν περιορισμένο χρήστη κελύφους

Μπορείτε να δημιουργήσετε έναν χρήστη ειδικά για το rbash.

sudo adduser anusha

Μετά τη δημιουργία του χρήστη, αλλάξτε το προεπιλεγμένο κέλυφος του σε rbash:

sudo usermod -s /bin/rbash restricteduser

Για να περιορίσετε περαιτέρω το περιβάλλον αυτού του χρήστη, μπορείτε να δημιουργήσετε έναν συγκεκριμένο κατάλογο και να τον ορίσετε ως τον αρχικό του κατάλογο:

sudo mkdir /home/anusha/bin

Στη συνέχεια, μπορείτε να τοποθετήσετε οποιαδήποτε σενάρια ή εντολές θέλετε να έχει πρόσβαση ο χρήστης μέσα σε αυτόν τον κατάλογο bin.

Για να περιορίσετε τις εντολές που είναι διαθέσιμες στον χρήστη, ορίστε τη μεταβλητή PATH ώστε να περιλαμβάνει μόνο τον κατάλογο bin:

echo 'export PATH=$HOME/bin' | sudo tee -a /home/anusha/.bashrc

Τώρα, μπορείτε να συνδεθείτε ως περιορισμένος χρήστης:

su - anusha

Πώς να χρησιμοποιήσετε το rbash στο Linux

Ας εξερευνήσουμε μερικά πρακτικά παραδείγματα για να δείξουμε πώς λειτουργεί το rbash.

Παράδειγμα 1: Προσπάθεια αλλαγής καταλόγου

Μόλις συνδεθείτε ως ο περιορισμένος χρήστης, δοκιμάστε να αλλάξετε τους καταλόγους:

cd /tmp

Θα λάβετε ένα μήνυμα σφάλματος όπως -rbash: cd: περιορισμένο, το οποίο επιβεβαιώνει ότι ο χρήστης δεν μπορεί να πλοηγηθεί εκτός του αρχικού του καταλόγου.

Παράδειγμα 2: Εκτέλεση περιορισμένων εντολών

Δοκιμάστε να εκτελέσετε εντολές όπως exec ή set:

exec bash

Θα λάβετε ένα σφάλμα όπως -rbash: exec: περιορισμένο, το οποίο δείχνει ότι ο χρήστης δεν μπορεί να εκτελέσει νέες παρουσίες φλοιού.

Παράδειγμα 3: Ανακατεύθυνση αρχείου

Προσπαθήστε να ανακατευθύνετε την έξοδο σε ένα αρχείο:

echo "Test" > test.txt

Θα λάβετε ένα μήνυμα σφάλματος που υποδεικνύει ότι οι χρήστες δεν μπορούν να ανακατευθύνουν την έξοδο σε αρχεία.

-rbash: test.txt: restricted: cannot redirect output

Παράδειγμα 4: Επιτρεπόμενες εντολές

Για να δείτε ποιες εντολές μπορεί να εκτελέσει ο περιορισμένος χρήστης, μπορείτε να δημιουργήσετε ένα απλό σενάριο στον κατάλογό του bin.

Για παράδειγμα, δημιουργήστε ένα αρχείο με το όνομα hello.sh:

echo "echo 'Hello, World!'" > /home/restricteduser/bin/hello.sh
chmod +x /home/restricteduser/bin/hello.sh

Τώρα, όταν εκτελείται ο περιορισμένος χρήστης:

./hello.sh

Θα δουν Hello, World! εκτυπώνονται στην οθόνη, αποδεικνύοντας ότι μπορούν να εκτελέσουν επιτρεπόμενες εντολές.

Σύναψη

Συνοπτικά, το rbash είναι ένα ισχυρό εργαλείο για τη βελτίωση της ασφάλειας σε περιβάλλοντα Linux πολλών χρηστών. Περιορίζοντας την πρόσβαση σε ορισμένες εντολές και δυνατότητες, συμβάλλει στη διατήρηση της ακεραιότητας του συστήματος, ενώ επιτρέπει στους χρήστες να εκτελούν βασικές εργασίες.