kubuntu root

Giorgos Keramidas keramida at ceid.upatras.gr
Thu Apr 27 23:39:20 EEST 2006


On 2006-04-27 23:10, Chameleon <cham_gss at hotmail.com> wrote:
>>> στο Kubuntu όταν δοκίμασα 10 φορές να βάλω το password του root για
>>> να μπω στο εργαλείο που εμφανίζει τα partitions, 10 φορές απέτυχε.
>>> Μπήκα κι εγώ σαν root και ησήχασα... (εφόσον τελικά μπήκα σαν root
>>> μην μου πεις οτι έβαλα λάθος pass!...  Τώρα γιατί απέτυχε να κάνει
>>> login το αφήνω σε σας!)
>>
>> giati den prepei na baleis to password tou root, alla tou user me ton
>> opoio exeis kanei login, opws leei kai to manual kai to ubuntuguide,
>> o root den exei kan passwd. auto bebaia ry8mizetai apo to
>> /etc/sudoers. To gia poio logo ginetai etsi? exei analh8ei ektenws se
>> prohgoumena threads ths lgu (prospa8hse na katalabeis ta basika
>> prwta).
>
> diladi an balei to password tou enas xrhsths pou den einai root, exei
> prosbash se ergaleia tou root?

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

Προφανώς, υπάρχει τρόπος να περιορίσεις ποιός, γιατί, πότε και πώς θα
μπορεί να τρέξει εντολές με το sudo.  Ο σωστός τρόπος να ρυθμιστεί αυτό
είναι με επεξεργασία του αρχείου `sudoers'.  Π.χ. σε μένα αυτό το αρχείο
έχει μόνο τα εξής:

     1  # Defaults for all users/groups.
     2  Defaults  set_home,always_set_home,env_reset
     3
     4  # Per-user rights.
     5  root      ALL=(ALL) ALL
     6
     7  # Per group rights.
     8  %wheel    ALL=(ALL) ALL

> mallon kati den katalaba edw. den mporei na symbainei kati tetoio,
> opote sigoura kati den exw katalabei.

Όντως.

>>>> an 8eleis opwsdhpote ena monimo root shell exeis thn dynatothta na
>>>> tre3eis ena apo ta parakatw: sudo -i sudo su sudo bash sudo -s -H
>>>
>>> Εφόσον αυτό είναι το ίδιο επικύνδυνο με το να έχω κάνει login σαν
>>> root, γιατί να μην κάνω login σαν root;
>>
>> allo prama na trexoun xilia miria pou den gnwrizeis me root privs kai
>> allo na trexeis esy prosektika 5 entoles pou xreiazese, otan
>> xreiazetai.
>
> kai oi opoies me ti seira tous na trexoyn ena swro alles. to prwto 100%
> anasfales, to deutero 99%.

Υπερβάλλεις λίγο στο δεύτερο κομμάτι.  Κάποιος που χρησιμοποιεί εντατικά
το shell του για να κάνει διάφορες δουλειές, μπορεί να τρέξει από 100
έως κάμποσες χιλιάδες εντολές σε λιγότερο από μια μέρα.  Αν από αυτές
χρειάζεται μόνο οι 20 να τρέξουν ως root, δεν είναι κάπως πιο ασφαλές να
μην τρέχει όλο το KDE/Gnome/οτιδήποτε με root δικαιώματα;

Απλά αναλογίσου τι μέγεθος κακού μπορεί να κάνει ένας file manager που
είναι ανοιχτός με root δικαιώματα, αν κάνει κατά λάθος drag & drop όλο
το /etc στο /tmp και τι μπορεί να κάνει ένας file manager που τρέχει ως
απλός χρήστης στην ίδια περίπτωση.

Καμία σχέση...

>>> Το οτι σε μια εβδομαδα, θα χρειάζομαι να τρέχω προγράμματα με
>>> δικαιώματα root 1 ή 2 φορές τη μέρα δεν υπάρχει πρόβλημα. Τώρα όμως
>>> πρέπει να είμαι μονίμως root. Άλλωστε τι στην ευχή; Στα Windows τόσο
>>> καιρό που ήμουνα root δεν έπαθα τίποτα! (Βέβαια εκεί τα αρχεία που
>>> είναι open δεν σβύνουνε - και η del δεν παρέχεται με περίεργα regular
>>> expressions - και και και...)
>>
>> kai o logos pou ta windows kolane ious san to synaxi einai akribws autos
>
> o logos poy ta Windows kollane ious einai polloi. Enas mikros einai ki
> aytos. Allos einai oti to megalytero pososto ton an8rwpwn exoun Windows.

Διαφωνώ (κλασικά).  Η μεγάλη εξάπλωση δε σημαίνει αναγκαστικά ότι ένα
σύστημα γίνεται αυτομάτως και λιγότερο ασφαλές.

> Allos einai oti einai kleistou kwdika, opote pi8ana problhmatika tmhmata
> kwdika, an den anakalyf8oun apo to proswpiko ths MS den anakalyptontai
> apo kanena (ektos apo autous pou kanoun reverse engineering).

Αυτό είναι επιχείρημα που, γενικά, μπορεί να σημαίνει εντελώς το ανάποδο
από αυτό που υποστηρίζεις εσύ σε αυτή την πρόταση.

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

Αντίθετα, με ένα ανοιχτό σύστημα, που όλοι μπορούν να δουν τον πηγαίο
κώδικα, είναι πολύ πιο εύκολο να βρεις ατέλειες και να καταλάβεις
ακριβώς ΠΟΥ είναι ένα πρόβλημα ασφάλειας.  Αυτό είναι ταυτόχρονα
πλεονέκτημα (για τον developer που θέλει να διορθώσει αυτό το πρόβλημα)
και παγίδα (αφού με τον ίδιο τρόπο μπορεί κι ένας κακοπροαίρετος
προγραμματιστής να ανακαλύψει ατέλειες και να τις εκμεταλλευτεί για δικό
του όφελος).

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

# 080484f8 <main>:
# 080484f8:       55                      push   %ebp
# 080484f9:       89 e5                   mov    %esp,%ebp
# 080484fb:       83 ec 08                sub    $0x8,%esp
# 080484fe:       83 e4 f0                and    $0xfffffff0,%esp
# 08048501:       83 ec 18                sub    $0x18,%esp
# 08048504:       8d 45 f8                lea    0xfffffff8(%ebp),%eax
# 08048507:       50                      push   %eax
# 08048508:       68 a6 85 04 08          push   $0x80485a6
# 0804850d:       c7 45 f8 2f 64 65 76    movl   $0x7665642f,0xfffffff8(%ebp)
# 08048514:       c7 45 fc 2f 6e 75 6c    movl   $0x6c756e2f,0xfffffffc(%ebp)
# 0804851b:       66 c7 45 00 6c 00       movw   $0x6c,0x0(%ebp)
# 08048521:       e8 66 fe ff ff          call   804838c <_init+0x24>
# 08048526:       31 c0                   xor    %eax,%eax
# 08048528:       c9                      leave
# 08048529:       c3                      ret
# 0804852a:       90                      nop
# 0804852b:       90                      nop

Σε αυτό το πρόγραμμα, το οποίο παράγεται από το παρακάτω C source,
υπάρχει ένα buffer overflow:

     1  #include <stdio.h>
     2  #include <string.h>
     3
     4  int
     5  main(void)
     6  {
     7          char fname[8];
     8
     9          strcpy(fname, "/dev/null");
    10          printf("File name = %s\n", fname);
    11          return 0;
    12  }

Δεν νομίζω να υπάρχει κάποιος ο οποίος θα ισχυριστεί ότι είναι πιο
εύκολο να ανακαλύψει το πιθανό security πρόβλημα διαβάζοντας τα opcodes
της γλώσσας μηχανής.

Αυτό σημαίνει πως σε ένα open source πρόγραμμα είναι, βασικά, ΠΙΟ ΕΥΚΟΛΟ
να βρεις τα security προβλήματα, άρα και πιο εύκολο να τα εκμεταλλευτείς
κακόβουλα.

> Mhn 3exnas oti oi pyrhnes toy Linux einai se test mode gia poly kairo
> prin pane se release kai einai dia8esimos se olous o kwdikas. Ta
> perissotera la8h dior8onontai se auto to stadio.

Αυτό σημαίνει απλά ότι το μοντέλο ανάπτυξης του Linux δουλεύει.  Δεν
αποτελεί όμως σοβαρή ένδειξη για το πόσο καλά δουλεύει και το μοντέλο
ανάπτυξης των Windows.

> Allwste to teleftaio exploit tou Mozilla Firefox pou mporouse o allos na
> tre3ei kwdika sto PC sou den eixe na kanei me th MS giati etrexe
> kanonika kai se Linux. (an exeis Mozilla Firefox 1.5.0.1 katebase to
> update se 1.5.0.2)
>
> Se ligo kairo pou 8a au3h8oun oi xrhstes tou linux (logo eyxrhstias *kai
> mono*) 8a deis kati trelous ious se linux pou 8a frikareis.

Οι Κασσάνδρες το λένε αυτό εδώ και χρόνια.  Πόσους ιούς έχεις δει για
Linux; Πόσοι από αυτούς παίζουν το ίδιο καλά σε οποιοδήποτε distribution
του Linux; Πόσοι από αυτούς παίζουν και σε FreeBSD, OpenBSD, NetBSD, ή
Solaris;

Πολύ θα το 'θελε η Microsoft να πείσει τον κόσμο όλο ότι τα Windows
κολλάνε ιούς λόγω κάποιας νομοτελειακής ``κατάρας'' που χτυπάει όλα τα
συστήματα όταν αυξάνεται ο αριθμός των χρηστών τους πάνω από ένα όριο,
πάνω από μια ``κρίσιμη μάζα''.  Θα μπορούσε τότε να δικιολογηθεί πολύ
άνετα για τις σχεδιαστικές παπαριές που έχει κάνει.  Δε νομίζω να το
καταφέρει σύντομα όμως.

- Γιώργος




More information about the Linux-greek-users mailing list