Каждый пользователь хотя бы раз забывал пароли от веб-сайтов, социальных сетей, которыми давно не пользовались. Аналогичная ситуация может произойти и сдистрибутивом Linux. Его не составит труда забыть, особенно если есть много различных дистрибутивов с различными паролями. Дальше поговорим о том, что делать если пароль от Linux был забыт, как его правильно сбросить и не стереть при этом свои данные. Сброс пароля Linux - не очень сложная задача. Но следует уточнить, что узнать пароль нельзя, его можно только сбросить.
Чтобы сбросить пароль, необходимо вооружиться LiveCD диском с любым Linux дистрибутивом, важно только чтобы совпадала разрядность системы которую надо восстановить и системы на диске. Лучше всего берите последние версии дистрибутивов. С ними удобнее работать, хотя подойдут даже Gentoo и ArchLinux.
Дальше загрузитесь с LiveCD диска и откройте терминал. Если диск загрузился в командную оболочку без графического интерфейса, ничего страшного. Вам нужно знать на каком жестком диске находится корневая файловая система дистрибутива, который вы собрались устанавливать. Посмотреть все доступные диски можно командой:
$ fdisk -l
Как правило, название диска начинается с букв sd для обычных дисков и с nvme для SSD M.2. При этом корневой раздел небольшой, если под домашнюю папку был отведен отдельный раздел во время установки и он имеет файловую систему Linux. Если отдельный раздел для загрузчика не был сделан, то корневой раздел ещё и будет отмечен звездочкой как загрузочный. Например, это /dev/nvme0n1p1. Его надо примонтировать в /mnt:
$ mount /dev/nvme0n1p1 /mnt/
Так мы видим /dev/nvme0n1p1 - раздел куда была установлена система. С тем же успехом это может быть /dev/sda1 или /dev/sdb5. Затем войдите в chroot окружение:
$ chroot /mnt /bin/bash
Теперь мы оказываемся в окружение дистрибутива, который установлен на примонтированном диске. Это такой вариант режима восстановления без запуска операционной системы.
Дальше пользователь может установить пароль пользователя root linux с помощью команды passwd:
$ passwd root
Может быть так, что утилита выдаст ошибку, но если она не выдала ошибок, пароль был успешно обновлен и вы можете пользоваться своей системой.
Есть ещё один способ. Пароли всех пользователей хранятся в файле /etc/shadow в таком виде:
имя_пользователя:зашифрованный_парлоь:идентификатор_пользователя:идентификатор_группы
Например:
Для каждой записи все параметры разделены двоеточиями, первый параметр (root) - это имя пользователя, второй - (AAAAAAAAAAAAAAAAAA...) - хеш пароля. Чтобы изменить пароль на нужный, сначала надо вручную создать его хэш. Для этого можно воспользоваться такой командой:
$ openssl passwd -1 -salt xyz новый_пароль
Дальше вставляем его вместо прежнего:
$ vi /etc/passwd
Полноценно убрать пароль Linux не представляется возможным, без пароля вы не сможете авторизоваться в с системе, здесь самый оптимальный вариант - заменить на новый. После замены сохраните изменения и всё готово. Перед перезагрузкой не забудьте выйти из chroot и отмонтировать корень системы:
$ exit
$ umount /mnt
Если диска нет под рукой, можно воспользоваться с этой целью Grub. В меню выбора вариантов загрузки нажмите E для редактирования параметров ядра:
Здесь в строчке vmlinuz в после всех параметров (см скриншот) нужно дописать параметр init=/bin/bash:
Чтобы продолжить загрузку, необходимо нажать Ctrl+D. После завершения инициалиации ядро передаст управление командой оболочке bash, которую мы передали в параметрах ядра где вы сможете восстановить пароль. По умолчанию файловая система монтируется в режиме read-only, чтобы иметь возможность что-то менять надо перемонтировать её для записи:
$ mount -o reomount,rw /
Все остальные действия с файлом /etc/shadow аналогичны первому пункту.