Как восстановить забытый пароль root в ArchLinux

Помнится, я как-то писал про то, как восстановить пароль root для Debian. Настала очередь Archlinux. Собственно, сыр-бор получился из-за того, что одним солнечным морозным утром я не смог получить доступ к серверу (ни пользователь, ни root не принимали своих паролей). Способов три:

  1. Сменить его в chroot (не сработал);
  2. Использование GRUB (описан в статье про Debian);
  3. Удаление пароля, загрузка системы и смена пароля руками (вот о нем и пойдет речь, как о самом простом).

Вообще, все, на самом деле, очень просто. Суть такова:

  1. загружаемся с любого LiveCD (архитектура должна совпадать!),
  2. монтируем корневой раздел (/)
  3. удаляем пароль
  4. загружаемся в рабочую систему
  5. меняем пароль (можно указывать любой, в т.ч старый)

Итак, поехали.

Пункт номер раз: Загружаемся с LiveCD.

Я загрузился с диска, с которого ставил систему, но можно использовать и любой другой дистрибутив Linux, лишь бы совпадала архитектура. То есть, если сломалась x64 — грузимся с Live x64; если i386 (i686), то такую же и используем.

Пункт номер два: Монтируем корневой раздел

После того, как загрузились с диска — будет нам консоль от имени root (это я про тот вариант, если загружаться с родного арчедиска).

Пусть система у нас будет стоять на диске sda.

Смотрим, какие разделы у нас где:

lsblk /dev/sda

Можно и так:

fdisk -l

Но первый вариант мне нравится больше.

У меня корневой раздел (для танкистов и новичков: это где лежит папка /etc) находится на разделе /dev/sda2

Монтируем его:

mkdir /mnt/arch
mount /dev/sda2 /mnt/arch

Первой строкой мы создаем директорию, а второй, собственно, монтируем.

Пункт номер три: Удаляем пароль

Теперь, когда у нас подключен раздел, можно убивать пароли. В арче есть nano, я им и воспользуюсь:

nano /mnt/arch/etc/shadow

В самой первой строке будет root (ниже есть еще пользователи, можно и им пароли поубивать, у меня они все равно не работали, так что я удалил все пароли).

Вот строка, которая была у меня:

root:$6$VfyGzb/J$.We8T2OZ/YXhO2s1GqqHIxIpTrrf4MSMSUJcuAKKad/RhcOneoM6WHQ1EbiZwApcuykOnivf/46yls7zr.Fp6.:16129::::::

Из нее хэш между двоеточиями после «root:», чтобы получилось вот так:

root::16129::::::

Сохраняемся и машем перезагружаемся в систему на винте.

Пункт номер четыре:

reboot
или
shutdown -h now

Пункт номер пять: Меняем пароль

Собственно, тут все как обычно. Я загрузился сначала в пользователя (он у меня загружается автоматом, ибо машина домашняя и особо нет необходимости что-то от кого-то прятать). В общем, под пользователем:

$ passwd
Введите новый пароль UNIX:
Повторите ввод нового пароля UNIX:
passwd: пароль успешно обновлён

затем

$ sudo passwd root
[sudo] password for homeuser:
Введите новый пароль UNIX:
Повторите ввод нового пароля UNIX:
passwd: пароль успешно обновлён

Вот такой вот простой и удобный способ.

0

Добавить комментарий