Ιστορικό
Εγκατάσταση
Διαμόρφωση
Χρήση
Βέλτιστες πρακτικές
Συμβουλές και κόλπα
Ιστορικό
Η εναλλακτική λύση του OpenBSD sudo
είναι το doas
, αν και δεν λειτουργεί με τον ίδιο τρόπο όπως το sudo και απαιτεί κάποια διαμόρφωση. Είναι ένα αρκτικόλεξο για το "dedicated openbsd application subexecutor". Το OpenBSD 5.8, που κυκλοφόρησε το 2015, ήταν το πρώτο που συμπεριέλαβε doas
. Δημιουργήθηκε από τον Ted Unangst αφού δεν ήταν ικανοποιημένος με την πολυπλοκότητα του sudo και είχε προβλήματα με την προεπιλεγμένη διαμόρφωση sudo.
Η doas
εντολή είναι απλή από το σχεδιασμό και δεν περιέχει προηγμένα χαρακτηριστικά που απαιτούνται για περίτεχνες υποδομές sysadmin. Για τους περισσότερους ανθρώπους, είναι υπεραρκετό. Εάν χρειάζεστε sudo
, εγκαταστήστε το pkg_add sudo
ως root.
Εγκατάσταση
Το OpenBSD έκδοση 5.8 και νεότερη έχει doas
προεγκατεστημένη.
Διαμόρφωση
Για να δώσετε στους χρήστες της ομάδας τροχών πρόσβαση στο doas
, προσθέστε τα ακόλουθα στο /etc/doas.conf
. Θα χρειαστείτε πρόσβαση root για να επεξεργαστείτε αυτό το αρχείο.
permit :wheel
Αυτό θα δώσει σε όλους τους χρήστες της ομάδας τροχών το δικαίωμα να εκτελούν εντολές όπως οποιοσδήποτε χρήστης.
Εάν θέλετε οι χρήστες να μπορούν να εισάγουν τον κωδικό πρόσβασής τους μία φορά και μετά να μην χρειάζεται να τον εισάγουν για λίγο, χρησιμοποιήστε την persist
επιλογή. Ακολουθεί ένα παράδειγμα που δίνει δικαιώματα μόνο στην ομάδα τροχών:
permit persist :wheel
Μπορείτε να χρησιμοποιήσετε την nopass
επιλογή εάν θέλετε να μην χρειαστεί ποτέ να εισάγουν τον κωδικό πρόσβασής τους:
permit nopass :wheel
Εάν θέλετε ο χρήστης "mynewuser" να έχει δικαιώματα διαχειριστή, μπορείτε είτε να τα προσθέσετε στην ομάδα τροχών εκτελώντας usermod -G wheel mynewuser
ως root είτε να προσθέσετε μια γραμμή στο δικό σας, /etc/doas.conf
ώστε να μοιάζει κάπως ως εξής:
permit nopass :wheel
permit nopass mynewuser
Αυτό το παράδειγμα προϋποθέτει ότι δεν χρειάζεται οι χρήστες σας να εισάγουν κωδικό πρόσβασης όταν χρησιμοποιείτε doas
. Εάν θέλετε να το ρυθμίσετε έτσι ώστε το mynewuser να επιτρέπεται να εκτελεί εντολές μόνο ως χρήστης www, η διαμόρφωση θα είναι η εξής:
permit nopass :wheel
permit nopass mynewuser as www
Εάν θέλετε το mynewuser να μπορεί να χρησιμοποιεί μόνο την εντολή "vim" με doas, χρησιμοποιήστε την ακόλουθη διαμόρφωση:
permit nopass :wheel
permit nopass mynewuser as www cmd vim
Υπάρχουν και άλλες επιλογές διαμόρφωσης, αλλά αυτές που καλύπτονται εδώ είναι οι πιο συνηθισμένες. Εάν θέλετε να διαβάσετε περισσότερα, μπορείτε να χρησιμοποιήσετε την εντολή man doas.conf
για να διαβάσετε τη σελίδα διαχείρισης doas.conf(5).
Δοκιμή αρχείων διαμόρφωσης
Για να δοκιμάσετε ένα αρχείο διαμόρφωσης, χρησιμοποιήστε την doas -C /etc/doas.conf
εντολή. Εάν δώσετε μια εντολή μετά, π.χ. doas -C /etc/doas.conf vim
, θα σας πει εάν έχετε άδεια να εκτελέσετε μια εντολή ή όχι χωρίς να προσπαθήσετε να εκτελέσετε την εντολή.
Χρήση
Ένας χρήστης μπορεί να εκτελέσει την εντολή echo "test"
ως root χρησιμοποιώντας την εντολή:
doas echo "test"
Ένας χρήστης που έχει δικαιώματα χρήσης doas για να ανυψωθεί στον χρήστη "www" μπορεί να εκτελέσει την εντολή vim /var/www/http/index.html
ως χρήστης "www" χρησιμοποιώντας την εντολή:
doas -u www vim index.html
Αυτό είναι χρήσιμο για κάποιον που διαχειρίζεται τον διακομιστή ιστού αλλά δεν έχει πλήρη δικαιώματα υπερχρήστη.
Βέλτιστες πρακτικές
Συνιστάται ιδιαίτερα να χρησιμοποιείτε την άδεια αντί να την απορρίπτετε όπου είναι δυνατόν. Εάν αρνηθείτε σε έναν χρήστη να χρησιμοποιήσει μια συγκεκριμένη εντολή, ενδέχεται να μπορέσει να ξεφύγει από τη χρήση μιας εναλλακτικής διαδρομής ή ονόματος αυτής της εντολής, εάν υπάρχει. Μπορούν επίσης να αντιγράψουν το εκτελέσιμο αρχείο της εντολής στον αρχικό τους κατάλογο και στη συνέχεια να εκτελέσουν αυτό το εκτελέσιμο αρχείο, καταργώντας έτσι το σύστημα αδειών σας.
Σε γενικές γραμμές, είναι καλύτερη ιδέα να χρησιμοποιήσετε το doas παρά να χρησιμοποιήσετε το su επειδή κανείς δεν χρειάζεται να μοιραστεί τον κωδικό πρόσβασης root. Δεν υπάρχει πιθανότητα κάποιος να το αλλάξει, να το ξεχάσει και να κλειδώσει όλους έξω από το σύστημα εάν ο καθένας χρησιμοποιεί τον δικό του κωδικό πρόσβασης για πρόσβαση root. Τα αρχεία καταγραφής τηρούνται στο /var/log/secure
.
Συμβουλές και κόλπα
Μπορείτε να διατηρήσετε όλες τις μεταβλητές περιβάλλοντος με το keepenv, το οποίο είναι χρήσιμο εάν έχετε ρυθμίσει το πρόγραμμα επεξεργασίας σας σε κάτι και δεν θέλετε να αλλάξει όταν γίνετε άλλος χρήστης. Ακολουθεί ένα παράδειγμα με το mynewuser:
permit nopass keepenv mynewuser
Μερικές φορές, υπάρχουν περιπτώσεις όπου η αντικατάσταση κάθε μεταβλητής περιβάλλοντος μπορεί να σπάσει τα πράγματα, αλλά με το setenv, μπορείτε να επιλέξετε ποιες θα μεταφέρετε. Ακολουθεί ένα παράδειγμα που θα διατηρήσει τον επεξεργαστή σας σε ό,τι θέλετε για χρήση με το git και κάποια άλλα πράγματα.
permit nopass setenv { VISUAL EDITOR } mynewuser
Μπορείτε επίσης να χρησιμοποιήσετε το setenv για να αφαιρέσετε μεταβλητές περιβάλλοντος (βάζοντας μια παύλα πριν από κάθε μία που θέλετε να αφαιρέσετε) ή να τις ορίσετε σε συγκεκριμένα πράγματα με σύμβολο ίσον. Για παράδειγμα, αν θέλετε να αφαιρέσει τη μεταβλητή περιβάλλοντος VISUAL και να ορίσει το EDITOR σε vim, θα χρησιμοποιούσατε αυτήν τη γραμμή διαμόρφωσης:
permit nopass setenv { -VISUAL EDITOR=vim } mynewuser
Εάν doas
έχει θυμηθεί τον κωδικό πρόσβασής σας, μπορείτε να κάνετε doas -L
για να τον ξεχάσετε.