Elfelejtett root jelszó

Amennyiben a root jelszó ismeretlen, az alábbi eljárással lehet a Debian-alapú rendszerek esetében azt alaphelyzetbe állítani. Ezt aránylag gyakran kell alkalmazni olyan esetekben, amikor egy másik rendszergazda munkáját kell átvenni, vagy tényleg csak elfelejtettük a jelszót. A RedHat vizsgák első lépése is rendszeresen ez, ha ez nem sikerül, az egész vizsga elégtelen. És ez ad magyarázatot arra is, hogy miért kell a szerverek fizikai hozzáférését komolyan korlátozni.

Első lépésben újra kell indítani a gépet a Ctrl-Alt-Del gombokkal. (Az Alt-PrintScr-B is megteszi ezt, de előtte érdemes minden cache-ben tárolt adatot kiírni a háttértárakra a Ctrl-Alt-S, és minden mountolt partíció umountolására a Ctrl-Alt-U gombokkal).

Az újraindult operációs rendszert a boot menedzser indulásakor meg kell állítani az Esc megnyomásával. Ekkor az alábbihoz hasonló boot menü jelenik meg.

Grub menü

Az egyes menük az operációs rendszert különböző kernelekkel, vagy különböző paraméterekkel indítják. Az egyes menüpontok mögött levő paraméterek alkalomszerűen is módosíthatók a menüpont kiválasztásával, majd az E lenyomásával.

Grub menü szerkesztése

A menüt leíró sorokban meg kell keresni a linux kezdetűt, ez határozza meg az elindítandó kernelt, a root eszközt és a további paramétereket. Az ro jelentése read-only, azaz a root eszköz csak olvasható módban kerül mountolásra, azt majd később fogja írható-olvasható módban újracsatolni a rendszer. Két ponton fogunk változtatni ebben a sorban, az ro módot cseréljük rw módra, valamint átírjuk az init programot a parancsértelmezőre így: init=/bin/bash. A maybe-ubuquity paramétert pedig egyszerűen töröljük. A helyzetet sajnos bonyolítja, hogy itt csak angol billentyűzetkiosztást alkalmazhatunk.

A módosítások befejeztével nyomd meg a Ctrl-x billentyűt, ezzel a rendszer elindul, a kernel betöltődik, de mivel a további boot folyamatot végző init program helyett egy egyszerű shell indul el, ezért egy teljes jogkörrel rendelkező shellben kapunk promptot.

Bash Shell

Most töröljük a root jelszavát a /etc/shadow fájlban. Ehhez a vi nevű szövegszerkesztőt fogjuk használni, ez az, ami minden rendszerben rendelkezésre áll. A vi /etc/shadow paranccsal szerkesztjük a fájlt. A root sora az első szokott lenni, ebben töröljük a második mező tartalmát, ami vagy egy * karakter, vagy pedig a kódolt jelszó.

root:*:18863:0:99999:7:::

Módosítsd a sort úgy, hogy a jelszó mező üres legyen!

root::18863:0:99999:7:::

Mentsd le a fájlt, add ki a sync parancsot, ami a cache-ek tartalmát a diszkre írja, és indítsd újra a gépet a fent leírt módok valamelyikével (a reboot parancs nemigen fog működni.)

A gép újraindítása után elég a root nevet megadni, jelszót sem fog kérni a rendszer.