
Давайте рассмотрим несколько способов сбрасывания системного пароля в Linux. Вы наверное знаете, что у пользователя root есть права на изменение пароля любого пользователя в системе. А что если вы забыли пароль от рута? Вот об этом и пойдет речь в статье.
При восстановления пароля (рута или любого другого пользователя) встречаются две различные ситуации, требующие разного подхода.
Когда можно использовать GRUB
Если у вас установлен загрузчик GRUB и есть доступ к редактированию параметров загрузки выделенной строки, то задача становится очень простой. Следуйте дальнейшим рекомендациям, и получите права рута в кратчайшие сроки. А как только вы станете рутом, сразу сможете сделать все что угодно.
- В окне загрузчика GRUB выделите строку с нужной версией линукса, для которого вам нужно сбросить пароль
- Нажмите 'e' для редактирования. Выберите строку ядра. Добавьте 'single' в конец строки. Нажмите 'b' для загрузки. Если система продолжает запрашивать пароль рута, добавьте в конец строки init=/bin/bash Снова нажмите 'b' для загрузки
- После этого вы либо увидите приглашение для рута, либо восстанавливающее меню, где нужно выбрать строку с рутом. Используйте passwd <имя пользователя> для того чтобы изменить пароль у любого пользователя
- Выполните команду reboot для перезагрузки системы и затем авторизуйтесь с новым паролем
Также следует заметить что некоторые дистрибутивы создают режим восстановления во время установки. Если в вашем меню GRUB есть такой пункт, вам не нужно производить все вышеперечисленные действия, просто выберите режим восстановления, а затем приглашение для рута, в последующем диалоговом окне.
Когда нет возможности использовать GRUB
Если вы не используете GRUB по каким-то причинам, вы можете восстановить пароль с помощью live CD (Я буду использовать Ubuntu live CD, вы можете взять любой другой). Просто следуйте дальнейшим инструкциям:
- Загрузитесь с live CD
- Выберите «Попробовать Ubuntu без изменений на вашем компьютере» (Try Ubuntu without any changes to your computer)

- Когда система будет готова, запустите окно терминала и приготовьтесь к выполнению некоторых действий в командной строке
- Напечатайте в окне терминала sudo fdisk -l. В результате мы узнаем, в какой раздел диска установлен линукс и непосредственно имя самого жесткого диска, в представленном примере нужный нам раздел называется /dev/sda1 . Если вы точно знаете нужный раздел, этот шаг можно пропустить.

- Далее нам нужно монтировать линукс-раздел. Для этого создайте папку, в качестве точки для монтирования, используя команду: sudo mkdir /media/linx_part

- Примонтируйте линукс-раздел командой sudo mount /dev/sda1 /media/linx_part
- Измените рута в примонтированном разделе — sudo chroot /media/sda1
- Используйте passwd для изменения текущего пароля на новый

- Перезагрузите систему с помощью команды reboot
Возможно у вас есть свои методы восстановления пароля? Поделитесь ими.
комментарии (65)
«Делай как вендузятнег» — реинсталл системы?
Зачем создавать себе геморой? :)
2) есть определенные причины когда надо, что бы не было доступа локально
3) Кластер не кто не отменял =)
Я только авторизацию по флешке делал.
может быть:
sudo chroot /media/linx_part?
Например строка вида root:xxx:yyy:zzz:www:rrr::: -удалим xxx, пароль будет пустой, потом его можно создать командой passwd
(от рута)
awk 'BEGIN{FS=":"} { if ($1 ~ /^root$/ && $2 ~ /.*/) $2 = ""; print $0}' /etc/shadow > /tmp/shadow && mv /tmp/shadow /etc/shadow
Хотите большей безопасности — шифруйте раздел, но тогда забытый пароль восстановить не удастся, забыл пароль — все сноси.
(если есть какой то штатный способ, готов получить ссылкой, про нештатные знаю)
например с подменом cmd заставки…
нештатный и мой любимый ERD commander (infr@ live cd)
процентов 70 прокатит.
но лучше ERD
Может, у меня просто все адекватные знакомые… Но тех, кто живет без обновлений системы — единицы.
1) Загрузочный диск надо иметь той же архитектуры (т.е. если у вас x86_64 — лайвсиди нужен x86_64 и т.п.)
2) Если на загрузочном диске и в поциенте используется разные оболочки (тот же system rescue cd юзает ZSH, а в бубунте его по умолчанию нет) то можно получить ругательства вида
chroot: cannot run command `/bin/zsh': No such file or directory
Эту проблему решил по-быстрому созданием ссылки
ln -s /media/linx_part/bin/bash /media/linx_part/bin/zsh
хотя скорее всего существуют более корректные и идеологически правильные решения :)
$sudo chroot /mnt/lin_part /bin/bash
и оно запускает баш
chroot NEWROOT [COMMAND...]
If no command is given, run ‘‘${SHELL} -i’’ (default: /bin/sh).
Можно и старше. Т.е. если стоит i386, можно сделать chroot из x86_64, но не наоборот. Исключение, вырубленная в 64 битном ядре поддержка 32 битных бинарок, но это редкость.
linux64 еще есть в 32х битной системе, но хз что получится из этого, нет шанса проверить.
flags.
Насколько я понял ман, это просто обходка для `uname -m` и переменных (HOSTTYPE, ARCH, MACHINETYPE).
flags.
Насколько я понял ман, это просто обходка для `uname -m` и переменных (HOSTTYPE, ARCH, MACHINETYPE).
вы, видимо, не понимаете сути процесса
просто загрузился в Windows, скачал какую-то утилиту для работы с ext2, открыл файл с паролями и подставил руту зашифрованный пароль от своего пользователя :)
если смонтировали раздел в linx_part
sudo mount /dev/sda1 /media/linx_part
то и chroot в него
sudo chroot /media/linx_part
sudo chroot /media/sda1 — ошибка?
Так же не помог вариант перехода на 1 runlevel (отлично работало в Mandriv'е).
С liveCD вариант не подходил, так как на машине была 64битная ОС, а liveCD был Ubuntu x86.
В итоге, пришлось очистить пароль в /etc/shadow
Вывод: необходимо помнить обо всех способах сброса пароля (на всякий случай)!
PS Прошу прощение за нижний комментарий добавленный не в ту ветку…
«linux single» или просто «single»
что говорит системе запуститься в однопользовательском режиме с автологином root, далее можно поменять его пароль (passwd), перезапуститься и наслаждаться.
Методы защиты:
— запаролить grub (или lilo в ранних версиях)
— отключить меню grub (lilo)
— перекомпилировать ядро без поддержки опции загрузки single