Hogyan állítsuk vissza elfelejtett root jelszavunkat Linux rendszerünkön

botond küldte be 2020. 10. 08., cs – 13:10 időpontban

Tartalom

 

Bevezető

A root felhasználóval közvetlenül nem mindig lépünk be a rendszerbe, ezáltal sokáig nem is használjuk annak jelszavát. Előfordulhat hogy elfelejtjük, és a sudo parancs sem áll rendelkezésünkre. Ha ilyen fordulna elő, erre az esetre nézünk meg kétféle megoldást is, amikkel visszaállíthatjuk elfelejtett root jelszavunkat Debian és Ubuntu rendszereken.

 

 

Elfelejtett root jelszó visszaállítása a GRUB menü segítségével

Az elfelejtett root jelszó visszaállításához először be kell lépnünk a GRUB menüjébe. Ehhez el kell indítani/újra kell indítani a számítógépet. Ebben a mai példában én két VirtualBox gépen mutatom be párhuzamosan ennek a műveletnek a lépéseit.

Rendszer elidítása/újraindítása

Indítsuk el a gépet, majd várjuk meg, amíg elindul a GRUB. Ubuntu rendszerek esetén ha magától nem jelenik meg a GRUB menü, akkor a boot folyamat elején tartsuk nyomva a bal Shift billentyűt. Nálam tehát így néznek ki a Debian 10 (Buster) és az Ubuntu 20.04 LTS (Focal Fossa) GRUB menüi:

Virtuális gépek indítása - Debian 10 (Buster) és Ubuntu 20.04 LTS (Focal Fossa) - A GRUB menük indulása

Az elején amíg elférnek egymás mellett az ablakok az asztalon, addig az első néhány lépést így egyben mutatom.

Root konzol elindítása

Debian rendszeren válasszuk a "Speciális beállítások ehhez: Debian GNU/Linux" opciót, Ubuntun pedig a (nálam angol nyelvű menüben) "Advanced options for Ubuntu" opciót. Ekkor bejönnek a speciális lehetőségek mindkét rendszer esetén:

GRUB menü - Speciális beállítások a Debian és az Ubuntu rendszereken

Ha több operációs rendszer van a gépen, akkor természetesen a megfelelő rendszert válasszuk ki, amelyiken vissza szeretnénk állítani a root jelszót.

Ezután nyomjuk le az e billentyűt, ekkor előjönnek a GRUB paraméterek:

GRUB paraméterek megnyitása

Itt görgessünk le a kurzorral szövegdoboz legaljára, ahol a Linux kernel betöltő részt találjuk:

GRUB paraméterek - Linux kernel betöltése rész megkeresése

Itt át kell állítani, hogy az ro (read only) helyett rw (read/write), azaz írható módban csatolja fel a root fájlrendszert, valamint hogy indítsa el a Bash-ot.

Itt készüljünk arra, hogy a rendszernek ebben az állapotában sok része még nincsen betöltve, így például a billentyűzet-kiosztás sem, tehát ha magyar billentyűzet-kiosztást használunk, akkor az most angol kiosztással fog működni. Ennek megfelelően például az "=" jelet az "ó" betű helyén találjuk meg, stb...

 

 

Tehát a kurzorral navigáljunk a sor végén lévő részhez, és írjuk át az alábbi módon:

Debian rendszeren

Erről:

ro quiet

erre:

rw quiet init=/bin/bash

Ubuntu rendszeren

Erről:

ro maybe-ubiquity

erre:

rw maybe-ubiquity init=/bin/bash

Végül az alábbihoz hasonlóan kell kinéznie:

GRUB paraméterek - Linux kernel betöltése rész módosítása

Természetesen ezektől eltérő GRUB/Debian/Ubuntu verziók esetén előfordulhatnak más opciók is benne, de a lényeg, hogy az ro-t rw-re javítsuk, és a sor végéhez adjuk hozzá az "init=/bin/bash" részt.

A konfiguráció elindításához nyomjuk meg az F10 billentyűt, ekkor kapunk egy root konzolt:

Debian

Debian root konzol

Ubuntu

Ubuntu esetén kicsit több dolgot tölt be, végül itt is kapunk egy root prompt-ot:

Ubuntu root konzol

Root jelszó megváltoztatása

 

 

Végül változtassuk meg a root jelszót, adjunk meg egy új jelszót. Futtassuk mindkét rendszeren az alábbi parancsot:

passwd root

Majd adjunk meg egy tetszőleges új jelszót, és ismételjük meg.

Debian

Root jelszó megváltoztatása Debian rendszeren

Ubuntu

Root jelszó megváltoztatása Ubuntu rendszeren

Ezzel meg is volnánk, most indítsuk el a rendszert az alábbi paranccsal:

exec /sbin/init

Belépés a root felhasználóval

Ezután megkapjuk a szokásos beléptető részt. Ebben a példában én a minimális szerverekkel mutatom be szöveges módban a belépést, de grafikus asztalkörnyezeteken is tudjuk használni a root felhasználót:

Debian root belépés

Ubuntu root belépés

Innentől tehát rendesen használhatjuk a root felhasználónkat az új jelszóval.

 

Elfelejtett root jelszó visszaállítása a GParted Live segítségével

 

 

Ha nincs GRUB betöltő a gépre telepítve, vagy éppen más boot manager programmal indul a gép, amit nem ismerünk, akkor alternatív megoldásként vannak még más lehetőségeink is, amikkel visszaállíthatjuk az elfelejtett root jelszavunkat.

Erre a célra gyakorlatilag bármelyik Linux disztribúció Live telepítőkészlete (természetesen amelyiknek van) kiválóan alkalmas, így például a Debian vagy Ubuntu Live telepítői is, a lényeg az, hogy induljon el egy Linux rendszer, és legyen root terminálunk vagy konzolunk.

Ebben a példában én a GParted Live rendszerrel fogom végrehajtani ezt a feladatot. Ez egy Debian alapú, pehelysúlyú kis rendszer, ami kimondottan ilyen helyreállítási, javítási és karbantartási feladatok elvégzésére lett kialakítva. Korábban erről már készítettem egy másik leírást, aminek a lépéseit itt most nem részletezem, tehát az alábbi linken találhatjuk meg, hogy hogyan szerezhetjük be, hogyan írhatjuk rá egy pendrive-ra, és hogyan indíthatunk el benne egy root terminált (a link új ablakban nyílik meg):

Bármelyik megoldást is választjuk: akár valamelyik disztribúció Live rendszerét, akár az általam említettet, indítsuk el, majd nyissunk benne egy root terminált, és innentől már mindegyiknél ugyanazokat a lépéseket kell követnünk.

Root terminál indítása

Innentől már nem választom ketté a példákat Debian és Ubuntu rendszerekre, mert itt már az elindított Live rendszer fog működni bármelyik disztribúción is kelljen visszaállítanunk a root jelszót. Tehát én most a GParted Live rendszerben nyitok egy root terminált, az idáig vezető lépéseket pedig a fentebb említett leírásban találhatjuk meg:

GParted Live - Root terminál és a GParted program

A GParted Live alapból elindítja magát a GParted particionáló programot, amit kint is hagyok, így előttem vannak a gépben lévő meghajtók, partíciók és jelöléseik. Ezekre szükségünk lesz.

Rendszer partíció felcsatolása

A Live rendszerek nem csatolják fel a gépben lévő partíciókat, így nekünk kell ezt megtenni. Először keressük meg a számítógép rendszer partícióját. Ha ugyanígy előttünk van a grafikus felületen egy particionáló program, mint nálam a GParted, akkor ezt láthatjuk is egyből, de ha csak szöveges konzolunk van, vagy éppen nincs kéznél más grafikus eszköz, akkor adjuk ki az alábbi parancsot:

fdisk -l

GParted Live - Rendszerpartíció megkeresése

Ha nem vagyunk jártasak a partíciók terén, akkor a partíció mérete, típusa és boot-flag állapota alapján könnyen eldönthetjük, hogy melyik partícióra van szükségünk.

Ebben a példában a virtuális gépben van több partíció is, ezek közül itt a /dev/sda1 jelzésűre illenek az imént említett paraméterek: 36 GB méretű, típusa: Linux, fájlrendszere ext4, és boot flag is van rajta. Tehát ebben a példában ez lesz a megfelelő.

Hozzunk létre egy csatolási pontot ennek a partíciónak, majd csatoljuk fel:

mkdir  /mnt/system
mount  /dev/sda1  /mnt/system

GParted Live - Rendszerpartíció felcsatolása

Chroot-olás a rendszer partícióba

A követlező lépésben úgy kell tennünk, mintha ez a csatolási pont (/mnt/system) lenne a rendes fájlrendszerünk, ezt hívják chroot-olásnak:

chroot  /mnt/system

A parancs kiadása után dob egy figyelmeztetést, hogy nem tudja beállítani a megfelelő lokalizációt, de ezzel nem kell foglalkoznunk. Majd bekerülünk a gyökér könyvtárba, ami már a felcsatolt meghajtó gyökérkönyvtára:

GParted Live - Chroot-olás a rendszer partícióba

Csak érdekességképpen, itt egyből színes lett a prompt-unk és az ls parancsunk kimenete is. Ez azért van, mert az eredeti Debian 10 (Buster) minimális szerver telepítésénél anno beállítottam a színes prompt-ot, és most lefutott ennek a rendszernek a .bashrc fájlja a /root könyvtárból. Tehát ebből láthatjuk, hogy sikerült a chroot. Így az ls parancs kimenete is már a felcsatolt rendszerpartíció tartalmát adta vissza.

Root jelszó megváltoztatása

 

 

Ezután már könnyedén megváltoztathatjuk a root jelszót:

passwd root

GParted Live - Root jelszó megváltoztatása

Adjuk meg kétszer egymásután az új root jelszót.

Kilépés és rendszer újraindítása

Végül nem maradt más hátra, minthogy visszafelé kilépegetünk mindenből:

Lépjünk ki a chroot shellből:

exit

Csatoljuk le a rendszerpartíciót:

umount /mnt/system
Ez nagyon fontos, mert ha nem csatoljuk le, és úgy indítjuk újra a gépet, akkor sérülhet a fájlrendszer!

És kiléphetünk a root-ból is:

exit

GParted Live - Kilépés a rendszerből

Ezután távolítsuk el a Live telepítőt a DVD-ből vagy az USB-ből, és indítsuk újra a gépet.

Belépés a root felhasználóval

Most már beléphetünk a root felhasználóvak és az új jelszavunkkal a rendszerbe:

Belépés a root felhasználóval

 

 

Konklúzió

Ezzel a két módszerrel nyugodtak lehetünk, hogy vissza tudjuk állítani a root jelszót, ha véletlenül elfelejtettük. Viszont ez egyben azt is jelenti, hogy ha illetéktelenek hozzáférnek a számítógépünkhöz, laptopunkhoz, akkor ugyanígy módosíthatják a root jelszavunkat, illetve hozzáférhetnek adatainkhoz. Ez ellen lemeztitkosítással védekezhetünk, amivel megnehezíthetjük az illetéktelen behatolók dolgát.