4Aug

Ποια είναι η διαφορά μεταξύ του Sudo και του Su στο Linux;

Εάν είστε χρήστης του Linux, πιθανότατα έχετε δει αναφορές τόσο στο sudo όσο και στο su.Τα άρθρα εδώ για το How-To Geek και αλλού καθοδηγούν τους χρήστες του Ubuntu να χρησιμοποιούν τους χρήστες sudo και άλλων διανομών του Linux για να χρησιμοποιήσουν το su, αλλά ποια είναι η διαφορά;

Το Sudo και το su είναι δύο διαφορετικοί τρόποι για να αποκτήσετε προνόμια root.Κάθε λειτουργούν με διαφορετικό τρόπο και διαφορετικές διανομές Linux χρησιμοποιούν διαφορετικές διαμορφώσεις από προεπιλογή.

Ο βασικός χρήστης

Τόσο το su όσο και το sudo χρησιμοποιούνται για την εκτέλεση εντολών με δικαιώματα root.Ο χρήστης root είναι ουσιαστικά ισοδύναμος με τον χρήστη διαχειριστή στα Windows - ο χρήστης ρίζας έχει μέγιστα δικαιώματα και μπορεί να κάνει οτιδήποτε στο σύστημα.Οι κανονικοί χρήστες στο Linux εκτελούνται με μειωμένα δικαιώματα - για παράδειγμα, δεν μπορούν να εγκαταστήσουν λογισμικό ή να γράψουν σε καταλόγους συστήματος.

Για να κάνετε κάτι που απαιτεί αυτά τα δικαιώματα, θα πρέπει να τα αποκτήσετε με su ή sudo.

Su εναντίον Sudo

Η εντολή su μεταβαίνει στον υπερ-χρήστη ή τον χρήστη ρίζας όταν το εκτελείτε χωρίς πρόσθετες επιλογές.Θα πρέπει να εισαγάγετε τον κωδικό πρόσβασης του root account.Αυτό δεν είναι το μόνο που κάνει η εντολή su - μπορείτε να το χρησιμοποιήσετε για να μεταβείτε σε οποιονδήποτε λογαριασμό χρήστη.Εάν εκτελέσετε την εντολή su bob , θα σας ζητηθεί να εισαγάγετε τον κωδικό πρόσβασης του Bob και το κέλυφος θα μεταβεί στον λογαριασμό χρήστη του Bob.

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

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

Αυτή είναι η βασική διαφορά μεταξύ su και sudo.Η υπηρεσία Su σας μεταφέρει στο λογαριασμό χρήστη root και απαιτεί τον κωδικό πρόσβασης του root account.Το Sudo εκτελεί μια μόνο εντολή με δικαιώματα root - δεν μεταβαίνει στον χρήστη root ή απαιτεί ξεχωριστό κωδικό χρήστη root.

Ubuntu εναντίον άλλων διανομών Linux

Η εντολή su είναι ο παραδοσιακός τρόπος απόκτησης δικαιωμάτων root σε Linux.Η εντολή sudo υπήρξε για μεγάλο χρονικό διάστημα, αλλά το Ubuntu ήταν η πρώτη δημοφιλή διανομή Linux για να πάει μόνο sudo από προεπιλογή.Όταν εγκαθιστάτε το Ubuntu, δημιουργείται ο τυπικός λογαριασμός root, αλλά δεν έχει εκχωρηθεί κωδικός πρόσβασης.Δεν μπορείτε να συνδεθείτε ως root μέχρι να αντιστοιχίσετε έναν κωδικό πρόσβασης στο λογαριασμό root.

Υπάρχουν αρκετά πλεονεκτήματα στη χρήση του sudo αντί του su από προεπιλογή.Οι χρήστες του Ubuntu πρέπει μόνο να παρέχουν και να θυμούνται έναν ενιαίο κωδικό πρόσβασης, ενώ ο Fedora και άλλες διανομές απαιτούν τη δημιουργία ξεχωριστών κωδικών πρόσβασης για λογαριασμό root και χρήστη κατά την εγκατάσταση.

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

Οι διανομές που βασίζονται στο Ubuntu, συμπεριλαμβανομένου του Linux Mint, χρησιμοποιούν επίσης sudo αντί για su από προεπιλογή.

Λίγα τεχνάσματα

Το Linux είναι ευέλικτο, οπότε δεν χρειάζεται πολύ δουλειά για να γίνει η δουλειά παρόμοια με το sudo - ή το αντίστροφο.

Για να εκτελέσετε μια μόνο εντολή ως χρήστη root με su, εκτελέστε την ακόλουθη εντολή:

su -c 'εντολή'

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

Για να αποκτήσετε ένα πλήρες, αλληλεπιδραστικό ριζικό κέλυφος με sudo, εκτελέστε sudo -i.

Θα πρέπει να δώσετε τον κωδικό πρόσβασης του τρέχοντος λογαριασμού χρήστη αντί του κωδικού πρόσβασης του root account.

Ενεργοποίηση του root χρήστη στο Ubuntu

Για να ενεργοποιήσετε το λογαριασμό χρήστη root στο Ubuntu, χρησιμοποιήστε την ακόλουθη εντολή για να ορίσετε έναν κωδικό πρόσβασης για αυτό.Λάβετε υπόψη σας ότι το Ubuntu συνιστά αυτό.

sudo passwd root

Το Sudo θα σας ζητήσει τον κωδικό πρόσβασης του τρέχοντος λογαριασμού χρήστη για να μπορέσετε να ορίσετε νέο κωδικό πρόσβασης.Χρησιμοποιήστε τον νέο κωδικό πρόσβασής σας για να συνδεθείτε ως root από μια γραμμή εντολών σύνδεσης τερματικού ή με την εντολή su.Ποτέ δεν πρέπει να εκτελέσετε ένα πλήρες γραφικό περιβάλλον ως χρήστη root - αυτή είναι μια πολύ κακή πρακτική ασφάλειας και πολλά προγράμματα θα αρνηθούν να εργαστούν.

Προσθήκη χρηστών στο αρχείο Sudoers

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

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

Εάν χρησιμοποιείτε άλλη διανομή Linux, μπορείτε να παραχωρήσετε στον χρήστη άδεια να χρησιμοποιήσει το sudo εκτελώντας την εντολή visudo με δικαιώματα root( εκτελέστε ή πρώτα ή χρησιμοποιήστε su -c ).

Προσθέστε την ακόλουθη γραμμή στο αρχείο, αντικαθιστώντας τον χρήστη με το όνομα του λογαριασμού χρήστη:

χρήστη ALL =( ALL: ALL) ALL

Πατήστε το Ctrl-X και, στη συνέχεια, το Y για να αποθηκεύσετε το αρχείο.Ενδέχεται επίσης να μπορείτε να προσθέσετε έναν χρήστη σε μια ομάδα που καθορίζεται στο αρχείο.Οι χρήστες των ομάδων που καθορίζονται στο αρχείο θα έχουν αυτόματα δικαιώματα sudo.

Γραφικές εκδόσεις του Su

Το Linux υποστηρίζει επίσης τις γραφικές εκδόσεις του su, οι οποίες ζητούν τον κωδικό πρόσβασής σας σε γραφικό περιβάλλον.Για παράδειγμα, μπορείτε να εκτελέσετε την ακόλουθη εντολή για να λάβετε μια προτροπή κωδικού πρόσβασης και να εκτελέσετε το πρόγραμμα περιήγησης αρχείων Nautilus με δικαιώματα root.Πατήστε Alt-F2 για να εκτελέσετε την εντολή από ένα παράθυρο διαλόγου γραφικής εκτέλεσης χωρίς να ξεκινήσετε ένα τερματικό.

gksu nautilus

Η εντολή gksu έχει επίσης μερικά άλλα κόλπα επάνω στο μανίκι της - διατηρεί τις τρέχουσες ρυθμίσεις της επιφάνειας εργασίας σας, έτσι ώστε τα γραφικά προγράμματα να μην φαίνονται εκτός χώρου όταν τα ξεκινάτε ως διαφορετικός χρήστης.Προγράμματα όπως το gksu είναι ο προτιμώμενος τρόπος εκκίνησης γραφικών εφαρμογών με προνόμια root.Το

Gksu χρησιμοποιεί είτε back είτε backed ή sudo, ανάλογα με τη διανομή Linux που χρησιμοποιείτε.

Θα πρέπει τώρα να είστε προετοιμασμένοι να συναντήσετε τόσο το su όσο και το sudo!Θα συναντήσετε και τα δύο αν χρησιμοποιείτε διαφορετικές διανομές Linux.