ΑΥΤΗ Η ΔΗΜΟΣΙΕΥΣΗ ΕΧΕΙ ΓΙΝΕΙ ΠΑΝΩ ΑΠΟ ΕΝΑ ΧΡΟΝΟ ΠΡΙΝ!
Υπάρχουν πολλοί και διάφοροι τρόποι για να αλλάξουμε το όνομα χρήστη σε Ubuntu. Στη σημερινή δημοσίευση θα δούμε πως μπορούμε να το κάνουμε μέσω κονσόλας τρέχοντας ένα σετ εντολών, αλλάζοντας επίσης το usergroup, το όνομα του προσωπικού μας καταλόγου και το Πραγματικό Όνομα χρήστη.
Ο οδηγός περιμένουμε να λειτουργεί σωστά και σε άλλες διανομές, όμως η κάθε μια από αυτές ίσως έχει τις δικές τις ιδιαιτερότητες που θα πρέπει να λάβουμε υπόψιν.
Κονσόλα και χρήστης Root
Στο Ubuntu υπάρχει μια ιδιαιτερότητα και αυτή είναι ότι ο χρήστης Root «βρίσκεται σε λήθαργο» από προεπιλογή. Αυτό συμβαίνει για λόγους ασφαλείας μιας και το Ubuntu απευθύνεται σε νεοεισερχόμενους, στο κόσμο του Linux, χρήστες. Αντί αυτού, το Ubuntu χρησιμοποιεί το πρόγραμμα sudo το οποίο είναι προεγκατεστημένο και προρυθμισμένο ώστε να μπορεί να αποκτήσει ο χρήστης μας δικαιώματα administrator εάν αυτό χρειαστεί.
Η συγκεκριμένη περίπτωση όμως είναι από τις λίγες στις οποίες η χρήση sudo δεν εξυπηρετεί. Θα πρέπει να συνδεθούμε ως πραγματικός χρήστης root και αυτό θα γίνει μέσω κονσόλας για να μπορέσουμε να δουλέψουμε χωρίς προβλήματα.
Για να ενεργοποιήσουμε το χρήστη Root ανοίγουμε ένα τερματικό και δίνουμε τη παρακάτω εντολή
sudo passwd root
Έχουμε πλέον ενεργοποιήσει το χρήστη root με τον οποίο και θα συνδεθούμε στη κονσόλα.
Οι εντολές για τη πλήρη αλλαγή του username οι οποίες περιλαμβάνουν και αλλαγή γκρουπ, προσωπικού καταλόγου (home directory) και Real Name, είναι 5 στον αριθμό. Για να μη χρειαστεί να τις θυμόμαστε όλες απ’ έξω, πριν συνδεθούμε στη κονσόλα, θα χρησιμοποιήσουμε ένα τρικ.
Η παρακάτω μιας γραμμής εντολή, θα αποθηκεύσει τις εντολές που πρέπει να τρέξουμε μια-μια κάτω από τον προσωπικό κατάλογο του χρήστη root με όνομα αρχείου changeusername.
printf 'killall -u oldusername\nusermod -l new old\ngroupmod -n new old\nusermod -d /home/new -m new\nusermod -c "New Real Name" new\n' | sudo tee /root/changeusername
Μπορούμε να το τσεκάρουμε εάν συνδεθούμε ως χρήστης root σε ένα τερματικό τρέχοντας την εντολή: cat changeusername.
Για να μεταβούμε στη κονσόλα πατάμε το συνδυασμό πλήκτρων Ctrl + Alt + F2
Διαδικασία Αλλαγής
Όταν έχουμε μεταβεί σε κατάσταση κονσόλας και αφού συνδεθούμε ως χρήστης root, καλό είναι να σταματήσουμε τον Display Manager. Έτσι δεν θα αντιμετωπίσουμε προβλήματα όπου κάποια διεργασία θα χρησιμοποιεί το λογαριασμό του χρήστη μας του οποίου θέλουμε να αλλάξουμε το όνομα και άλλα στοιχεία.
Για να συνδεθούμε στη κονσόλα δίνουμε ως όνομα χρήστη: root και ως κωδικό εκείνον που γράψαμε όταν ενεργοποιήσαμε το χρήστη root.
Αφού έχουμε συνδεθεί επιτυχώς, δίνουμε τη παρακάτω εντολή (εδώ δε χρειάζεται πλέον χρήση της sudo).
systemctl stop lightdm
Η παραπάνω εντολή θα σταματήσει τον Display Manager, στο Ubuntu 16.04 LTS ο προεπιλεγμένος είναι ο lightdm. Εάν χρησιμοποιούμε κάποιο flavor του Ubuntu το οποίο ενδεχομένως να έχει διαφορετικό Display Server, πρέπει να βρούμε το σωστό όνομα αυτού.
Έπειτα δίνουμε την εντολή
cat changeusername
Η παραπάνω εντολή θα τυπώσει στη κονσόλα τις εντολές που πρέπει να τρέξουμε μια-μια ώστε να αλλάξουμε το όνομα χρήστη, το όνομα γκρουπ, το όνομα του προσωπικού καταλόγου, καθώς και το «Πραγματικό Όνομα».
killall -u oldusername usermod -l new old groupmod -n new old usermod -d /home/new -m new usermod -c "New Real Name" new
Θα πρέπει να τρέξουμε τις παραπάνω εντολές μια-μια αντικαθιστώντας το oldusername με το τρέχων, επίσης όπου γράφει old πάλι με το τρέχων, ενώ όπου γράφει new με το νέο επιθυμητό.
Στο New Real Name γράφουμε το όνομα το οποίο θέλουμε να φαίνεται στη Login Screen. Καλό είναι να το κλείσουμε μέσα σε εισαγωγικά. Ειδικά εάν περιέχει κενά (spaces) είναι απαραίτητο να το κλείσουμε σε εισαγωγικά.
Αφού ολοκληρώσουμε το παραπάνω set εντολών, είμαστε έτοιμοι.
Μπορούμε να αποσυνδεθούμε από χρήστης root, στη κονσόλα δίνοντας απλά
exit
Ας δούμε και τις εντολές μια-μια
killall -u oldusername : «Σκοτώνει» οποιαδήποτε διεργασία ενδέχεται να απασχολεί το χρήστη στον οποίο αντιστοιχεί το username. Εάν κάποια διεργασία απασχολεί το χρήστη του οποίου θέλουμε να αλλάξουμε username, δε θα μας επιτραπεί να το κάνουμε.
usermod -l new old : Αλλάζει το όνομα χρήστη στο καινούριο(new) από το παλιό(οld)
groupmod -n new old: Αλλάζει το όνομα του γκρουπ στο καινούριο(new) από το παλιό(old)
usermod -d /home/new -m new : Μετακινεί το κατάλογο του χρήστη(new) σε νέο κατάλογο με νέο όνομα(/home/new). Η usermod εδώ θα προσπαθήσει να αλλάξει και την ιδιοκτησία-κυριότητα αρχείων και φακέλων, ίσως όμως χρειαστεί και χειροκίνητη αλλαγή σε μερικά από αυτά.
usermod -c «New Real Name» new: Αλλάζουμε το Πραγματικό Όνομα χρήστη στο καινούριο(new). Το κλείνουμε σε εισαγωγικά, ειδικά εάν περιέχει κενά(spaces). Αυτό το όνομα θα φαίνεται στη login screen.
Προβλήματα με εφαρμογές ;
Εάν μετά την αλλαγή αντιμετωπίσουμε προβλήματα με κάποιες εφαρμογές οι οποίες ενδεχομένως να έχουν αποθηκεύσει κάποια symlinks ή αναφορές στο παλιό username, ένας γρήγορος και αποτελεσματικός τρόπος να προσπεράσουμε αυτό το πρόβλημα είναι να δημιουργήσουμε ένα symlink με το παλιό username κάτω από το /home/ . Θα χρειαστούμε δικαιώματα Admin και η εντολή είναι η παρακάτω:
sudo ln -s /home/new /home/old
Όπου new το αντικαθιστούμε με το νέο πλέον username και old με το παλιό που είχαμε (πριν το αλλάξουμε).
Ας προσέξουμε ότι:
Η παραπάνω διαδικασία ισχύει για εγκατάσταση που έχει γίνει χωρίς κρυπτογράφηση του προσωπικού μας καταλόγου. Εάν έχουμε κρυπτογραφήσει το προσωπικό μας κατάλογο, τότε πρέπει πρώτα να κάνουμε mount το κρυπτογραφημένο κατάλογο και να αλλάξουμε το mountpoint ώστε να αντικατοπτρίζει το καινούριο username. Διαφορετικά θα αντιμετωπίσουμε σοβαρά προβλήματα.
Kλείδωμα του χρήστη Root
Αφού κάναμε τη δουλεία μας, εάν θέλουμε να κλειδώσουμε πάλι το χρήστη Root, να τον ρίξουμε πάλι «στο λήθαργο» που ήταν από προεπιλογή, μπορούμε να το κάνουμε με τη παρακάτω εντολή σε ένα τερματικό:
sudo passwd -l root
Πλέον το login μέσω χρήστη root έχει κλειδωθεί.