Διαφορά μεταξύ su και sudo και Πώς να ρυθμίσετε το sudo στο Linux


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

Εάν ένας κανονικός χρήστης χρειάζεται να πραγματοποιήσει αλλαγές σε όλο το σύστημα, πρέπει να χρησιμοποιήσει είτε την εντολή "su" ή "sudo".

ΣΗΜΕΙΩΣΗ – Αυτό το άρθρο ισχύει περισσότερο για διανομές που βασίζονται στο Ubuntu, αλλά και για τα περισσότερα δημοφιλή Linux διανομές.

"su" εναντίον "sudo"

Το "su" σάς αναγκάζει να κοινοποιήσετε τον κωδικό πρόσβασης root σας σε άλλους χρήστες, ενώ το "sudo" καθιστά δυνατή την εκτέλεση εντολές συστήματος χωρίς κωδικό πρόσβασης root. Το ‘sudo’ σάς επιτρέπει να χρησιμοποιείτε τον δικό σας κωδικό πρόσβασης για να εκτελείτε εντολές συστήματος, δηλαδή να εκχωρείτε την ευθύνη του συστήματος χωρίς κωδικό πρόσβασης root.

Τι είναι το «sudo»;

Το 'sudo' είναι ένα root binary setuid, το οποίο εκτελεί εντολές root για λογαριασμό εξουσιοδοτημένων χρηστών και οι χρήστες πρέπει να εισάγουν τον δικό τους κωδικό πρόσβασης για να το εκτελέσουν εντολή συστήματος ακολουθούμενη από "sudo".

Ποιος μπορεί να εκτελέσει το «sudo»;

Μπορούμε να εκτελέσουμε το ‘/usr/sbin/visudo’ για να προσθέσουμε/αφαιρέσουμε τη λίστα των χρηστών που μπορούν να εκτελέσουν το ‘sudo‘.

sudo /usr/sbin/visudo

Ένα στιγμιότυπο οθόνης του αρχείου «/usr/sbin/visudo», μοιάζει κάπως έτσι:

Η λίστα sudo μοιάζει με την παρακάτω συμβολοσειρά, από προεπιλογή:

root ALL=(ALL) ALL

Σημείωση: Πρέπει να είστε root για να επεξεργαστείτε το /usr/sbin/visudo αρχείο.

Παραχώρηση πρόσβασης sudo

Σε πολλές περιπτώσεις, ο Διαχειριστής συστήματος, ειδικά νέος στο πεδίο, βρίσκει τη συμβολοσειρά "root ALL=(ALL) ALL " ως πρότυπο και παραχωρεί απεριόριστη πρόσβαση σε άλλους που μπορεί να δυνητικά πολύ επιβλαβές.

Η επεξεργασία του αρχείου «/usr/sbin/visudo» σε κάτι σαν το παρακάτω μοτίβο μπορεί να είναι πραγματικά πολύ επικίνδυνη, εκτός εάν πιστεύετε πλήρως όλους τους χρήστες που αναφέρονται.

root ALL=(ALL) ALL
adam ALL=(ALL) ALL
tom ALL=(ALL) ALL
mark ALL=(ALL) ALL

Παράμετροι του sudo

Ένα σωστά διαμορφωμένο ‘sudo’ είναι πολύ ευέλικτο και ο αριθμός των εντολών που πρέπει να εκτελεστούν μπορεί να ρυθμιστεί με ακρίβεια.

Η σύνταξη της διαμορφωμένης γραμμής "sudo" είναι:

User_name Machine_name=(Effective_user) command

Η παραπάνω Σύνταξη μπορεί να χωριστεί σε τέσσερα μέρη:

  1. Όνομα_χρήστη: Αυτό είναι το όνομα του χρήστη "sudo".
  2. Όνομα_μηχανήματος: Αυτό είναι το όνομα κεντρικού υπολογιστή, στο οποίο είναι έγκυρη η εντολή "sudo". Χρήσιμο όταν έχετε πολλά κεντρικά μηχανήματα.
  3. (Effective_user): Ο "Αποτελεσματικός χρήστης" που επιτρέπεται να εκτελεί τις εντολές. Αυτή η στήλη σάς επιτρέπει να επιτρέπετε στους χρήστες να εκτελούν εντολές συστήματος.
  4. Εντολή: εντολή ή ένα σύνολο εντολών που μπορεί να εκτελέσει ο χρήστης.

Προτεινόμενη ανάγνωση: 10 χρήσιμες διαμορφώσεις Sudoers για τη ρύθμιση του "sudo" στο Linux

Μερικές από τις Καταστάσεις και η αντίστοιχη γραμμή «sudo»:

Ε1. Έχετε ένα σήμα χρήστη που είναι Διαχειριστής βάσης δεδομένων. Υποτίθεται ότι του παρέχετε όλη την πρόσβαση μόνο στον Διακομιστή Βάσης Δεδομένων (beta.database_server.com) και όχι σε κανέναν κεντρικό υπολογιστή.

Για την παραπάνω κατάσταση, η γραμμή «sudo» μπορεί να γραφτεί ως:

mark beta.database_server.com=(ALL) ALL

Q2. Έχετε έναν χρήστη 'tom' που υποτίθεται ότι εκτελεί εντολή συστήματος ως χρήστης εκτός root στον ίδιο διακομιστή βάσης δεδομένων, παραπάνω Επεξήγηση.

Για την παραπάνω κατάσταση, η γραμμή «sudo» μπορεί να γραφτεί ως:

mark beta.database_server.com=(tom) ALL

Q3. Έχετε έναν χρήστη sudo "cat" που υποτίθεται ότι εκτελεί την εντολή " σκύλος μόνο.

Για να εφαρμόσουμε την παραπάνω κατάσταση, μπορούμε να γράψουμε «sudo» ως:

mark beta.database_server.com=(cat) dog

Ε4. Τι γίνεται εάν ο χρήστης πρέπει να λάβει πολλές εντολές;

Εάν ο αριθμός των εντολών που υποτίθεται ότι εκτελεί ο χρήστης είναι κάτω από 10, μπορούμε να τοποθετήσουμε όλες τις εντολές δίπλα, με λευκό κενό μεταξύ τους, όπως φαίνεται παρακάτω:

mark beta.database_server.com=(cat) /usr/bin/command1 /usr/sbin/command2 /usr/sbin/command3 ...

Εάν αυτή η λίστα εντολών ποικίλλει ανάλογα με το εύρος, όπου κυριολεκτικά δεν είναι δυνατό να πληκτρολογήσετε κάθε εντολή με μη αυτόματο τρόπο, πρέπει να χρησιμοποιήσουμε ψευδώνυμο. Ψευδώνυμα! Ναι, το βοηθητικό πρόγραμμα Linux όπου μια μεγάλη εντολή ή μια λίστα εντολών μπορεί να αναφέρεται ως μια μικρή και εύκολη λέξη-κλειδί.

Μερικά παραδείγματα alias, τα οποία μπορούν να χρησιμοποιηθούν στη θέση της καταχώρισης στο αρχείο διαμόρφωσης «sudo».

User_Alias ADMINS=tom,jerry,adam
user_Alias WEBMASTER=henry,mark
WEBMASTERS WEBSERVERS=(www) APACHE
Cmnd_Alias PROC=/bin/kill,/bin/killall, /usr/bin/top

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

%apacheadmin WEBSERVERS=(www) APACHE

Q5. Τι θα λέγατε να εκτελέσετε μια εντολή "sudo" χωρίς να εισαγάγετε κωδικό πρόσβασης;

Μπορούμε να εκτελέσουμε μια εντολή "sudo" χωρίς να εισάγουμε κωδικό πρόσβασης χρησιμοποιώντας τη σημαία "NOPASSWD".

adam ALL=(ALL) NOPASSWD: PROCS

Εδώ ο χρήστης «adam» μπορεί να εκτελέσει όλες τις εντολές με ψευδώνυμο στο «PROCS », χωρίς να εισάγει κωδικό πρόσβασης.

Προτεινόμενη ανάγνωση: Αφήστε το Sudo να σας προσβάλει όταν εισάγετε λανθασμένο κωδικό πρόσβασης

Το "sudo " σάς παρέχει ένα ισχυρό και ασφαλές περιβάλλον με μεγάλη ευελιξία σε σύγκριση με το "su". Επιπλέον, η διαμόρφωση "sudo " είναι εύκολη. Ορισμένες διανομές Linux έχουν το "sudo " ενεργοποιημένο από προεπιλογή, ενώ οι περισσότερες από τις σημερινές διανομές χρειάζονται να το ενεργοποιήσετε ως Μέτρο ασφαλείας.

Για να προσθέσετε έναν χρήστη (bob) στο sudo, απλώς εκτελέστε την παρακάτω εντολή ως root.

adduser bob sudo

Αυτα για τωρα. Θα είμαι ξανά εδώ με άλλο ένα ενδιαφέρον άρθρο. Μέχρι τότε μείνετε συντονισμένοι και συνδεδεμένοι στο Tecmint. Μην ξεχάσετε να μας δώσετε τα πολύτιμα σχόλιά σας στην ενότητα σχολίων μας.