Username 07.04.2009 21:29

Tips & tricksЧто делать, если забыл пароль root'а

Как ни странно, но к написанию этого поста меня натолкнул вот этот. Сам я использую Ubuntu 9.04, которая, как сами понимаете, бета. Но дело не в этом. Решил я, а возьму-ка и попробую свежий fglrx (8.600 бета, бывший в репах, стабильный 8.552)! И легко установил его.

После этого я ушел в ребут, потирая ручки, и...





Мало того, что иксы не стартанули, они забили экран каким-то дерьмом изящной радугой и подвесили ноут намертво, да так, что реагировал он исключительно на мягкое выключение через ACPI (кнопка Power, однократное нажатие). //кстати, в 9.04 Ctrl+Alt+Backspace не убивает иксы, такая фича. Пруфлинк



Я как бывалый линуксоид с красными глазами и шрамами на заднице не пугающийся нуб спокойно повторил операцию и получи то же самое. Дальше я само собой попытался загрузится в третьем ранлевеле и опа! Поставив тройку в строку параметров ядра в грубе, я ничего не получил. Надо сказать, что до этого я сидел только на rpm-based дистрах, и был слегка удивлен. Но потом вспомнил, что в debian-based дистрибутивах сценарии запуска вообще по-другому написаны. Я погуглил, но внятного рабочего метода, как из-под груба запустится в нужном ранлевеле (1-ом в моем случае) я не нашел:( Отсюда - первое



Прошу описать кого-нибудь подробно, толково и интересно про уровни запуска в дебиане. При этом я хочу знать, как запускать через Груб, через консоль, и наконец, зачем они так наизвращались с init. Наверно, лучше всего ответ сделать в блоге На заказ.



Вы спросите, а причем же тут пароль рута? А вот причем. Представьте какая ситуация сложилась. Я не могу запустить машину вообще никак, не зная, как запустить нужный ранлевел. Все методы, которые я видел, касались редактирования конфигов, а это мне не подходило - ну разве что грузится с внешнего носителя, чего не хотелось. Так вот машинально я добавил в параметры ядра (моем случае строку kernel)

init=/bin/bash

Вуаля, я загрузился с рут-доступом на машине. Правда, там была еще и опция ro (read-only), так что я ничего по сути не мог сделать, но это уже неважно, ребутнувшись и изменив на rw я снова почуствовал себя рутом:)

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



Алгоритм.

1. Добавляем в параметры ядра rw init=/bin/bash

2. Грузимся

3. root@yourcomputername:/$passwd

4. вводим пароль

5. повторяем пароль

6. ???????

7. PROFIT!!!



Вот так вот это и делается. Сам не проверял, но наверняка это можно осуществить, логин рута в описанном случае полноценный (сам я удалил драйвер через apt и пользовался mc к примеру).

ЗЫ Очень прошу, расскажите про иниты в дебиане.



UPD. Почему не стартанули иксы забыл сказать. Карта у меня как и у xcr, Radeon Xpress1150, то бишь R300-серии. aticonfig выдавал строчку типа неизвестная карта. И вот почему. Когда вспомнил, было жалко :( ну и хрен с ним, открытые дрова есть.


Тэги: debian fglrx grub init jaunty level passwd root run
+ 3 -
Похожие Поделиться

pluton 07.04.2009 22:11 #
ЗЫ Очень прошу, расскажите про иниты в дебиане.

расскажу, что я знаю.
в убунте вместо sysvinit стоит upstart. собственно, ему тот /etc/inittab не нужен. как ему из груба передать параметр ран-левела, я тоже не нашёл.
вообще, в убунте используется только 2 уровень. остальные -- такие же самые.
ещё инфа тут: http://en.wikipedia.org/wiki/Runlevel#Debian_Linux
Username 07.04.2009 23:00 #
да я не то хочу услышать. Это все понятно. но как это влияет на параметры ядра в грубе и проч.
В убунте по умолчанию стоит второй ранлевел.
librarian 08.04.2009 02:31 #
Что конкретно про инит систему хотите услышать?
Да, как правильно подметил pluton, системы инициализации в Debian и Ububtu - абсолютно разные. А скрипты под эти системы, насколько я знаю - асболютно одинаковые... Хотя и работают конечно...
yuretsz 07.04.2009 23:47 #
Кстати, включение ctrl+alt+backspace в Зайцелопе
librarian 08.04.2009 01:07 #
Нужно загрузиться в single режиме. а не init=/bin/bash
просто добавляете в конце конфига ядра - single
То что Вы написали - чушь какая то.
Username 08.04.2009 01:08 #
поподробнее можно?
Username 08.04.2009 01:52 #
я бы был не я, если бы не попробовал.

Да, если прописать single в параметры, там будет даже некий интерфейс выбора чаво нужно - спасибо, не знал. Так можно получить полноценный рут-логин.
Но. Я пока точно не могу сказать, но мой метод также работает. Более того, проверял обоими способами работу команды passwd - работает, т.е. после ее выполнения можно получить полноценный рут-логин собственно через логин, а не sudo, как это делается по умолчанию в убунту например.

Что-то мне подсказывает, что single - красивая обертка в частности и для моего способа. Ждем подробностей завтра, спать тоже нужно:)
librarian 08.04.2009 02:29 #
Всё очень просто, init=/bin/{ba}sh загружает систему без требования пароля, а также позволяет получить список минимально необходимых модулей для работы системы.
А single запускает систему без старта всех демонов, при этом залогиненым оказывается ТОЛЬКО root, все остальные подключения - невозможны.

single используется если у вас ядро по какой то причине всё остальное не может загрузить, ну и для сброса пароля
Username 08.04.2009 10:44 #
не согласен, пруфлинк
я правильно понял, что как раз init=/bin/bash грузит систему не просто без пароля, а вообще только с поддержкой ядра? то бишь, не загружая все остальное?
librarian 08.04.2009 20:06 #
Короче, принципиально отличие init от single это то что в single никто кроме рута залогинится не может
Из kernel/Documentation/kernel-parameters.txt
init=
Format: <full_path>
Run specified binary instead of /sbin/init as init
process.
S Run init in single mode
zb 10.04.2009 14:46 #
сингле это не то. оно хотя-бы пароль спрашивает.
bmw 08.04.2009 15:25 #
Как-то вы все сложно делаете, в бубунте по дефолту есть пункт загрузки вот с такими примерно опциями:
title Ubuntu 8.10, kernel 2.6.27-14-generic (recovery mode)
uuid 01a87800-7afe-40ae-b88d-9a6264159c4e
kernel /boot/vmlinuz-2.6.27-14-generic root=UUID=01a87800-7afe-40ae-b88d-9a6264159c4e ro single
initrd /boot/initrd.img-2.6.27-14-generic

Для запуска системы в однопользовательском режиме. Фактически это запуск с ранлевелом 1.
Username 08.04.2009 15:35 #
первое что я делаю в свежеустановленной системе - валю лишние строки в грубе, чтобы выглядел он красиво :)
я откровенно, не собирался ей пользоваться никогда.
bmw 08.04.2009 15:48 #
Тогда успехов вам в героическом преодолении собственноручно созданных трудностей. Кстати, параметр hiddenmenu в конфиге груба скроет все пункты, раз уж их количество так смущает.
Username 08.04.2009 16:01 #
за хидденменю плюс, про него я почему-то и не вспоминал:) а насчет трудностей - хм, это наверно, второй раз, когда требовалось грузится без иксов не по умолчанию. В остальных дистрах эта проблема решается куда проще
bmw 09.04.2009 06:42 #
Хм... А можно пример, как решить проблему с несовместимостью драйвера в другом дистрибутиве? Если бы совсем не загружался драйвер -- бубунта бы подгрузила VESA драйвер и в 640х480 предложила бы все исправить, а вот так, чтобы грузилось но давало феерическую цветную картинку -- как такое порешать?
Username 09.04.2009 11:30 #
я че-то не очень понял сарказма/вопроса. Ведь дело в том, что косяк только с иксами. Более того, что в убунте, что в другом дистре по сути, все одинаково - и ядро одно, и драйверы одни. Поэтому при проблеме с драйвером видео вполне логично работать в голимом разрешении без всяких плюшек. Кстати 640х480 - уже-таки прошлый век, сейчас VESA побольше режимов предлагает
bmw 09.04.2009 11:50 #
Просто "проблема с драйвером" -- понятие весьма растяжимое. Не знаю, как и какой дистрибутив сможет определить, что драйвер вам вместо Xов рисует "изящную радугу" и тем более обойти некорректную работу драйвера.
Вопрос:
Каким образом "В остальных дистрах эта проблема решается куда проще" ??
Username 09.04.2009 11:54 #
написать просто 3 в строке груба.
И кстати, открытые драйвера уже прошли вообщем то время, когда не работали. В последний год я не видел, чтобы иксы не стартовали с открытых дров.
kampfusbeke 08.04.2009 20:23 #
в сингл (он-же рекавери мод) без пароля рута ничего нельзя сделать. самый простой и "грязный" способ его сбросить - загрузиться из другого дистра, примаунтить рут-партицию, удалить из /etc/shadow символы между root: и следущим двоеточием.
Username 08.04.2009 20:40 #
амм так ведь под рутом сразу логинишься
Username 08.04.2009 20:41 #
если вводишь single, на выбор представляется варианты логина. Пароль не нужен
kampfusbeke 08.04.2009 21:31 #
ну я не помню, честно говоря точно, в чем была проблема. сейчас у меня бунты нет и проверить не могу. в сингл он грузился в рута, точно. но при этом все было в рид-онли. перемонтировать не удавалось (про добавить rw в список кернел-комманд не подумал). когда что-то пытался делать, мне всегда писалось что-то типа press ctrl+d (вроде) or enter root password. ctrl+d ничего не давал...
Username 08.04.2009 20:42 #
да и способ какой-то хардкорный твой.
kampfusbeke 08.04.2009 20:32 #
кстати, именно из-за этой проблемы (в рекавери мод ничего не сделать без пароля рута) я бы очень советовал всем ставить этот пароль в тех дистрах, где его по умолчанию "нет" (на самом деле, он там случайный имхо). я один раз уже очень матерился в убунте, когда ноут повис при автоматическом уходе в спячку из-за севших аккумуляторов во время записи на диск и фсцк при следущей загрузке просил запустить себя вручную из рекавери-мода. проблема усложнялась тем, что на ноуте не было других систем и загрузки с усб, а привод был старый и долго не хотел грузиться с диска (слава провидению, раза с десятого это все-таки удалось!)
bmw 09.04.2009 06:44 #
Странная у вас убунта, у меня все какие были в рекавери моде пароля не спрашивали. Более старые, на сколько помню, вываливали в шелл. Новые -- в менюшку с предложением восстановить всяческое или уйти в шелл опять же.
Username 09.04.2009 11:32 #
да, так оно и есть
zb 10.04.2009 01:08 #
традиционная работа над ошибками
пункт
2.5 mount -o remount,rw /
2.6 если 2.5 выдал ошибку че-то там про mtab mount /proc;mount /sys, повторяем 2.5
пункт
6. mount -o remount,ro /
7. sync (на всякий случай)
8. echo b >/proc/sysrq-trigger
Username 10.04.2009 10:19 #
эммм, а это к чему?:)
zb 10.04.2009 14:38 #
потому что / в ro монтируется. и пароль не сменишь если не перемонтируешь
Username 10.04.2009 14:52 #
ну логично. я просто как параметр ядра добавил rw
zb 11.04.2009 03:26 #
не заметил :) я просто так делаю потому что встречал что rw не работает частенько на нек-х дистрах