Помнится, я как-то писал про то, как восстановить пароль root для Debian. Настала очередь Archlinux. Собственно, сыр-бор получился из-за того, что одним солнечным морозным утром я не смог получить доступ к серверу (ни пользователь, ни root не принимали своих паролей). Способов три:
- Сменить его в chroot (не сработал);
- Использование GRUB (описан в статье про Debian);
- Удаление пароля, загрузка системы и смена пароля руками (вот о нем и пойдет речь, как о самом простом).
Вообще, все, на самом деле, очень просто. Суть такова:
- загружаемся с любого LiveCD (архитектура должна совпадать!),
- монтируем корневой раздел (/)
- удаляем пароль
- загружаемся в рабочую систему
- меняем пароль (можно указывать любой, в т.ч старый)
Итак, поехали.
Пункт номер раз: Загружаемся с 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: пароль успешно обновлён
Вот такой вот простой и удобный способ.