Στιγμιότυπο από sudo στα Ubuntu
| |
Γενικά | |
---|---|
Δημιουργοί | Οι Robert Coggeshall και Cliff Spencer δημιούργησαν την αρχική έκδοση του προγράμματος. Σήμερα αναπτύσσεται από τον Todd C. Miller |
Είδος | λογισμικό ασφαλείας, ελεύθερο και ανοιχτού κώδικα λογισμικό |
Διανομή | |
Έκδοση | 1.9.16p1 (12 Νοέμβριος 2024)[1] |
Λειτουργικά | στυλ Unix |
Ανάπτυξη | |
Υπευθ. ανάπτυξης | Todd C. Miller |
Γραμμένο σε | C |
Άδεια χρήσης | Άδεια ISC |
Σύνδεσμοι | |
Επίσημος ιστότοπος | |
https://www.sudo.ws/ | |
Αποθετήριο κώδικα | |
https://github.com/sudo-project/sudo |
Το sudo (/ˈsuːduː/[2] ή /ˈsuːdoʊ/[2][3]) είναι πρόγραμμα για λειτουργικά συστήματα της οικογένειας του Unix το οποίο επιτρέπει στον χρήστη να εκτελέσει άλλα προγράμματα με τα δικαιώματα ασφαλείας ενός άλλου χρήστη (συνήθως του superuser ή root).[4] Το όνομα προέρχεται από την αγγλική φράση substitute user do, που έχει την σημασία του «να κάνεις κάτι σαν διαφορετικός χρήστης».[5]
Οι Robert Coggeshall και Cliff Spencer δημιούργησαν την αρχική έκδοση του sudo στις αρχές της δεκαετίας του 1980, στο Τμήμα Επιστήμης των Υπολογιστών του Κρατικού Πανεπιστημίου της Νέας Υόρκης στο Μπάφαλο (State University of New York at Buffalo, SUNY Buffalo).[6] Η τρέχουσα έκδοση του προγράμματος αναπτύσσεται και συντηρείται από τον Todd C. Miller και διανέμεται υπό τους όρους μια άδειας τύπου ISC.[6]
Σε αντίθεση με το παρόμοιο su, οι χρήστες χρησιμοποιούν τον δικό τους κωδικό αντί για τον κωδικό του root. Μετά τον έλεγχο των στοιχείων και εφόσον επιτρέπεται η πρόσβαση στον χρήστη σύμφωνα με το αρχείο ρυθμίσεων (αγγλ. configuration file) το σύστημα θα καλέσει την εντολή ή το πρόγραμμα που ζήτησε ο χρήστης. Το αρχείο ρυθμίσεων παρέχει πολλές επιλογές, όπως να μην απαιτείται χρήση κωδικού για την εκτέλεση συγκεκριμένων εντολών, να απαιτείται ένας κωδικός ανά χρήστη ή ομάδα χρηστών, να απαιτείται η εισαγωγή του κωδικού για κάθε εντολή ή να μην απαιτείται καθόλου η χρήση του και άλλες. Είναι δυνατή η ρύθμιση προκειμένου να χρησιμοποιούνται ορίσματα και να καλούνται πολλές εντολές μαζί και επίσης υποστηρίζεται η χρήση εντολών με regular expressions.
Το αρχείο ρυθμίσεων βρίσκεται συνήθως στην θέση /usr/local/etc/sudoers
ή την /etc/sudoers
. Σε κάποια συστήματα (ορισμένες διανομές Linux και το Mac OS X.[7][8]) το sudo έχει αντικαταστήσει πλήρως το login του superuser για την εκτέλεση εργασιών που απαιτούν δικαιώματα διαχειριστή. Επίσης μπορεί να χρησιμοποιηθεί σε μοντέλα που βασίζονται στην παροχή δικαιωμάτων στον χρήστη με βάση τον ρόλο (Role-Based Access Control, RBAC).[9]
Το visudo είναι μια εφαρμογή που επιτρέπει την επεξεργασία του αρχείο ρυθμίσεων μέσω της διεπαφής του vi ή κάποιου άλλου επεξεργαστή. Με αυτό τον τρόπο η επεξεργασία γίνεται πιο ασφαλής και επιπλέον επιτρέπεται η διενέργεια πολλών επεξεργασιών παράλληλα, γίνονται βασικοί έλεγχοι εγκυρότητας των δηλώσεων (sanity checks) και έλεγχοι για σφάλματα.[10] Υπάρχουν πολλά frontend για το sudo που παρέχουν περιβάλλον Γραφικής Διεπαφής Χρήστη (GUI) και επιτρέπουν την ευκολότερη ρύθμιση από τους χρήστες. Σε αυτά συγκαταλέγονται τα kdesudo και gksudo.
Σε Microsoft Windows υπάρχει η εντολή runas που έχει παρόμοια λειτουργικότητα με το sudo αλλά δεν μπορεί να περάσει στο πρόγραμμα που καλεί τον τρέχοντα φάκελο, μεταβλητές περιβάλλοντος ή μακροσκελείς γραμμές εντολών. Ενώ επιτρέπει την εκτέλεση προγραμμάτων με τα δικαιώματα άλλου χρήστη, δεν επιτρέπει την προσωρινή αναβάθμιση των δικαιωμάτων του χρήστη συνολικά -όπως συμβαίνει με το sudo. Μια πραγματική υλοποίηση που παρέχει όλη την λειτουργικότητα των su και sudo για Windows έχει υλοποιηθεί στο Hamilton C shell. Άλλα προγράμματα που επιτρέπουν την προσωρινή αναβάθμιση των δικαιωμάτων του χρήστη ώστε να μπορεί να πραγματοποιήσει διαχειριστικές εργασίες προσωρινά είναι το User Account Control σε Microsoft Windows και τα Authorization Services στο Mac OS X.[11]