Každý uživatel alespoň jednou zapomněl hesla k webovým stránkám nebo sociálním sítím, které dlouho nepoužíval. Podobná situace může nastat i v případě distribuce Linuxu. Není těžké je zapomenout, zejména pokud existuje mnoho různých distribucí s různými hesly. Dále si řekneme, co dělat, když heslo do Linuxu zapomenete, jak ho správně obnovit a nesmazat si data. Obnovení hesla pro Linux není příliš obtížný úkol. Je však třeba si ujasnit, že heslo nelze zjistit, lze ho pouze resetovat.
Pro resetování hesla se musíte vyzbrojit diskem LiveCD s libovolnou linuxovou distribucí, důležité je pouze to, aby odpovídala bitová kapacita systému, který má být obnoven, a systému na disku. Nejlepší je vzít nejnovější verze distribucí. S nimi se pracuje pohodlněji, i když i Gentoo a ArchLinux si vystačí.
Dále nabootujte z disku LiveCD a otevřete terminál. Pokud se disk spustí do příkazového prostředí bez grafického rozhraní, nevadí. Potřebujete vědět, na kterém pevném disku se nachází kořenový souborový systém distribuce, kterou se chystáte instalovat. Všechny dostupné disky si můžete prohlédnout pomocí příkazu:
$ fdisk -l
Název disku zpravidla začíná písmeny sd u běžných disků a nvme u disků M.2 SSD. Kořenový oddíl je malý, pokud byl při instalaci přidělen samostatný oddíl pro domovskou složku a je na něm systém souborů Linux. Pokud nebyl vytvořen samostatný oddíl pro zavaděč, bude kořenový oddíl rovněž označen hvězdičkou jako zaváděcí. Jedná se například o /dev/nvme0n1p1
. Měl by být připojen k /mnt
:
$ mount /dev/nvme0n1p1 /mnt/
Vidíme tedy /dev/nvme0n1p1 - oddíl, na který byl systém nainstalován. Stejně tak by to mohl být /dev/sda1
nebo /dev/sdb5
. Poté zadejte prostředí chroot:
$ chroot /mnt /bin/bash
Nyní se nacházíme v prostředí distribuce, která je nainstalována na připojeném disku. Jedná se o takovou variantu režimu obnovy bez spuštění operačního systému.
Dále může uživatel nastavit heslo uživatele root linuxu pomocí příkazu passwd
:
$ passwd root
Může se stát, že nástroj vyhodí chybu, ale pokud žádnou chybu nevyhodil, heslo bylo úspěšně aktualizováno a systém můžete používat.
Existuje ještě jeden způsob. Hesla všech uživatelů jsou uložena v souboru /etc/shadow
takto:
user_name:encrypted password:user_id:group id_id
Například:
root:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:0:0:::::
bin:!!:9797:0:::::
daemon:!!:9797:0:::::
For each entry, all parameters are separated by colons, the first parameter (root) is the username, the second parameter (AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...) is the password hash. Chcete-li změnit heslo na požadované, musíte nejprve ručně vytvořit jeho hash. K tomu můžete použít tento příkaz:
$ openssl passwd -1 -salt xyz new_password
Poté jej vložte na místo předchozího:
$ vi /etc/passwd
Heslo pro Linux není možné zcela odstranit, bez hesla se nebudete moci v systému autorizovat, proto je nejlepší možností nahradit jej novým. Po jeho nahrazení uložte změny a je hotovo. Před restartem nezapomeňte ukončit chroot a odmountovat kořenový adresář systému:
$ exit
$ umount /mnt
Pokud nemáte po ruce disk, můžete k tomuto účelu použít Grub. V nabídce možností spouštění systému stiskněte klávesu E a upravte parametry jádra:
Zde v řádku vmlinuz za všechny parametry (viz obrázek) je třeba přidat parametr init=/bin/bash
:
Stisknutím klávesové zkratky Ctrl+D
pokračujte v zavádění systému. Po dokončení inicializace jádro předá řízení příkazu shellu bash, který jsme předali v parametrech jádra, kde můžete obnovit heslo. Ve výchozím nastavení je souborový systém připojen v režimu pouze pro čtení, abyste mohli cokoli měnit, musíte jej znovu připojit pro zápis:
$ exit
$ umount /mnt
Všechny ostatní akce se souborem /etc/shadow
jsou podobné jako v prvním bodě.