Εισαγωγή
Αναρωτηθήκατε ποτέ γιατί πρέπει να πληκτρολογείτε “sudo” ενώ προσπαθείτε να εκτελέσετε ορισμένες εντολές σε ένα περιβάλλον λειτουργικού συστήματος Linux ή Unix ; Το Sudo είναι στην πραγματικότητα μια συντομογραφία, που σημαίνει “super-user do”. Όταν χρησιμοποιείτε την εντολή sudo, μπορείτε να εκτελείτε προγράμματα και εντολές με τα προνόμια ασφαλείας ενός άλλου χρήστη.
Από προεπιλογή, η εντολή sudo επιτρέπει στους χρήστες του συστήματος να εκτελούν εντολές με τα προνόμια του super-user. Μια νέα εγκατάσταση ενός λειτουργικού συστήματος Linux/Unix δημιουργεί έναν λογαριασμό root που έχει προνόμια super-user. Κατά την αρχική ρύθμιση του διακομιστή ενός συστήματος Linux/Unix, οι διαχειριστές συστήματος συνδέονται με τον λογαριασμό root και εκχωρούν δικαιώματα συστήματος σε άλλους χρήστες του συστήματος. Αυτές οι ρυθμίσεις αποθηκεύονται σε ένα αρχείο που ονομάζεται sudoers. Ένας λογαριασμός με προνόμια root μπορεί να επεξεργαστεί το αρχείο sudoers και να αλλάξει τα προνόμια άλλων χρηστών.
Σε αυτόν τον οδηγό, θα συζητήσουμε πώς μπορείτε να αποκτήσετε προνόμια root και να κάνετε αλλαγές στο αρχείο sudoers.
Προαπαιτούμενα
Αυτός είναι ένας πρακτικός οδηγός και θα χρειαστεί να δοκιμάσετε τις εντολές για να τον κατανοήσετε πλήρως. Σε αυτόν τον οδηγό θα χρησιμοποιήσουμε τον διακομιστή Ubuntu 20.04, ωστόσο, μπορείτε να ακολουθήσετε τα βήματα εάν έχετε οποιαδήποτε από τις σύγχρονες διανομές Linux, όπως Debian και CentOS. Μπορείτε να ακολουθήσετε αυτόν τον σύνδεσμο για να δημιουργήσετε τον δικό σας cloud διακομιστή Ubuntu στο CloudSigma.
Απόκτηση προνομίων Root
Μπορείτε να αποκτήσετε προνόμια root με τρεις τρόπους, τους οποίους θα συζητήσουμε παρακάτω:
Σύνδεση ως root
Η απλούστερη μέθοδος που χρησιμοποιούν οι περισσότεροι για να αποκτήσουν προνόμια root είναι η σύνδεση σε ένα σύστημα χρησιμοποιώντας τα διαπιστευτήρια του χρήστη root. Εάν έχετε πρόσβαση στον τοπικό σας υπολογιστή, τότε μπορείτε απλώς να εισαγάγετε ένα όνομα χρήστη και θα σας ζητηθεί κωδικός πρόσβασης.
Μια άλλη μέθοδος που μπορείτε να χρησιμοποιήσετε για να συνδεθείτε ως root είναι η χρήση του SSH – ενός εργαλείου γραμμής εντολών για τη σύνδεση και την εκτέλεση εργασιών σε έναν διακομιστή. Απαιτεί ένα όνομα χρήστη και τη διεύθυνση IP του διακομιστή σας. Η σύνταξη για τη σύνδεση ως root είναι η εξής, αντικαταστήστε τη διεύθυνση IP του διακομιστή σας:
|
1 |
ssh root@your_server_ip_or_domain_name |
Όταν εισάγετε την παραπάνω εντολή στο τερματικό σας, είτε θα σας ζητηθεί να εισαγάγετε τον κωδικό πρόσβασής σας εάν δεν έχετε ρυθμίσει τα κλειδιά SSH, είτε θα σας ζητηθεί να εισαγάγετε τη συνθηματική φράση για το κλειδί SSH εάν τα είχατε ρυθμίσει. Μόλις δώσετε τα σωστά διαπιστευτήρια, θα συνδεθείτε. Ακολουθήστε αυτόν τον οδηγό για οδηγίες βήμα προς βήμα σχετικά με τον τρόπο χρήσης του SSH για τη σύνδεση σε έναν απομακρυσμένο διακομιστή στο Ubuntu.
Χρήση του su για να γίνετε root
Μπορείτε να συνδεθείτε σε ένα σύστημα Linux χρησιμοποιώντας οποιονδήποτε άλλο λογαριασμό που δεν είναι root, κάτι που είναι συνήθως ο συνιστώμενος τρόπος κατά την εκτέλεση μη διαχειριστικών εργασιών. Όποτε θέλετε να αποκτήσετε προνόμια root, μπορείτε απλώς να πληκτρολογήσετε su στο τερματικό σας:
|
1 |
su |
Το σύστημα σάς ζητά τον κωδικό πρόσβασης root, μετά τον οποίο θα αποκτήσετε πρόσβαση σε μια συνεδρία κελύφους root. Κατά τη διάρκεια αυτής της συνεδρίας κελύφους, μπορείτε να εκτελέσετε όλες τις διαχειριστικές εργασίες και όποτε θέλετε να επιστρέψετε στο κανονικό κέλυφος, απλώς πατήστε Ctrl + D. Προαιρετικά, μπορείτε να πληκτρολογήσετε exit στο τερματικό και να πατήσετε enter.
Χρήση του sudo για την εκτέλεση εντολών με προνόμια root
Η εντολή sudo, η οποία παρουσιάστηκε εν συντομία στην αρχή αυτού του οδηγού, σας επιτρέπει να εκτελείτε εντολές μιας γραμμής χωρίς την ανάγκη ενός κελύφους με προνόμια root. Απλώς πληκτρολογείτε sudo ακολουθούμενο από την εντολή που πρόκειται να εκτελεστεί:
|
1 |
sudo execute_this_command |
Για παράδειγμα, για να ενημερώσετε το σύστημά σας, μπορείτε να εισαγάγετε τα εξής:
|
1 |
sudo apt-get update |
Θα σας ζητηθεί κωδικός πρόσβασης. Η διαφορά μεταξύ της εντολής su και της sudo είναι ότι η su ζητά τον κωδικό πρόσβασης root, ενώ η sudo ζητά τον κωδικό πρόσβασης του τρέχοντος χρήστη. Η πρόσβαση sudo δεν παραχωρείται στους χρήστες από προεπιλογή, επειδή ενέχει σημαντικές επιπτώσεις ασφαλείας για το σύστημα. Θα συζητήσουμε περισσότερα σχετικά με αυτό στις επόμενες ενότητες.
Χρήση του Visudo για την επεξεργασία του αρχείου sudoers
Τα προνόμια sudo διαμορφώνονται στο αρχείο sudoers που βρίσκεται στο /etc/sudoers. Αυτά τα προνόμια είναι απαραίτητα για οποιονδήποτε χρήστη προκειμένου να αποκτήσει πρόσβαση στο σύστημα Linux. Οποιοδήποτε συντακτικό σφάλμα θα εμποδίσει τους χρήστες να συνδεθούν στο σύστημα, αφήνοντας έτσι το σύστημα κατεστραμμένο.
Visudo η εντολή ανοίγει το αρχείο με έναν ειδικό επεξεργαστή κειμένου που ελέγχει τη σύνταξη του αρχείου κατά την αποθήκευση. Επομένως, είναι σημαντικό να χρησιμοποιείτε μόνο την visudo εντολή για να ανοίξετε το αρχείο, ώστε να αποφύγετε να καταστήσετε το σύστημα του διακομιστή σας μη λειτουργικό. Από προεπιλογή, το visudo είχε οριστεί να ανοίγει τον επεξεργαστή κειμένου με (vi) vim. Ωστόσο, το Ubuntu έχει ρυθμίσει το visudo να χρησιμοποιεί τον nano επεξεργαστή κειμένου. Σε Debian ή Ubuntu, μπορείτε να μεταβείτε σε διαφορετικό επεξεργαστή κειμένου εισάγοντας την ακόλουθη εντολή:
|
1 |
sudo update-alternatives --config editor |
Εμφανίζει μια λίστα με επεξεργαστές κειμένου από την οποία μπορείτε να επιλέξετε έναν προεπιλεγμένο επεξεργαστή, όπως φαίνεται στο στιγμιότυπο οθόνης. Επιλέξτε τον αριθμό που αντιστοιχεί στον επεξεργαστή που προτιμάτε:

Σε μια διανομή CentOS Linux, επεξεργαστείτε το /etc/sudoers και προσθέστε τις παρακάτω γραμμές:
|
1 2 |
Defaults editor = /usr/bin/vim:/usr/bin/vi:/usr/bin/nano Defaults env_keep += "EDITOR" |
Εισαγάγετε την ακόλουθη εντολή. Θυμηθείτε να αντικαταστήσετε το όνομα του your_editor_of_choice:
|
1 |
export EDITOR=`which your_editor_of_choice` |
Η εντολή προσθέτει τη γραμμή στο αρχείο ~/.bashrc. Εισαγάγετε τα ακόλουθα στο τερματικό σας για να εφαρμόσετε τις αλλαγές:
|
1 |
. ~/.bashrc |
Με το visudo πλέον ρυθμισμένο, μπορείτε να ανοίξετε το αρχείο στο /etc/sudoers εισάγοντας την εντολή:
|
1 |
sudo visudo |
Επεξεργασία του αρχείου Sudoers
Όταν εκτελείτε την προηγούμενη εντολή, το αρχείο ανοίγει στον κύριο επεξεργαστή κειμένου σας, όπως τον είχατε ρυθμίσει. Παρακάτω παρουσιάζονται τα περιεχόμενα του αρχείου:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# # Αυτό το αρχείο ΠΡΕΠΕΙ να επεξεργαστεί με την εντολή 'visudo' ως root. # # Παρακαλούμε σκεφτείτε να προσθέσετε τοπικό περιεχόμενο στο /etc/sudoers.d/ αντί να # τροποποιήσετε απευθείας αυτό το αρχείο. # # Δείτε τη σελίδα man για λεπτομέρειες σχετικά με τον τρόπο συγγραφής ενός αρχείου sudoers. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" # Προδιαγραφή ψευδωνύμου κεντρικού υπολογιστή # Προδιαγραφή ψευδωνύμου χρήστη # Προδιαγραφή ψευδωνύμου εντολής # Προδιαγραφή προνομίων χρήστη root ALL=(ALL:ALL) ALL # Τα μέλη της ομάδας admin μπορούν να αποκτήσουν προνόμια root %admin ALL=(ALL) NOPASSWD:ALL # Να επιτρέπεται στα μέλη της ομάδας sudo να εκτελούν οποιαδήποτε εντολή %sudo ALL=(ALL) NOPASSWD:ALL # Δείτε το sudoers(5) για περισσότερες πληροφορίες σχετικά με τις οδηγίες "#include": #includedir /etc/sudoers.d |
Τα σχόλια είναι αρκετά περιγραφικά, αλλά θα συζητήσουμε παρακάτω τι υποδηλώνουν οι γραμμές.
Προεπιλεγμένες γραμμές
- Defaults env_reset – Επαναφέρει τις μεταβλητές περιβάλλοντος του τερματικού για να αφαιρέσει τυχόν μεταβλητές χρήστη. Επομένως, εκκαθαρίζει δυνητικά επιβλαβείς μεταβλητές από μια συνεδρία sudo.
- Defaults mail_badpass – Δίνει εντολή στο σύστημα να στέλνει ειδοποιήσεις μέσω email για αποτυχημένες προσπάθειες εισαγωγής κωδικού πρόσβασης sudo στον ρυθμισμένο χρήστη mailto user, συνήθως στον λογαριασμό root.
- Defaults secure_path – Περιέχει τις διάφορες διαδρομές στο σύστημα αρχείων τις οποίες θα αναζητήσει μια λειτουργία sudo για εφαρμογές προς χρήση κατά την εκτέλεση, ώστε να αποτραπεί η χρήση άλλων ορισμένων από τον χρήστη διαδρομών που μπορεί να είναι επικίνδυνες για το σύστημα.
Γραμμές Καθορισμού Προνομίων Χρήστη
|
1 |
root ALL=(ALL:ALL) ALL |
- root ALL=(ALL:ALL) ALL – Το πρώτο πεδίο καθορίζει το όνομα χρήστη στο οποίο θα εφαρμοστεί ο κανόνας. Σε αυτήν την περίπτωση είναι ο root χρήστης.
- root ALL=(ALL:ALL) ALL – Το πρώτο ALL καθορίζει ότι ο κανόνας θα εφαρμόζεται σε όλους τους κεντρικούς υπολογιστές.
- root ALL=(ALL:ALL) ALL – Το δεύτερο ALL καθορίζει ότι ο χρήστης στον οποίο εφαρμόζεται αυτός ο κανόνας (δηλ. ο root) μπορεί να εκτελεί εντολές ως όλοι οι χρήστες.
- root ALL=(ALL:ALL) ALL – Το τρίτο ALL καθορίζει ότι ο χρήστης στον οποίο εφαρμόζεται αυτός ο κανόνας (δηλ. ο root) μπορεί να εκτελεί εντολές ως όλες οι ομάδες.
- root ALL=(ALL:ALL) ALL – Το τελευταίο ALL καθορίζει ότι αυτοί οι κανόνες εφαρμόζονται σε όλες τις εντολές.
Σύμφωνα με όσα υποδεικνύει αυτός ο κανόνας, ένας χρήστης root μπορεί να εκτελέσει οποιαδήποτε εντολή χρησιμοποιώντας το sudo, εφόσον παρέχει τον σωστό κωδικό πρόσβασης.
Γραμμές Καθορισμού Προνομίων Ομάδας
Αυτές οι γραμμές καθορίζουν τους κανόνες προνομίων sudo που εφαρμόζονται σε ομάδες. Τα πεδία υποδεικνύουν τις ίδιες ενέργειες με τις γραμμές προνομίων χρήστη, με μια μικρή διαφορά. Ξεκινούν με % για να υποδηλώσουν ονόματα ομάδων.
Όπως μπορείτε να δείτε, η admin ομάδα μπορεί να εκτελέσει οποιαδήποτε εντολή ως οποιοσδήποτε χρήστης σε οποιονδήποτε κεντρικό υπολογιστή. Η sudo ομάδα έχει το ίδιο προνόμιο με το πρόσθετο προνόμιο της εκτέλεσης εντολών ως οποιαδήποτε ομάδα.
Γραμμή Συμπερίληψης /etc/sudoers.d
Η γραμμή #includedir /etc/sudoers.d μπορεί να φαίνεται σαν σχόλιο λόγω του # στην αρχή της γραμμής. Ωστόσο, πρόκειται για μια οδηγία συμπερίληψης (include directive) που υποδεικνύει ότι τα αρχεία εντός του καταλόγου /etc/sudoers.d θα πρέπει να εισάγονται και να χρησιμοποιούνται ως μέρος του αρχείου sudoers. Τα αρχεία εντός αυτού του καταλόγου ακολουθούν τους ίδιους κανόνες με το αρχείο sudoers.
Οποιοδήποτε αρχείο εντός του καταλόγου που δεν περιέχει τελεία (.) και δεν τελειώνει σε ~ διαβάζεται και προσαρτάται στη διαμόρφωση του αρχείου sudoers. Ο κατάλογος επιτρέπει στις εφαρμογές να τροποποιούν τα προνόμια sudo κατά την εγκατάσταση, τοποθετώντας όλους τους σχετικούς κανόνες τους σε ένα ενιαίο αποκλειστικό αρχείο στον κατάλογο /etc/sudoers.d χωρίς να τροποποιείται το προεπιλεγμένο αρχείο sudoers. Επιπλέον, όταν θέλετε να επιθεωρήσετε ή να ανακαλέσετε τα προνόμια για μια εφαρμογή, μπορείτε εύκολα να ελέγξετε ή να τροποποιήσετε τα αρχεία εντός του καταλόγου /etc/sudoers.d χωρίς να τροποποιήσετε απευθείας το αρχείο /etc/sudoers απευθείας.
Ως γενικός κανόνας, όλα τα αρχεία εντός του καταλόγου /etc/sudoers.d θα πρέπει πάντα να επεξεργάζονται χρησιμοποιώντας την εντολή visudo . Παρακάτω είναι η σύνταξη, θυμηθείτε να αντικαταστήσετε το όνομα του αρχείου που θέλετε να επεξεργαστείτε στην εντολή:
|
1 |
sudo visudo -f /etc/sudoers.d/file_name_to_edit |
Εκχώρηση Προνομίων Sudo σε έναν Χρήστη
Όταν παραχωρείτε σε έναν νέο χρήστη γενική πρόσβαση sudo, αυτό σημαίνει ότι έχετε δώσει στον λογαριασμό χρήστη πλήρη πρόσβαση διαχειριστή στο σύστημα. Αυτή είναι μια κοινή εργασία που εκτελούν οι διαχειριστές συστήματος κατά τη δημιουργία άλλων χρηστών εκτός του root με προνόμια sudo.
Σε συστήματα όπως το Ubuntu 20.04 που διαθέτουν ήδη την ομάδα διαχείρισης γενικής χρήσης, μπορούμε εύκολα να εκχωρήσουμε προνόμια sudo σε έναν χρήστη προσθέτοντας τον χρήστη σε αυτήν την ομάδα. Η ομάδα sudo, όπως φαίνεται στο αρχείο /etc/sudoers , έχει πλήρη προνόμια διαχειριστή και μπορούμε να προσθέσουμε ένα όνομα χρήστη στην ομάδα εισάγοντας την ακόλουθη εντολή:
|
1 |
sudo usermod -aG sudo username |
Προαιρετικά, μπορείτε να χρησιμοποιήσετε την εντολή gpasswd για να επιτύχετε το ίδιο αποτέλεσμα:
|
1 |
sudo gpasswd -a username sudo |
Στο CentOS , η προεπιλεγμένη ομάδα με προνόμια sudo ονομάζεται wheel , επομένως μπορείτε να εκχωρήσετε τα προνόμια χρησιμοποιώντας την εντολή:
|
1 |
sudo usermod -aG wheel username |
Προαιρετικά, χρησιμοποιώντας την εντολή gpasswd , μπορείτε να επιτύχετε το ίδιο χρησιμοποιώντας την εντολή:
|
1 |
sudo gpasswd -a username wheel |
Σε ορισμένες περιπτώσεις, το wheel η ομάδα στο CentOS ενδέχεται να είναι σε σχόλιο στο αρχείο /etc/sudoers. Για να την ενεργοποιήσετε, ανοίξτε το αρχείο με το visudo και αφαιρέστε το σχόλιο από τη γραμμή με το όνομα της ομάδας. Μπορείτε να το κάνετε αυτό αφαιρώντας το # στην αρχή της γραμμής: %wheel ALL=(ALL) ALL.
Δημιουργία προσαρμοσμένων κανόνων
Με τη γνώση της γενικής σύνταξης του sudoers που έχετε αποκτήσει μέχρι αυτό το σημείο, ήρθε η ώρα να ορίσετε μερικούς κανόνες.
Δημιουργία ψευδωνύμων (Aliases)
Τα ψευδώνυμα σάς επιτρέπουν να οργανώσετε το αρχείο sudoers ομαδοποιώντας στοιχεία κάτω από διάφορα «ψευδώνυμα». Έχουμε τρεις οδηγίες τις οποίες θα συζητήσουμε σε αυτήν την ενότητα: User_Alias για τη δημιουργία ψευδωνύμων χρηστών/ομάδων, Cmnd_Alias για τη δημιουργία ψευδωνύμων εντολών, και Runas_Alias για να επιτρέπεται σε έναν χρήστη να εκτελεί ως άλλος χρήστης.
Για παράδειγμα, χρησιμοποιώντας το User_Alias, μέσα στο αρχείο σας /etc/sudoers, μπορείτε να προσθέσετε το ακόλουθο απόσπασμα για να δημιουργήσετε τρεις διαφορετικές ομάδες χρηστών. Ορισμένοι χρήστες ενδέχεται να ανήκουν σε περισσότερες από μία ομάδες:
|
1 2 3 |
User_Alias GROUPONE = adelle, nikita, ellie User_Alias GROUPTWO = nikita, brenden, natalia User_Alias GROUPTHREE = brenden, walter, james |
Σημειώστε ότι όλα τα ονόματα ομάδων ξεκινούν με κεφαλαίο γράμμα. Με τα παραπάνω ψευδώνυμα ομάδων να έχουν προστεθεί στο αρχείο /etc/sudoers, μπορείτε να εκχωρήσετε ένα προνόμιο για την ενημέρωση της βάσης δεδομένων apt στο GROUPTWO προσθέτοντας τον ακόλουθο κανόνα στο αρχείο /etc/sudoers:
|
1 |
GROUPTWO ALL = /usr/bin/apt-get update |
Σημειώστε ότι χωρίς να καθορίσετε τον χρήστη/ομάδα ως τον οποίο θα εκτελεστεί, η εντολή sudo θα προεπιλέγει πάντα τον χρήστη root .
Here is an example of the Cmnd_Alias όπου δημιουργούμε ένα ψευδώνυμο εντολής για τον τερματισμό λειτουργίας και την επανεκκίνηση του συστήματος. Στη συνέχεια, ο κανόνας εκχωρείται στο GROUPTHREE. Η προσθήκη των ακόλουθων γραμμών μέσα στο αρχείο /etc/sudoers το επιτυγχάνει αυτό:
|
1 2 |
Cmnd_Alias POWER = /sbin/shutdown, /sbin/halt, /sbin/reboot, /sbin/restart GROUPTHREE ALL = POWER |
Στο παραπάνω απόσπασμα, η πρώτη γραμμή δημιουργεί ένα ψευδώνυμο εντολής με το όνομα POWER που περιλαμβάνει εντολές για απενεργοποίηση και επανεκκίνηση. Η δεύτερη γραμμή επιτρέπει στα μέλη του GROUPTHREE να εκτελέσουν αυτήν την εντολή.
Ακολουθεί ένα παράδειγμα του Runas_Alias, όπου δημιουργούμε ένα ψευδώνυμο που θα επιτρέπει σε μια ομάδα χρηστών να εκτελεί ως άλλος χρήστης:
|
1 2 |
Runas_Alias WEB = www-data, apache GROUPONE ALL = (WEB) ALL |
Στο παραπάνω απόσπασμα, η πρώτη γραμμή δημιουργεί ένα ψευδώνυμο με το όνομα WEB, καθορίζοντας ότι το ψευδώνυμο θα εκτελείται ως ο χρήστης apache ή ο χρήστης www-data . Η δεύτερη γραμμή εκχωρεί το ψευδώνυμο στο GROUPONE. Τώρα, τα μέλη της ομάδας ένα μπορούν να εκτελούν εντολές είτε ως ο χρήστης apache είτε ως www-data .
Κανόνες περιορισμού
Σε αυτήν την ενότητα, θα μάθετε τους διάφορους τρόπους με τους οποίους μπορείτε να ελέγξετε πώς αντιδρά το sudo σε μια κλήση. Ορισμένες εντολές είναι σχετικά ακίνδυνες σε συστήματα ενός χρήστη. Σε τέτοιες περιπτώσεις, μπορείτε να επιτρέψετε στους χρήστες να τις εκτελούν με προνόμια root χωρίς να χρειάζεται να πληκτρολογήσουν τον κωδικό πρόσβασης του root . Για παράδειγμα, μπορείτε να δημιουργήσετε έναν κανόνα που να επιτρέπει στους χρήστες της ομάδας GROUPONE να εκτελούν την εντολή updatedb χωρίς να εισάγουν κωδικό πρόσβασης, προσθέτοντας τα ακόλουθα στο αρχείο /etc/sudoers:
|
1 |
GROUPONE ALL = NOPASSWD: /usr/bin/updatedb |
Η ετικέτα NOPASSWD υποδηλώνει ότι δεν θα ζητηθεί κωδικός πρόσβασης. Η συνοδευτική ετικέτα για την ετικέτα NOPASSWD είναι η PASSWD, η οποία αποτελεί την προεπιλεγμένη συμπεριφορά. Αυτό σημαίνει ότι πρέπει να παρέχεται κωδικός πρόσβασης στο σχετικό μήνυμα.
Μια ετικέτα ισχύει για έναν κανόνα εκτός εάν παρακαμφθεί από τη συνοδευτική της ετικέτα, για παράδειγμα:
|
1 |
GROUPTWO ALL = NOPASSWD: /usr/bin/updatedb, PASSWD: /bin/kill |
Σε αυτόν τον κανόνα, οι χρήστες στην ομάδα GROUPTWO μπορούν να εκτελέσουν την εντολή updatedb εντολή χωρίς να εισαγάγουν κωδικό πρόσβασης. Ωστόσο, πρέπει να παράσχουν έναν κωδικό πρόσβασης πριν από την εκτέλεση της εντολής kill.
Σε ορισμένες περιπτώσεις, ίσως θέλετε να περιορίσετε τους χρήστες από την εκτέλεση συγκεκριμένων εντολών για να αποτρέψετε κάποιες επικίνδυνες εκτελέσεις. Εδώ είναι που η ετικέτα NOEXEC έρχεται στο προσκήνιο. Ορισμένα προγράμματα μπορούν να εκτελέσουν άλλες εντολές μέσα από τη διεπαφή τους. Ένα παράδειγμα τέτοιου προγράμματος είναι το less. Εάν πληκτρολογήσετε μια εντολή με την ακόλουθη σύνταξη μέσα στη διεπαφή less, θα εκτελεστεί, προκαλώντας κάποια απροσδόκητη συμπεριφορά.
|
1 |
!name_of_command_to_run |
Για να αποτρέψετε μια τέτοια συμπεριφορά, μπορείτε να προσθέσετε τον ακόλουθο κανόνα στο αρχείο /etc/sudoers για να περιορίσετε έναν συγκεκριμένο χρήστη που αναγνωρίζεται με το username:
|
1 |
username ALL = NOEXEC: /usr/bin/less |
Πρόσθετες Πληροφορίες
Σε αυτήν την ενότητα, περιλαμβάνουμε ορισμένες πρόσθετες πληροφορίες, οδηγίες και εντολές που μπορεί να βρείτε απαραίτητες κατά την εργασία με το sudo.
Εάν χρησιμοποιήσατε το Runas_Alias στη διαμόρφωση, καθορίζοντας ότι ένας χρήστης ή μια ομάδα μπορεί να εκτελέσει ως άλλος χρήστης, μπορείτε να εκτελέσετε εντολές ως αυτοί οι χρήστες χρησιμοποιώντας τη σημαία -u στον χρήστη και τη σημαία -g στις ομάδες. Εδώ είναι η σύνταξη:
|
1 2 |
sudo -u run_as_user command sudo -g run_as_group command |
Κάθε μία από τις εντολές θα σας ζητήσει να εισαγάγετε τον σχετικό κωδικό πρόσβασης. Για λόγους ευκολίας, το sudo αποθηκεύει τον κωδικό πρόσβασης για κάποιο χρονικό διάστημα, ώστε να μην χρειάζεται να τον εισάγετε συνεχώς κάθε φορά που εκτελείετε μια εντολή με το sudo. Ίσως θέλετε να εκκαθαρίσετε τον χρόνο μόλις τελειώσετε με τις προνομιακές εντολές sudo εισάγοντας την ακόλουθη εντολή:
|
1 |
sudo -k |
Σε περίπτωση που έχετε περισσότερες εργασίες να εκτελέσετε με προνόμια sudo και θέλετε να παρατείνετε τον χρόνο πριν από το αίτημα κωδικού πρόσβασης ή θέλετε να αποφύγετε να σας ζητάει κωδικό πρόσβασης η εντολή sudo αργότερα, μπορείτε να ανανεώσετε τον χρόνο πληκτρολογώντας την ακόλουθη εντολή:
|
1 |
sudo -v |
Η εντολή σάς ζητά έναν κωδικό πρόσβασης και τον αποθηκεύει προσωρινά για μεταγενέστερες χρήσεις του sudo.
Για να δείτε τη λίστα με τα προνόμια sudo που έχουν οριστεί για το όνομά σας, μπορείτε να εισαγάγετε την ακόλουθη εντολή:
|
1 |
sudo -l |
Η εντολή εμφανίζει όλους τους κανόνες που έχουν διαμορφωθεί στο αρχείο /etc/sudoers και ισχύουν για το όνομα χρήστη σας. Από τους κανόνες, μπορείτε να πάρετε μια ιδέα για το ποιες εργασίες μπορεί να κάνει το όνομα χρήστη σας στο σύστημα. Εδώ είναι ένα παράδειγμα στιγμιότυπου οθόνης:

Σε ορισμένες περιπτώσεις, ενδέχεται να εκτελέσετε εντολές και αυτές να αποτύχουν επειδή ξεχάσατε να προσθέσετε το sudo πριν από αυτές. Σε τέτοια σενάρια, ίσως χρειαστεί να πληκτρολογήσετε ξανά την εντολή ξεκινώντας με sudo. Για να αποφύγετε την εκ νέου πληκτρολόγηση της εντολής, μπορείτε να χρησιμοποιήσετε τη λειτουργικότητα του bash για «επανάληψη της τελευταίας εντολής». Η σύνταξη είναι διπλά θαυμαστικά. Μπορείτε να εκτελέσετε την τελευταία εντολή που εκτελέσατε στο τερματικό σας εισάγοντας το ακόλουθο:
|
1 |
sudo !! |
Τέλος, είναι σημαντικό να γνωρίζετε ότι το sudo απλώς αναβαθμίζει την εντολή ώστε να εκτελεστεί με προνόμια sudo. Για πρόσθετες πληροφορίες, μπορείτε να ακολουθήσετε τις οδηγίες σε αυτόν τον σύνδεσμο για να διασκεδάσετε λίγο με τους χρήστες σας.
Συμπέρασμα
Όταν εργάζεστε με πολλούς χρήστες, η κατανόηση της χρήσης της εντολής sudo και του αρχείου sudoers είναι κρίσιμης σημασίας. Σε αυτό το σεμινάριο, παρουσιάσαμε τα βασικά για την ανάγνωση και την τροποποίηση του αρχείου sudoers, καθώς και τις διάφορες μεθόδους που μπορείτε να χρησιμοποιήσετε για να αποκτήσετε προνόμια root.
Να έχετε πάντα κατά νου ότι ο διαχωρισμός των προνομίων είναι αυτό που κάνει τα συστήματα Linux ασφαλή. Επομένως, τα προνόμια υπερχρήστη δεν πρέπει να δίνονται σε απλούς χρήστες. Εκχωρήστε μόνο τα προνόμια που είναι απολύτως απαραίτητα για έναν συγκεκριμένο χρήστη ώστε να εκτελεί τις συγκεκριμένες εργασίες του στο σύστημα και όχι όλα τα προνόμια.
Καλή υπολογιστική!
Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.