[Ubuntu] Αφαίρεση του gksu από τη 18.04 LTS

Ποιά η προτεινόμενη εναλλακτική

Αυτή η μετάβαση, δηλαδή η πλήρης κατάργηση του gksu από το Ubuntu έχει ξεκινήσει κάμποσες εκδόσεις πριν. Συγκεκριμένα από τη 13.10 όπου το από προ-επιλογή εγκατεστημένο gksu έπαψε να υφίσταται. Μέχρι και σήμερα βέβαια οι χρήστες είχαν την επιλογή της εγκατάστασης από τα αποθετήρια, αφού εκεί ήταν και είναι ακόμη διαθέσιμο.
Στο άμεσο μέλλον όμως, προβλέπεται να αφαιρεθεί εντελώς από τα αποθετήρια. Επίσης, παρακάτω θα δούμε ποια είναι η προτεινόμενη από τους Developers εναλλακτική.

Τι είναι το gksu

Το gksu είναι στην ουσία ένα Graphical Front-End του sudo. Το sudo είναι το πρόγραμμα εκείνο που μας δίνει προσωρινά και με ασφάλεια αυξημένα δικαιώματα (root) ώστε να επιτύχουμε διάφορα tasks που τα απαιτούν. Το πακέτο gksu περιλαμβάνει δυο Front-End, την gksu και την gksudo, με τη δεύτερη μέχρι πρωτίστως να ήταν η προτεινόμενη για όλες τις γραφικές εφαρμογές που ήθελε κάποιος χρήστης να τρέξει με αυξημένα δικαιώματα.
Με αυτό τον τρόπο, όταν ο χρήστης έτρεχε για παράδειγμα την εντολή

gksudo gedit /etc/default/grub

ένα παράθυρο διαλόγου άνοιγε ζητώντας του τον κωδικό, ώστε να του παραχωρήσει αυξημένα δικαιώματα για την επεξεργασία του συγκεκριμένου αρχείου.

Παρακάτω βλέπουμε την έκδοση gksu που ακόμη είναι διαθέσιμη στο Ubuntu 18.04 (beta 2).

gksu με PolicyKit

Εδώ και κάποια χρόνια (2-3 περίπου) <a href="https://wiki.gnome.org/Attic/gksu” _target=_blank">το GNOME είχε προτείνει την αλλαγή και αντικατάσταση του παραδοσιακού gksu με μια νεότερη έκδοση η οποία θα χρησιμοποιούσε το PolicyKit Framework. Το πρόβλημα ήταν ότι κάποιες εφαρμογές έπρεπε να γραφτούν ξανά ώστε να λειτουργούν σωστά με αυτή την αλλαγή.
Ωστόσο, αυτή η αλλαγή δεν προξένησε το ενδιαφέρον των χρηστών μιας και το gksu ως πακέτο ήταν και παραμένει διαθέσιμο για εγκατάσταση και χρήση.

pkexec αντί gksu

Άλλη μια πρόταση για την αντικατάσταση του gksu και ως εναλλακτική ήταν το pkexec . Δεν θα επεκταθώ εδώ περαιτέρω, μιας και τότε είχα γράψει σχετικό άρθρο το οποίο μπορείτε να βρείτε εδώ. Το συμπέρασμα είναι ότι η pkexec αποδείχτηκε πιο περίπλοκη και δύσκολη στην εφαρμογή.

Γιατί Front-End και όχι απευθείας sudo;

Στο ίδιο άρθρο αναφέρω και για πιο λόγο κάποιος πρέπει να χρησιμοποιήσει gksudo/pkexec ή κάποια άλλη εναλλακτική μέθοδο αντί του παραδοσιακού sudo σε ότι αφορά γραφικές εφαρμογές. Παραθέτω εδώ σχετικό quote και από το Ubuntu Documentation.

You should never use normal sudo to start graphical applications as root. You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets HOME=~root, and copies .Xauthority to a tmp directory. This prevents files in your home directory becoming owned by root.

Σε απλά ελληνικά, υπάρχει η πιθανότητα εάν ανοίξουμε κάποια γραφική εφαρμογή με αυτό τον τρόπο όλα τα αρχεία που αυτή περιλαμβάνει να αλλάξουν ιδιοκτήτη, και ο νέος ιδιοκτήτης να είναι ο χρήστης root. Οι πιθανότητες είναι λιγότερες να συμβεί κάτι τέτοιο όταν μιλάμε για έναν απλό επεξεργαστή κειμένου, πχ gedit και περισσότερες όταν μιλάμε για έναν διαχειριστή αρχείων και φακέλων όπως ο nautilus.

Από το Ubuntu 18.04 θα αφαιρεθεί εντελώς το gksu

Σε μια αναφορά σφάλματος [Bug 1740618] βλέπουμε τη διαδικασία αφαίρεσης του πακέτου gksu από το Ubuntu 18.04.

Προτεινόμενος εναλλακτικός τρόπος

Στην ίδια αναφορά σφάλματος αναφέρεται ο προτεινόμενος εναλλακτικός τρόπος για tasks που απαιτούν αυξημένα δικαιώματα. Μπορούμε να χρησιμοποιούμε τον Nautilus με το prefix admin:/// όποτε θελήσουμε αυξημένα δικαιώματα.
Παρακάτω βλέπουμε πως επιτυγχάνεται με αυτό τον τρόπο η επεξεργασία του αρχείου grub στην τοποθεσία /etc/default/

Ανοίγωντας τον Nautilus επιλέγουμε “Other Locations”

Κάτω στο “Connect to server” γράφουμε την τοποθεσία με το prefix admin:/// . Στη συγκεκριμένη περίπτωση admin:///etc/default διότι εκεί μέσα βρίσκεται το αρχείο grub που θέλουμε να επεξεργαστούμε. Πατάμε Conect.

Ένα παράθυρο διαλόγου θα απαιτήσει τον κωδικό μας ώστε να λάβουμε αυξημένα δικαιώματα στη συγκεκριμένη τοποθεσία.

Επιλέγουμε το αρχείο grub και είτε πατάμε διπλό κλικ, είτε δεξί κλικ και Open With Text Editor.

Ένα νέο παράθυρο διαλόγου μας ζητά εκ νέου τον κωδικό μας, ώστε να αποκτήσουμε το δικαίωμα επεξεργασίας του αρχείου.

Στο τέλος έχουμε το αρχείο έτοιμο προς επεξεργασία.

Δεν μπορώ απλά να δώσω ένα sudo gedit /etc/default/grub να τελειώνουμε;

Φυσικά και μπορείς. Όπως άλλωστε αναφέρθηκε και παραπάνω η χρήση του παραδοσιακού sudo με έναν επεξεργαστή κειμένου πιθανότατα δεν θα δημιουργήσει κάποιο πρόβλημα. Αν όμως θελήσεις να διαγράψεις ή να δημιουργήσεις κάποιο αρχείο ή φάκελο, τότε είναι καλύτερα με τον παραπάνω τρόπο παρά με sudo nautilus.

Πρέπει να πηγαίνω τα βήματα ένα-ένα;

Όχι. Αυτό δείξαμε εδώ για να δούμε πως λειτουργεί. Μπορεί κάποιος να γράψει κατευθείαν

admin:///etc/default/grub

και θα ανοίξει το αρχείο με τον προ-επιλεγμένο editor (στο Ubuntu τον Gedit).

Γιατί ζητά δυο φορές τον κωδικό;

Η πρώτη φορά είναι για να αποκτήσουμε δικαιώματα επεξεργασίας μέσα στον κατάλογο που βρισκόμαστε (στο παράδειμα /etc/default) και η δεύτερη για δικαιώματα επεξεργασίας του συγκεκριμένου αρχείου (στο παράδειγμα grub).
Αν χρησιμοποιήσετε τον απευθείας τρόπο(admin:///etc/default/grub) , που αυτόν λογικά θα χρησιμοποιήσει κάποιος, τότε θα ζητήσει μια φορά τον κωδικό.

Αν θέλω να τρέξω κάποια άλλη εφαρμογή ως root;

Δεν θέλεις και δεν χρειάζεται. Οι εφαρμογές που πρέπει να τρέχουν με αυξημένα δικαιώματα είναι κατασκευασμένες έτσι ώστε να εμφανίζουν το σχετικό παράθυρο διαλόγου με το που τις ανοίξει κάποιος.
Στη παραπάνω δημοσίευση δείξαμε δυο από τις βασικότερες και δημοφιλέστερες γραφικές εφαρμογές οι οποίες μπορούν να χρησιμοποιηθούν κι έτσι, κι αλλιώς. Δηλαδή και ως απλός χρήστης και ως root.
Μη σου μπαίνουν ιδέες να τρέξεις τον Firefox ή τον Chrome ως root ή το GIMP, δεν υπάρχει λόγος και το μόνο που θα δημιουργήσεις είναι πρόβλημα. Όμως, το Gparted για παράδειγμα το οποίο είναι κατασκευασμένο να λειτουργεί με αυξημένα δικαιώματα θα σου ζητήσει από μόνο του κωδικό.
Αν ωστόσο επιμένεις να πειραματίζεσαι τότε η γραφικού περιβάλλοντος λύση εδώ είναι το Alt+F2 και έπειτα πληκτρολογείς pkexec .... και το όνομα της εφαρμογής που θέλεις.

Από το τερματικό είναι πιο εύκολο.

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


Until next time ... "Keep Your Mind in a Constant State of Openness"