Ariadne Conill, δημιουργός του προγράμματος αναπαραγωγής μουσικής Audacious και του σύνθετου διακομιστή Wayback, εκκινητής πρωτοκόλλου IRCv3 και επικεφαλής της ομάδας ασφαλείας της Alpine Linux, развивает инструментарий capsudo для выполнению команд с повышенными привилегиями. В отличие от sudo в новом проекте задействована модель предоставления полномочий на уровне отдельных объектов (object-capability). Код проекта написан на языке Си и распространяется под лицензией MIT.
Μεταξύ των ελλείψεων του sudo που επιχειρεί να αντιμετωπίσει το νέο κιτ εργαλείων είναι η παράδοσή του ως εκτελέσιμο αρχείο με τη σημαία root suid, η μονολιθική αρχιτεκτονική χωρίς διαχωρισμό δικαιωμάτων (όλες οι λειτουργίες του sudo εκτελούνται με δικαιώματα root), η σύνθετη, μη ιεραρχική και μη δηλωτική μορφή διαμόρφωσης, η υποστήριξη για πρόσθετα που εκτελούνται απευθείας σε μια προνομιούχα διεργασία και η υπερβολικά φορτωμένη βάση κώδικα με μεγάλη επιφάνεια επίθεσης.
Αντί να χρησιμοποιεί ένα μονολιθικό βοηθητικό πρόγραμμα sudo, το capsudo χρησιμοποιεί ένα συνδυασμό μιας διεργασίας παρασκηνίου με προνόμια, του capsudod, και ενός βοηθητικού προγράμματος χωρίς προνόμια, του capsudo. Η επικοινωνία μεταξύ του capsudod και του capsudo πραγματοποιείται μέσω ενός αρχείου socket και η εκτέλεση εντολών με προνόμια καθορίζεται από τα δικαιώματα πρόσβασης της υποδοχής. Μόνο οι χρήστες με πρόσβαση στην υποδοχή μπορούν να εκτελέσουν εντολές με προνόμια που είναι συνδεδεμένες με αυτήν. Ένα μειονέκτημα αυτής της προσέγγισης είναι η ανάγκη για μια ξεχωριστή διεργασία παρασκηνίου για τον συντονισμό της εκτέλεσης κάθε λειτουργίας με προνόμια.
Για παράδειγμα, για να εκχωρήσει σε έναν χρήστη τη δυνατότητα να εκτελέσει το βοηθητικό πρόγραμμα επανεκκίνησης με αυξημένα δικαιώματα, ένας διαχειριστής μπορεί να δημιουργήσει μια υποδοχή "reboot-capability" στον αρχικό κατάλογο του χρήστη, να την συνδέσει με το βοηθητικό πρόγραμμα επανεκκίνησης και να περιορίσει την πρόσβαση εγγραφής στην υποδοχή στον επιθυμητό χρήστη. Ο χρήστης μπορεί στη συνέχεια να εκτελέσει την εντολή επανεκκίνησης εκτελώντας την εντολή "capsudo -s reboot-capability". # capsudod -s /home/user/reboot-capability reboot & # chown user:user /home/user/reboot-capability # chmod 700 /home/user/reboot-capability εκτελέστε την εντολή reboot με την εντολή: $ capsudo -s /home/user/reboot-capability
Για να αναπαράγετε τη συμπεριφορά του sudo και να επιτρέψετε σε οποιαδήποτε εφαρμογή να εκτελείται με αυξημένα δικαιώματα για τους χρήστες στην ομάδα wheel, μπορείτε να χρησιμοποιήσετε τις ακόλουθες ρυθμίσεις: # mkdir -p /run/cap # capsudod -s /run/cap/sudo-capability & # chgrp wheel /run/cap/sudo-capability # chmod 770 /run/cap/sudo-capability $ capsudo -s /run/cap/sudo-capability
Παράδειγμα ρυθμίσεων για μια προνομιακή εκτέλεση της εντολής /usr/sbin/mount /dev/sdb1: # capsudod -s /run/user/mountd/cap/mount-dev-sdb1 — /usr/sbin/mount /dev/sdb1 … ορισμός δικαιωμάτων πρόσβασης στην υποδοχή /run/user/mountd/cap/mount-dev-sdb1 τοποθέτηση του /dev/sdb1 στο /media/usb ως χρήστης χωρίς προνόμια $ capsudo -s /run/user/mountd/cap/mount-dev-sdb1 — /media/usb
Πηγή: opennet.ru
