Όπως τα περισσότερα πράγματα στο Linux, η εντολή sudo είναι πολύ διαμορφώσιμη. Μπορείτε να έχετε συγκεκριμένες εντολές εκτέλεσης sudo χωρίς να ζητάτε κωδικό πρόσβασης, να περιορίζετε συγκεκριμένους χρήστες μόνο σε εγκεκριμένες εντολές, να εκτελείτε εντολές καταγραφής με sudo και άλλα.
Η συμπεριφορά της εντολής sudo ελέγχεται από το αρχείο / etc / sudoers στο σύστημά σας. Αυτή η εντολή πρέπει να επεξεργαστεί με την εντολή visudo, η οποία εκτελεί έλεγχο σύνταξης για να διασφαλίσει ότι δεν θα καταστρέψετε κατά λάθος το αρχείο.
Καθορίστε χρήστες με δικαιώματα Sudo
Ο λογαριασμός χρήστη που δημιουργείτε κατά την εγκατάσταση του Ubuntu επισημαίνεται ως λογαριασμός διαχειριστή, πράγμα που σημαίνει ότι μπορεί να χρησιμοποιήσει sudo. Τυχόν πρόσθετοι λογαριασμοί χρηστών που δημιουργείτε μετά την εγκατάσταση μπορεί να είναι είτε λογαριασμοί διαχειριστή είτε τυπικοί χρήστες.
Μπορείτε να ελέγχετε γραφικά τους τύπους λογαριασμών χρηστών από το εργαλείο λογαριασμών χρηστών του Ubuntu. Για να το ανοίξετε, κάντε κλικ στο όνομα χρήστη σας στον πίνακα και επιλέξτε Λογαριασμοί χρηστών ή αναζητήστε λογαριασμούς χρηστών στην παύλα.
Κάντε το Sudo να ξεχάσει τον κωδικό πρόσβασής σας
Από προεπιλογή, το sudo θυμάται τον κωδικό πρόσβασής σας για 15 λεπτά αφού τον πληκτρολογήσετε. Αυτός είναι ο λόγος που πρέπει να πληκτρολογήσετε τον κωδικό πρόσβασής σας μόνο μία φορά κατά την εκτέλεση πολλαπλών εντολών με sudo σε γρήγορη διαδοχή. Εάν πρόκειται να αφήσετε κάποιον άλλο να χρησιμοποιήσει τον υπολογιστή σας και θέλετε το sudo να ζητήσει τον κωδικό πρόσβασης όταν εκτελείται στη συνέχεια, εκτελέστε την ακόλουθη εντολή και το sudo θα ξεχάσει τον κωδικό πρόσβασής σας:
sudo –k
Να ζητάτε πάντα κωδικό πρόσβασης
Εάν προτιμάτε κάθε φορά που χρησιμοποιείτε το sudo - για παράδειγμα, εάν άλλα άτομα έχουν τακτικά πρόσβαση στον υπολογιστή σας - μπορείτε να απενεργοποιήσετε πλήρως τη συμπεριφορά που θυμάται τον κωδικό πρόσβασης.
Αυτή η ρύθμιση, όπως και άλλες ρυθμίσεις sudo, περιέχεται στο αρχείο / etc / sudoers. Εκτελέστε την εντολή visudo σε ένα τερματικό για να ανοίξετε το αρχείο για επεξεργασία:
sudo visudo
Παρά το όνομά της, αυτή η εντολή είναι προεπιλεγμένη στον νέο φιλικό προς τον χρήστη επεξεργαστή nano αντί για τον παραδοσιακό επεξεργαστή vi στο Ubuntu.
Προσθέστε την ακόλουθη γραμμή κάτω από τις άλλες γραμμές προεπιλογών στο αρχείο:
Προεπιλογές timestamp_timeout = 0
Πατήστε Ctrl + O για να αποθηκεύσετε το αρχείο και, στη συνέχεια, πατήστε Ctrl + X για να κλείσετε το Nano. Το Sudo θα σας ζητάει πάντα κωδικό πρόσβασης.
Αλλαγή χρονικού ορίου κωδικού πρόσβασης
Για να ορίσετε διαφορετικό χρονικό όριο κωδικού πρόσβασης - είτε μεγαλύτερο όσο 30 λεπτά ή μικρότερο όπως 5 λεπτά - ακολουθήστε τα παραπάνω βήματα, αλλά χρησιμοποιήστε διαφορετική τιμή για το timestamp_timeout. Ο αριθμός αντιστοιχεί στον αριθμό λεπτών που ο sudo θα θυμάται τον κωδικό πρόσβασής σας. Για να θυμηθείτε το sudo τον κωδικό πρόσβασής σας για 5 λεπτά, προσθέστε την ακόλουθη γραμμή:
Προεπιλογές timestamp_timeout = 5
Ποτέ μην ζητάτε κωδικό πρόσβασης
Μπορείτε επίσης να έχετε το sudo να μην ζητάει ποτέ κωδικό πρόσβασης - όσο είστε συνδεδεμένοι, κάθε εντολή που προθέτεστε με το sudo θα εκτελείται με δικαιώματα root. Για να το κάνετε αυτό, προσθέστε την ακόλουθη γραμμή στο αρχείο sudoers, όπου το όνομα χρήστη είναι το όνομα χρήστη σας:
Όνομα χρήστη ALL = (ALL) NOPASSWD: ALL
Μπορείτε επίσης να αλλάξετε τη γραμμή% sudo - δηλαδή, τη γραμμή που επιτρέπει σε όλους τους χρήστες στην ομάδα sudo (επίσης γνωστή ως χρήστες διαχειριστή) να χρησιμοποιούν sudo - για να μην έχουν όλοι οι χρήστες του Administrator κωδικούς πρόσβασης:
% sudo ALL = (ALL: ALL) NOPASSWD: ALL
Εκτελέστε συγκεκριμένες εντολές χωρίς κωδικό πρόσβασης
Μπορείτε επίσης να καθορίσετε συγκεκριμένες εντολές που δεν θα απαιτούν ποτέ κωδικό πρόσβασης κατά την εκτέλεση με sudo. Αντί να χρησιμοποιήσετε το "ALL" μετά το NOPASSWD παραπάνω, καθορίστε τη θέση των εντολών. Για παράδειγμα, η ακόλουθη γραμμή θα επιτρέπει στον λογαριασμό χρήστη σας να εκτελεί τις εντολές apt-get και shutdown χωρίς κωδικό πρόσβασης.
Όνομα χρήστη ALL = (ALL) NOPASSWD: / usr / bin / apt-get, / sbin / shutdown
Αυτό μπορεί να είναι ιδιαίτερα χρήσιμο κατά την εκτέλεση συγκεκριμένων εντολών με sudo σε ένα σενάριο.
Επιτρέψτε σε έναν χρήστη να εκτελεί μόνο συγκεκριμένες εντολές
Παρόλο που μπορείτε να κάνετε μαύρη λίστα συγκεκριμένων εντολών και να αποτρέψετε τους χρήστες από την εκτέλεση αυτών με sudo, αυτό δεν είναι πολύ αποτελεσματικό. Για παράδειγμα, θα μπορούσατε να καθορίσετε ότι ένας λογαριασμός χρήστη δεν θα μπορεί να εκτελέσει την εντολή τερματισμού με sudo. Αλλά αυτός ο λογαριασμός χρήστη θα μπορούσε να εκτελέσει την εντολή cp με sudo, να δημιουργήσει ένα αντίγραφο της εντολής τερματισμού και να τερματίσει το σύστημα χρησιμοποιώντας το αντίγραφο.
Ένας πιο αποτελεσματικός τρόπος είναι να επιτρέψετε συγκεκριμένες εντολές στη λίστα επιτρεπόμενων. Για παράδειγμα, θα μπορούσατε να δώσετε σε έναν τυπικό λογαριασμό χρήστη άδεια να χρησιμοποιήσετε τις εντολές apt-get και shutdown, αλλά όχι περισσότερο. Για να το κάνετε αυτό, προσθέστε την ακόλουθη γραμμή, όπου ο βασικός χρήστης είναι το όνομα χρήστη του χρήστη:
standarduser ALL = / usr / bin / apt-get, / sbin / shutdown
Η ακόλουθη εντολή θα μας πει ποιες εντολές μπορεί να εκτελέσει ο χρήστης με sudo:
sudo -U standarduser –l
Καταγραφή πρόσβασης Sudo
Μπορείτε να καταγράψετε όλη την πρόσβαση sudo προσθέτοντας την ακόλουθη γραμμή. Το / var / log / sudo είναι απλώς ένα παράδειγμα. μπορείτε να χρησιμοποιήσετε οποιαδήποτε τοποθεσία αρχείου καταγραφής θέλετε.
Προεπιλογές logfile = / var / log / sudo
Δείτε τα περιεχόμενα του αρχείου καταγραφής με μια εντολή όπως αυτή:
sudo cat / var / log / sudo
Λάβετε υπόψη ότι, εάν ένας χρήστης έχει απεριόριστη πρόσβαση sudo, αυτός ο χρήστης έχει τη δυνατότητα να διαγράψει ή να τροποποιήσει τα περιεχόμενα αυτού του αρχείου. Ένας χρήστης θα μπορούσε επίσης να αποκτήσει πρόσβαση σε ένα root prompt με εντολές sudo και run που δεν θα καταγράφονταν. Η δυνατότητα καταγραφής είναι πιο χρήσιμη όταν συνδυάζεται με λογαριασμούς χρηστών που έχουν περιορισμένη πρόσβαση σε ένα υποσύνολο εντολών συστήματος.