Сброс пароля в Linux

19.05.2021

Каждый пользователь хотя бы раз забывал пароли от веб-сайтов, социальных сетей, которыми давно не пользовались. Аналогичная ситуация может произойти и сдистрибутивом Linux. Его не составит труда забыть, особенно если есть много различных дистрибутивов с различными паролями. Дальше поговорим о том, что делать если пароль от Linux был забыт, как его правильно сбросить и не стереть при этом свои данные. Сброс пароля Linux - не очень сложная задача. Но следует уточнить, что узнать пароль нельзя, его можно только сбросить.

Сбрасываем пароль при помощи LiveCD

Чтобы сбросить пароль, необходимо вооружиться LiveCD диском с любым Linux дистрибутивом, важно только чтобы совпадала разрядность системы которую надо восстановить и системы на диске. Лучше всего берите последние версии дистрибутивов. С ними удобнее работать, хотя подойдут даже Gentoo и ArchLinux.

Дальше загрузитесь с LiveCD диска и откройте терминал. Если диск загрузился в командную оболочку без графического интерфейса, ничего страшного. Вам нужно знать на каком жестком диске находится корневая файловая система дистрибутива, который вы собрались устанавливать. Посмотреть все доступные диски можно командой:

$ fdisk -l

Сброс пароля в Linux

Как правило, название диска начинается с букв sd для обычных дисков и с nvme для SSD M.2. При этом корневой раздел небольшой, если под домашнюю папку был отведен отдельный раздел во время установки и он имеет файловую систему Linux. Если отдельный раздел для загрузчика не был сделан, то корневой раздел ещё и будет отмечен звездочкой как загрузочный. Например, это /dev/nvme0n1p1. Его надо примонтировать в /mnt:

 $ mount /dev/nvme0n1p1 /mnt/

Сброс пароля в Linux

Так мы видим /dev/nvme0n1p1 - раздел куда была установлена система. С тем же успехом это может быть /dev/sda1 или /dev/sdb5. Затем войдите в chroot окружение:

$ chroot /mnt /bin/bash

Сброс пароля в Linux

Теперь мы оказываемся в окружение дистрибутива, который установлен на примонтированном диске. Это такой вариант режима восстановления без запуска операционной системы.

Дальше пользователь может установить пароль пользователя root linux с помощью команды passwd:

$ passwd root

Сброс пароля в Linux

Может быть так, что утилита выдаст ошибку, но если она не выдала ошибок, пароль был успешно обновлен и вы можете пользоваться своей системой.

Есть ещё один способ. Пароли всех пользователей хранятся в файле /etc/shadow в таком виде:

имя_пользователя:зашифрованный_парлоь:идентификатор_пользователя:идентификатор_группы

Например:

root:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:0:0:::::
bin:!!:9797:0:::::
daemon:!!:9797:0:::::

Для каждой записи все параметры разделены двоеточиями, первый параметр (root) - это имя пользователя, второй - (AAAAAAAAAAAAAAAAAA...) - хеш пароля. Чтобы изменить пароль на нужный, сначала надо вручную создать его хэш. Для этого можно воспользоваться такой командой:

$ openssl passwd -1 -salt xyz новый_пароль

Сброс пароля в Linux

Дальше вставляем его вместо прежнего:

$ vi /etc/passwd

Сброс пароля в Linux

Полноценно убрать пароль Linux не представляется возможным, без пароля вы не сможете авторизоваться в с системе, здесь самый оптимальный вариант - заменить на новый. После замены сохраните изменения и всё готово. Перед перезагрузкой не забудьте выйти из chroot и отмонтировать корень системы:

exit

umount /mnt

Сбрасываем пароль при помощи Grub

Если диска нет под рукой, можно воспользоваться с этой целью Grub. В меню выбора вариантов загрузки нажмите E для редактирования параметров ядра:

Сброс пароля в Linux

Здесь в строчке vmlinuz в после всех параметров (см скриншот) нужно дописать параметр init=/bin/bash:

Сброс пароля в Linux

Чтобы продолжить загрузку, необходимо нажать Ctrl+D. После завершения инициалиации ядро передаст управление командой оболочке bash, которую мы передали в параметрах ядра где вы сможете восстановить пароль. По умолчанию файловая система монтируется в режиме read-only, чтобы иметь возможность что-то менять надо перемонтировать её для записи:

mount -o reomount,rw /

Все остальные действия с файлом /etc/shadow аналогичны первому пункту.