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

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

su

Η εντολή su αντικαθιστά τον τρέχοντα χρήστη που χρησιμοποιείται από το σύστημα στο κέλυφος. Μπορείτε να μεταβείτε σε οποιονδήποτε χρήστη, λαμβάνοντας su και προσθέτοντας ένα όνομα χρήστη από αυτό. Αυτό θα πει το σύστημα να αλλάξει (και ουσιαστικά να αποσυνδεθεί) από τον τρέχοντα χρήστη σε αυτόν που έχει καθοριστεί. Εναλλακτικά, η εντολή su μπορεί να αποκτήσει πρόσβαση ρίζας εισάγοντας su χωρίς να προσδιορίσει τίποτα μετά την εντολή.

Το "su" χρησιμοποιείται καλύτερα όταν ένας χρήστης επιθυμεί άμεση πρόσβαση στο λογαριασμό root στο σύστημα. Δεν περνάει το sudo ή κάτι τέτοιο. Αντίθετα, ο κωδικός πρόσβασης του root πρέπει να είναι γνωστός και να χρησιμοποιείται για να συνδεθεί με. Επιπλέον, άλλοι τρόποι απόκτησης της ρίζας δεν έχουν το πλεονέκτημα ότι θα έχουν πρόσβαση στον κατάλογο root και στο ριζικό περιβάλλον.

sudo su

Αυτή η εντολή είναι ουσιαστικά η ίδια με την εκτέλεση του su στο κέλυφος. Αντί να λέτε στο σύστημα να "αλλάξει απευθείας τους χρήστες", του λέτε να εκτελέσει την εντολή "su" ως root. Όταν εκτελείται sudo su, θα ξεκινήσουν ".profile", ".bashrc" και "/ etc / profile", σαν να τρέχει susu root ). Αυτό οφείλεται στο γεγονός ότι αν οποιαδήποτε εντολή τρέξει με το sudo μπροστά του, είναι μια εντολή που δίνεται δικαιώματα root.

Παρόλο που δεν υπάρχει πολύ μεγάλη διαφορά από το su, το sudo su εξακολουθεί να είναι μια πολύ χρήσιμη εντολή για έναν σημαντικό λόγο: Όταν ένας χρήστης τρέχει "su" για να αποκτήσει πρόσβαση root σε ένα σύστημα, πρέπει να γνωρίζει τον κωδικό πρόσβασης root. Ο τρόπος που δίνεται η ρίζα με το sudo su είναι ζητώντας τον κωδικό πρόσβασης του τρέχοντος χρήστη. Αυτό καθιστά δυνατή την απόκτηση ρίζας χωρίς τον κωδικό πρόσβασης root που αυξάνει την ασφάλεια.

sudo -i

Η χρήση sudo -i είναι σχεδόν η ίδια με την sudo su . Οι χρήστες μπορούν να αποκτήσουν ρίζα από το "sudo" και όχι με τη μετάβαση στον χρήστη root. Όπως το sudo su, η σημαία -i επιτρέπει σε ένα χρήστη να αποκτήσει ένα ριζικό περιβάλλον χωρίς να χρειάζεται να γνωρίζει τον κωδικό πρόσβασης του root account. sudo -i είναι επίσης πολύ παρόμοιο με τη χρήση sudo su επειδή θα διαβάζει όλα τα περιβαλλοντικά αρχεία (.profile, κλπ.) και θα θέτει το περιβάλλον μέσα στο κέλυφος μαζί του.

Όπου διαφέρει από το "sudo su" είναι ότι το sudo -i είναι ένας πολύ καθαρότερος τρόπος για να αποκτήσετε ρίζα και ριζικό περιβάλλον χωρίς να αλληλεπιδράτε άμεσα με τον χρήστη root. Πως? Με sudo su χρησιμοποιείτε περισσότερες από μία εντολές setuid root. Το γεγονός αυτό καθιστά πολύ πιο δύσκολο να καταλάβουμε ποιες περιβαλλοντικές μεταβλητές θα διατηρηθούν και ποιες θα αλλάξουν (όταν πλημμυρίζουν στο ριζικό περιβάλλον). Αυτό δεν συμβαίνει με το sudo -i και αυτό οφείλεται στο γεγονός ότι οι περισσότεροι άνθρωποι το βλέπουν ως την προτιμώμενη μέθοδο για να αποκτήσουν ρίζα χωρίς να συνδεθούν άμεσα.

sudo -s

Ο διακόπτης -s για την εντολή sudo διαβάζει τη μεταβλητή $ SHELL του τρέχοντος χρήστη που εκτελεί εντολές. Αυτή η εντολή λειτουργεί σαν να τρέχει ο χρήστης sudo /bin/bash . Sudo -s είναι κέλυφος τύπου "μη-σύνδεσης". Αυτό σημαίνει ότι σε αντίθεση με μια εντολή όπως sudo -i ή sudo su, το σύστημα δεν θα διαβάσει κανένα περιβαλλοντικό αρχείο. Αυτό σημαίνει ότι όταν ένας χρήστης ενημερώνει το κέλυφος για να εκτελέσει sudo -s, κερδίζει ρίζα αλλά δεν αλλάζει τον χρήστη ή το περιβάλλον χρήστη. Το σπίτι σας δεν θα είναι το ριζικό σπίτι, κλπ.

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

Συμπέρασμα: Τι εντολή πρέπει να χρησιμοποιήσω;

Κάθε εντολή έχει τη χρήση της. Το σημαντικό είναι εδώ να καταλάβουμε τι κάνει κάθε εντολή και πότε να τις χρησιμοποιήσει. Σήμερα, το sudo -i είναι ο πιο πρακτικός, καθαρός τρόπος για να αποκτήσετε ένα ριζικό περιβάλλον. Από την άλλη πλευρά, όσοι χρησιμοποιούν sudo -s θα βρουν ότι μπορούν να αποκτήσουν ένα ριζικό κέλυφος χωρίς την ικανότητα να αγγίζουν το ριζικό περιβάλλον, κάτι που έχει πρόσθετα οφέλη για την ασφάλεια.

Στην πραγματικότητα δεν υπάρχει μία εντολή σε αυτόν τον κατάλογο που να είναι 100% το καλύτερο. Καθώς οι χρήστες γίνονται πιο άνετοι με τη γραμμή εντολών, θα πρέπει να λαμβάνουν υπόψη κάθε τρόπο την απόκτηση ρίζας (και υπάρχουν πολλοί) υπόψη και να ζυγίζουν τα υπέρ και τα κατά και να ενεργούν ανάλογα. Ελπίζω ότι με τη βοήθεια αυτού του άρθρου οι αποφάσεις αυτές θα γίνουν ευκολότερες.

Με ποιον τρόπο προτιμάτε να αποκτήσετε root access στο Linux; Πείτε μας παρακάτω!

Image credit: blog.david-jensen.com