T. I. N. T. F. M.

(This IsN't The F*cking Manual)

UNIX
a la Hamster

Na jó, kicsit pihenjünk, mert ha tükörbe nézünk, már felfedezhetjük magunkon a kockafejűsödés első jeleit, például hogy nem fér a sapkánk a fejünkre, vagy hogy átalakult koponyánk élei mindig megvágják a kezünket, ha vakarózunk... Most csak gányolódjunk össze-vissza, minden értelem nékül. Például nézzük meg, kik jártak az utóbbi időkben a gép(b)en. Ehhez a

 last
parancs kiadása bőven elég. Egy néha elég tekintélyes listát kapunk. Ha utána egy usernevet is megadunk, akkor az adott userre vonatkozó (már ha van olyan) adatokat látjuk. De hogy ne listázza rojtosra magát a gép, megadhatjuk, hogy az utolsó hány belépőt listázza ki:
last -15
    hamster   ttyp0   master.fok.hu    Sat May  6 10:35   still logged in
    szabolcs  ttyp0   pegasus.elte.hu  Fái May  5 08:20 - 09:02  (00:41)
    tif       ftp     ila3.elte.hu     Thu May  4 17:57 - 17:57  (00:00)
    csahok    ttyp0   pooh.elte.hu     Thu May  4 16:39 - 16:40  (00:00)
    csahok    ttyp0   pooh.elte.hu     Thu May  4 16:11 - 16:36  (00:25)
    grof      ttyp1   MTPC12.RMKI.KFKI Thu May  4 14:57 - 15:12  (00:15)
    grof      ttyp0   MTPC12.RMKI.KFKI Thu May  4 14:56 - 15:20  (00:24)
    grof      ftp     MTPC12.RMKI.KFKI Thu May  4 14:56 - 14:56  (00:00)
    grof      ttyp0   MTPC12.RMKI.KFKI Thu May  4 13:54 - 14:04  (00:10)
    grof      ttyp0   MTPC12.RMKI.KFKI Thu May  4 13:41 - 13:45  (00:03)
    grof      ttyp0   hercules.elte.hu Thu May  4 13:38 - 13:38  (00:00)
    las       ttyp0   t10.vemt.bme.hu  Wed May  3 19:02 - 19:10  (00:08)
    las       ttyp0   t10.vemt.bme.hu  Wed May  3 19:00 - 19:00  (00:00)
    felix     ttyp4   t10.vemt.bme.hu  Wed May  3 18:59 - 18:59  (00:00)
    felix     ttyp3   t10.vemt.bme.hu  Wed May  3 18:59 - 18:59  (00:00)
Szerintem ez is kellően világos. Az első oszlop a username, utána az, hogy hol jött be, a harmadik az, hogy honnan, utána be- és kilépési idő, a végén pedig a tejszínhab, hogy hány befejezett percet töltött a rendszerben... Itt az utolsó négy alkalomnál például az látszik, hogy valaki más accountjára próbált bejutni. Elkezdett loginelni, aztán kilépett (valami nem stimmelhetett, aztán bejött egy másik accounton...:) Persze az is lehet, hogy a superuser szórakozgatott, hogy be tud-e jönni mások accountjára...

Zavar a saját passwordunk? Meg akarjuk változtatni? Nos, ez persze nem minden rendszeren megy, mármint a T. vezetőség nem mindenütt engedélyezi, nem mintha fizikailag lehetetlen lenne. Tételezzük fel, hogy meg tudjuk változtatni. Némely rendszerekben el is várják, hogy időnként megváltoztassuk! Ne lepődjünk meg, ha a gép arra szólít fel minket, hogy változtassuk meg a jelszót, mert a régi lejárt...

 Na...már megint hogy elkezdtem csapongani...

 Szóval elég logikus parancs szolgál erre:

passwd   .
(a pont nem kell a végire, az a mondat része...:-)
master# paa
    bash: paa: command not found.
Most mi van, te még soha nem gépeltél el semmit? :-)
 passwd
    Changing local password for hamster.
    Old password:
    New password:
    Retype new password:
    passwd: rebuilding the database...
    passwd: done
Arra ne számítsunk, hogy a jelszó (akár a régi, akár az új) megjelenjen a képernyőn. Az újat azért kéri kétszer, hogy a mellettünk ülő hacker biztosan le tudja nézni a kezünkről a jelszót, ha az első alkalomnál nem figyelt volna eléggé ránk...(éppen ezért kérünk mindenkit, hogy jóóóóóóóóóóóóóó lassan gépelje, hogy a másiknak legyen ideje ujjaink kifigyelésére;-) Az előfordulhat, hogy a gépnek nem tetszik az új jelszó. Ennek oka lehet az, ha túl rövid az új jelszó, vagy túl logikus (például a usernevünk+1 szám, stb...), más rendszerek pedig kifejezetten elvárják, hogy jó bonyolult jelszót írjunk be, számok és különleges karakterek is legyenek benne. Persze hogy mennyit kekeckedik velünk, az attól is függ, hogy milyen passwd-ellenôrző van a rendszerben, meg hogy a root azt hogyan állította be... (mondjuk szerintem szélsőség, ha X naponta kötelező megváltoztatni a jelszavakat, de néha indokolt lehet; ilyenkor az elfelejtett jelszavak miatt reklamáló useri levelek száma mindenképpen meg fog emelkedni;) Megjegyzés: lehetőleg minden gépen más jelszót használjunk, mert így nagyobb az esélye, hogy elfelejtjük; írjuk fel egy papírra, és azt minden belépés előtt tegyük ki magunk mellé jól látható helyre. ;-)

De ha már itt tartunk: hogy is működik ez a jelszó-akármicsoda? Adott egy 11 betűből álló jelszó. Mindenki arról beszél, hogy ezt fel lehet törni. Persze: fel lehet, logikával, emberismerettel, és jó erős hardverrel. Feltörhető, ha az illető barátnőjének/barátjának/kocsijának nevét/márkáját használja passként, stb, de én ezt nem nevezném feltörésnek. Ez inkább mázli...:)

A userek jelszavait tartalmazó adatbázis általában az /etc/passwd című fájlban heverészik, ahol valahogy így vannak bejegyezve a rendszer felhasználói:

loginnév:jelszó elkódolva:user száma:groupszám:leírás:homedir:shelltípus
Ez kitöltve valahogy így néz ki:
hamster:TYfgrfRFdDsKI:524:2:lamer:/home/hamster:/bin/bash
Igen, az első kettőspont utáni 13 betűből álló zagyvalékban van elrejtve a jelszó. A UNIX a DES néven ismeretes eljárással kódolja a jelszót, a 13-ból az utolsó 2 karakter jelzi azt, hogy milyen algoritmusú kódolás lett alkalmazva a jelszó titkosításánál, ez a szám véletlenszerűen jön (oké, nem véletlen, de lényegileg az), 4096-féle séma szerint módosulhat a kódolt jelszó alakja. Azaz ha egyszer beírtad, akkor a root se fogja már így egyben látni a jelszavadat (esetleg, ha figyeli a billentyűzetről beérkező jeleket:-). Ennek az utolsó két karakternek a beceneve 'salt string'. Lényeges: loginkor nem dekódolja a jelszót a rendszer, hanem a beírt jelszónak a jelszófájlból szedett saltstringgel kódolt alakját hasonlítja össze az eredeti jelszó kódolt alakjával. Fú, micsoda mondat! Egy tipp: ha a kódolt jelszó elé írsz egy csillagot, akkor az tulajdonképpen használhatatlan lesz, vagyis azzal az azonosítoval a csillag eltüntetéséig nem lehet belépni. A root usernek ne nagyon rakjunk ilyet a jelszavába :-) Másik tipp: a root, azaz a rendszergazda a 0-ás számú user, és a 0-ás számú csoport tagja, ha más usert felruházunk ezzel a két számmal, akkor ő is rendszergazdává változik. Egyébként mindezzel kapcsolatban annyit mondanék még, hogy az /etc/passwd fájl "kézzel" (igazából editorral) való változtatgatása nem ajánlott, csak ha biztos vagy benne, hogy tudod mit csinálsz...

Egy kis megjegyzés, csak hogy ne gondoljátok ilyen egyszerűnek...

Amit leírtam, az egy manapság már szinte archaikusnak számító megoldás: bár a legtöbb UNIX-ban ez az alapszolgáltatás, az esetek túlnyomó részében ennél komolyabban védik a jelszavakat. Anélkül, hogy túlságosan belemennénk a technikai részletekbe, elmondom, hogy a legnépszerűbb kiváltása a fentebb leírt /etc/passwd típusú rendszernek password shadowing névre hallgat. Itt is létezikaz említett /etc/passwd, de a jelszavak nem itt, hanem egy másik fájlban vannak tárolva, melynek hozzáférését szigorúbban szabályozzák.

Vissza Előre