(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
lastparancs 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: doneArra 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ípusEz kitöltve valahogy így néz ki:
hamster:TYfgrfRFdDsKI:524:2:lamer:/home/hamster:/bin/bashIgen, 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.