Στο σημερινό tip θα δούμε πως «φωνάζοντας» (γράφοντας κεφαλαία) στο τερματικό, μπορούμε να εκτελούμε εντολές χωρίς την χρήση sudo
.
Όπως γνωρίζετε προφανώς, όταν χρησιμοποιείτε τερματικό για να εκτελέσουμε εντολές που απαιτούν δικαιώματα διαχειριστή, προσθέτουμε το sudo
στην αρχή της εντολής.
Ένα project στο github, ήρθε να προσθέσει την δυνατότητα να μπορούμε να γράφουμε με κεφαλαία την εντολή που θέλουμε να τρέξει με δικαιώματα διαχειριστή ώστε να μην χρειάζεται η προσθήκη sudo
.
Σημειώστε ότι δεν θα παρακάμψει το συνθηματικό που χρειάζεται να βάλετε για να τρέξετε αυτές τις εντολές. Απλά θα τρέξει την εντολή με το sudo.
Τέλος, όπως ξέρετε, υπάρχει η δυνατότητα να τρέξουμε sudo !!
όταν θέλουμε να τρέξουμε την αμέσως προηγούμενή μας εντολή με δικαιώματα διαχειριστή. Με το σημερινό hack, απλά θα φωνάξουμε με κεφαλαία SUDO
και θα τρέξει την εντολή sudo !!
.
Μέθοδος 1: Χειροκίνητη ενεργοποίηση
Ανοίξτε με τον αγαπημένο σας text editor το αρχείο .bashrc
nano ~/.bashrc
Έπειτα στο τέλος του αρχείου προσθέστε τον παρακάτω κώδικα:
# SUDO - shout at bash to su commands
# Distributed under GNU GPLv2, @jthistle on github
shopt -s expand_aliases
IFS_=${IFS}
IFS=":" read -ra PATHS <<< "$PATH"
for i in "${PATHS[@]}"; do
for j in $( ls "$i" ); do
if [ ${j^^} != $j ] && [ $j != "sudo" ]; then
alias ${j^^}="sudo $j"
fi
done
done
alias SUDO='sudo $(history -p !!)'
IFS=${IFS_}
# end SUDO
Αποθηκεύστε και κλείστε το αρχείο (με το nano είναι Ctrl+S και Ctrl+X)
Κλείστε και ανοίξτε πάλι το τερματικό σας και δοκιμάστε να εκτελέσετε μια εντολή που θα χρειαζόταν π.χ. να βάλετε sudo
:
ΝΑΝΟ /etc/hosts
θα σας ζητηθεί ο κωδικός του sudo
παρόλο που δεν το γράψατε.
Μέθοδος 2: Αυτόματη εγκατάσταση
Εδώ θα χρησιμοποιήσουμε απευθείας το αποθετήριο που έχει φτιάξει ο δημιουργός του συγκεκρημένου hack
. Αντιγράφουμε το αποθετήριο στο home φάκελό μας:
git clone https://github.com/jthistle/SUDO.git ~/SUDO
Μπαίνουμε στον φάκελο και τρέχουμε τον εγκαταστάτη, ο οποίος θα λάβει πρώτα ένα αντίγραφο ασφαλείας του .bashrc
και θα το αποθηκεύσει ως .bashrc.old
ώστε να μπορείτε να το επαναφέρετε αν κάτι πάει στραβά. :
cd ~/SUDO
./installer.sh
Η εκτέλεση αυτού του
installer
στο μέλλον, θα σας επιτρέψει επίσης να ενημερώσετε σε νέες εκδόσεις του συγκεκριμένουhack
.
Κλείστε και ανοίξτε πάλι το τερματικό σας και δοκιμάστε να εκτελέσετε μια εντολή που θα χρειαζόταν π.χ. να βάλετε sudo
:
ΝΑΝΟ /etc/hosts
θα σας ζητηθεί το συνθηματικό του sudo
παρόλο που δεν το γράψατε στην αρχή της εντολής.
Επίλογος
Δεν είναι κάτι επαναστατικό φυσικά, απλά όλοι έχουμε γράψει και κάποια αστεία alias
στο σύστημά μας ή κάποια μικρά hacks ως αλατοπίπερο στο τερματικό μας.
Παραπομπές:
- Order bash to do things by shouting (github)
Θα το ρίξω σε osx τερματικό και θα δώσω results εδώ! ;)
Δώσε δώσε! Θέλω τώρα να το κάνω να δουλέψει σε zsh:)
Είχα σκεφτεί να κάνω κάτι τέτοιο, αλλά είχα υπόψιν μου να είναι μόνο το πρώτο γραμμα κεφαλαίο. Και ψαχνόμουν από πλευράς UI.
O τρόπος που σκεφτόμουν να το κάνω ήταν με τον μηχανισμό του command-not-found και με whitelist, αντί για χρήση alias.
Η λύση αυτή είναι σαφώς καλύτερη από πλευράς ui πάντως
Ναι όντως, πολύ απλή υλοποίηση έχει κάνει ο τύπος