Восстановление пароля суперпользователя

Существует несколько способов, позволяющих восстановить пароль суперпользователя. Все они предусматривают локальный доступ к компьютеру.

Способ номер раз

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

При загрузке можно передать параметр init, при помощи которого указывается какую программу должно запустить ядро вместо стандартной программы init. В качестве аргумента, параметру следует указать любую программу-оболочку: /bin/bash, /bin/tcsh или любую другую.

init=/bin/bash

Ядро загрузится, подключит корневую файловую систему в режиме только для чтения и запустит программу-оболочку (bash). В результате вам будет доступна командная строка с правами суперпользователя.

Дальше дело техники. Сначала следует переподключить корневую файловую систему в режиме полного доступа.

mount -o rw,remount /

Внимание! Если после выполнения программы mount на экране не появляется командная строка, попробуйте воспользоваться другой оболочкой, например /bin/tcsh.

Затем запустить программу смены пароля и установить новый пароль суперпользователя.

passwd

И в конце, необходимо привести корневую файловую систему в исходное состояние. При изменении режима rw на ro все буфера будут сброшены на диск:

mount -o ro,remount /

Другой вариант - это вручную сбросить буфера на диск при помощи программы sync:

sync

Дальше просто перегружаем компьютер: Alt+Ctrl+Del. Так как корневая файловая система перемонтирована в режим только для чтения, то перезагрузка никак ей не повредит. В результате у суперпользователя новый пароль.

Примечание. Вместо перезагрузки можно после перемонтирования в ro (просто sync недостаточно!) набрать exec /sbin/init и система будет загружена в обычном режиме без перезагрузки.

Способ номер два

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

После загрузки с диска необходимо получить доступ к командной строке. В Slackware Linux это достаточно просто — загружаетесь так же как и в случае установки системы. В других дистрибутивах необходимо войти в режим восстановления системы. После загрузки с диска вы имеете все необходимые для работы программы и права суперпользователя.

Дальше подключаете раздел в котором находится корневая файловая система. Предположим, что она находится в разделе /dev/hda3.

mount /dev/hda3 /mnt

Теперь необходимо запустить программу смены пароля. Но, если ее просто запустить, она не поменяет пароль пользователя в файле shadow. Точнее говоря поменяет, но не в том. Интересующий нас файл находится в директории /mnt/etc. Поэтому следует воспользоваться программой chroot.

chroot /mnt passwd

Chroot подменяет корневую директорию у запускаемой программы. Таким образом passwd будет думать, что корень находится в директории /mnt и запишет новый пароль в файл /mnt/etc/shadow. Как раз то, что нам и нужно.

Далее, корректно завершим работу с /dev/hda3:

umount /dev/hda3 /mnt

Теперь можно и перегружаться.

Оригинал статьи http://wiki.kryukov.biz/wiki/Восстановление_пароля_суперпользователя


Google