ο root, το su καί το sudo τού ubuntu. Καί πως να το ρυθμίσετε.

alfisti | Τετ, 02/25/2009 - 20:31 | 6' | 4

Καί πάνω πού νόμιζα ότι είχα στερέψει, σήμερα πήρα μία καλή αφορμή από άλλο thread τού forum.

Kαί είπα να ξεσκουριάσω λίγο   :)

Στο linux, από γεννησιμιού του, τα πράγματα είναι δεδομένα.

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

Εκτός από τον άρχοντα, υπάρχουν καί οί υπόλοιποι. Ένας χρήστης ή πολλοί. Ο οποίος χρήστης, μπορεί να χρησιμοποιεί τα προγράμματα (μόνο καί μόνο επειδή ο άρχοντας τού έχει δώσει το δικαίωμα αυτό), αλλά όχι να εγκαταστήσει κάποιο καινούριο, ή να απεγκαταστήσει κάποιο υπάρχον. Ο χρήστης έχει πολύ συγκεκριμένα δικαιώματα καί μόνο γιά έναν περιορισμένο χώρο. Το σπίτι του. Μπορεί να κρατήσει τα αρχεία του καί να τα επεξεργαστεί μόνο μέσα στο /home/username. Eκτός αν ο root - άρχοντας τού χει δώσει κι άλλα τσιφλίκια-δικαιώματα (permissions). Καί ευτυχώς, μας έχει αφήσει να μπαινοβγάζουμε cd ή ... να κλείνουμε το pc.

Στην κονσόλα, ο άρχοντάς μας, βλέπει:

pcname:~#

ενώ ο χρήστης:

username@pcname:~$

O root λοιπόν, έχει την απόλυτη δικαιοδοσία στο σύστημα, ενώ οί χρήστες -με όσα δικαιώματα τούς έχει δώσει ο root- επηρεάζουν μόνο τον φάκελο home.

H εντολή su σημαίνει switch user (καί ουχί super user).

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

Γιά να βγούμε από τον λογαριασμό στον οποίο συνδεθήκαμε με την εντολή su, πρέπει να δώσουμε την εντολή exit.Έτσι η κονσόλα μας θα επανέλθει στον δικό μας λογαριασμό.

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

Aυτά τα δικαιώματα, αποτυπώνονται στο αρχείο /etc/sudoers.

Οί developers τού ubuntu, αποφάσισαν να χρησιμοποιήσουν το sudo γιά συγκεκριμένο λόγο. Είδαν, παρατήρησαν, ότι ήταν πολλές οί φορές κατά τις οποίες κάποιος χρήστης γινόταν su γιά ένα update ή μία εγκατάσταση καί... το ξέχναγε. Κάτι το οποίο θα μπορούσε να έχει σοβαρές συνέπειες γιά το σύστημα.
Ενώ τώρα, θα έπρεπε μπροστά από κάθε εντολή να βάζεις το sudo (να εκτελείς μία καί μόνο εντολή καί να βρίσκεσαι πάλι με δικαιώματα χρήστη).

Οί διαφωνίες πού προέκυψαν -καί πως αλλοιώς θα γινόταν-, έχουν να κάνουν στην ουσία με δύο σημεία:

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

Γιά το πρώτο θα αναφέρω ότι ο λογαριασμός root μπορεί να ενεργοποιηθεί γιά όποιον τον θέλει ή μέσα από γραφικό περιβάλλον ή με sudo su root (ή σκέτο sudo su).

Γιά το password: προσωπικά με ενδιαφέρουν τα αρχεία μου, οί φάκελοί μου, τα έγγραφά μου. Tα οποία μπορώ να καταστρέψω πολύ εύκολα μέσα από τον δικό μου λογαριασμό.

Το θέμα -"φοβάμαι"- δεν έχει να κάνει με το ubuntu καί την επιλογή του, αλλά με τούς χρήστες καί την ... αλλαγή εποχής.
Nομίζω είναι λίγοι οί χρήστες πλέον πού θα ασχοληθούν με το αρχείο sudoers καί το ποιός έχει δικαίωμα σε τι.

Δώσε αστέρια!

MO: 3.8 (ψήφοι: 4)

Σχόλια

είπα, στο πνεύμα των ημερών καί της τακτοποίησης τού forum να το συνεχίσω εδώ.
(καί ... λογικό είναι)
.

Sudo χωρίς κωδικό ή για περισσότερη ώρα:

αυτό πού ... προσάπτουν αρκετοί στο sudo, είναι το ότι πρέπει γιά κάθε εντολή, να δίνουν τον κωδικό τους.

Αυτό, πολλοί χρήστες το ξεπερνάνε, κάπως "επικίδυνα". Δηλαδή:
Επεξεργασία τού αρχείου /etc/sudoers καί ορισμός τού NOPASSWD γιά τον λογαριασμό τους.
Δηλαδή πχ.: dimitris ALL=NOPASSWD: ALL καί έτσι δεν ζητάει ΠΟΤΕ κωδικό.

Yπάρχει λοιπόν καί ο άλλος, ασφαλέστερος τρόπος:

Επεξεργασία τού αρχείου /etc/sudoers καί προσθέτουμε την γραμμή
Defaults:ALL timestamp_timeout=* στην θέση τού αστερίσκου, βάλτε έναν αριθμό, ως εξής:

με -1 θα ζητήσει μία φορά τον κωδικό καί δεν θα το ξαναζητήσει, όσο είμαστε στο ίδιο τερματικό.

με 0 θα ζητάει συνέχεια password

με τιμή από 1 έως ... όσο θέλετε δεν θα ξαναζητήσει κωδικό γιά το συγκεκριμένο χρονικό διάστημα (μετράει από την στιγμή πού εισάγαμε κωδικό).

Η αρχική προκαθορισμένη τιμή είναι 15 λεπτά.

(Διαβάστε καί το man τού sudo).

====

the hamster's is out there

δες τε επίσης εδώ, πού ξεκίνησε το θέμα γιά την sux.

αντιγράφω απλά:

προσπαθείστε να ανοίξετε γιά παράδειγμα το kwrite με su.

(Λογικά) θα πάρετε αυτό:

dimitris@siduxbox:~$ su
Password:
root@siduxbox:/home/dimitris# kwrite
Invalid MIT-MAGIC-COOKIE-1 keykwrite: cannot connect to X server :0.0
root@siduxbox:/home/dimitris#

δεν επιτρέπεται σύνδεση στον Xserver.

αν το ανοίξετε όμως με sux, κανένα πρόβλημα.

ποιό είναι το "μυστικό"?
στην ουσία, η sux μεταφέρει τα δικαιώματα τού χρήστη στον root.

====

the hamster's is out there

Γράφω εδώ γιατί δεν μπορώ να βρώ το παλιό θέμα με το εξής πρόβλημα.Σε εγκατάσταση μιντ που δέν θύμάμαι αν εκεργοποίησα τον ρούτ λογαριασμό έχω ξεχάσει το pass για τον sudo. Πως τον ανακτώ λοιπόν, κυρίως μς ενδιαφέρει να αντιγράψω τον φάκελο thunterbird που έχει το αρχείο της αλληλογραφίας.

Εγώ έχω το εξής θέμα:

Εχω γράψει ένα sh scriptάκι για να κάνω start ή stop τον Apache.

Το script είναι πολύ απλό

cd εκεί κι εκεί

apachectl start ή stop.

Δεν πειράζει τίποτα, δεν σβήνει τίποτα.

 

Για να δουλέψει όμως πρέπει να τρέξει σαν root, οπότε κάθε φορά πρέπει να δίνω και το password. Υπάρχει τρόπος να του δηλώσω μέσα στο script το password ώστε να μην κάνω όλη αυτή τη διαδικασία;