Linux для всех

индекс
247,37

Как сбросить пароль в Linux


Давайте рассмотрим несколько способов сбрасывания системного пароля в 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

Возможно у вас есть свои методы восстановления пароля? Поделитесь ими.
+54
11 марта 2009, 14:56
154

комментарии (65)

+8
differentlocal #
Ставьте пароль на бутлоадер и шифруйте / — и будет вам счастье :)
–5
icCE #
+ еще можно вообще отключить вход с консоли =)
–3
differentlocal #
А если у вас иксы умерли? =)
«Делай как вендузятнег» — реинсталл системы?
+4
icCE #
У меня на сервере нет иксов. Вот такой вот суровый админ.
+5
differentlocal #
Ок. Сгорает сетевая. Ставите новую. Сюрприз! Нет модуля в ядре для этой карты. Сети => SSH нет. Консольный вход — отключен. Ваши действия? =)

Зачем создавать себе геморой? :)
+1
icCE #
1) у меня для сервера есть запасное железо
2) есть определенные причины когда надо, что бы не было доступа локально
3) Кластер не кто не отменял =)
+1
icCE #
спишите это все на мою паранойю/и нечем заняться.
+7
Liksys #
У меня кстати еще используется фишка ноутбучная — кардридер позволяет в слоте всегда держать карту. На ней лежит 128-битный ключ, который юзается для монтирования разделов))) Карта ессно носится отдельно и есть запасные)
+3
differentlocal #
О! А мануальчик по такому можно? :)

Я только авторизацию по флешке делал.
0
DenisO #
Я тоже такое хочу. Где прочитать?
+1
Liksys #
Нету мануальчиков :-) Из головы делал все. Взял за основу dm_crypt и наворотил вокруг него shell-скриптов всяких. Собственно, секрета нету, можно забить устройство нулями и через dd if=keyfile of=/dev/sdb (у меня так) записать ключик, можно создать фс и уже туда файл с ключем. А при монтировании разделов уже указать, что ключик лежит на флешке (как вариант, смонтировать ее, если там фс, я так сделал), соединить устройства криптсетапом с /dev/mapper/чегототам и их уже монтировать.
+5
PingMe #
sudo chroot /media/sda1
может быть:
sudo chroot /media/linx_part?
–2
PingMe #
Хотя, предполагаю, что и то и то будет работать одинаково.
НЛО прилетело и опубликовало эту надпись здесь
+1
non7top #
элементарные вещи для любого линуксоида. убунтоидам должно быть интересно. и да, в интернете таких статей несколько милиардов.
+2
eeexception #
Скажем, я убунтоид, статья для новичка, который первый раз столкнулся с такой проблемой не плоха. Лично мне интереса не представляет, так как давно в Слаке намучился с такими проблемами.
0
Liksys #
Елсли понимаешь принципы работы — напридумывать таких методов можно тучу :-)
0
SIO #
/etc/password, /etc/shadow
+3
Joka #
/etc/passwd тогда уж ;)
+5
SIO #
Да, забылся… Все равно /etc/pas{tab}
+2
Sile #
Можно напрямую редактировать /etc/shadow — нужно удалить хеш пароля.
Например строка вида root:xxx:yyy:zzz:www:rrr::: -удалим xxx, пароль будет пустой, потом его можно создать командой passwd
0
PingMe #
Чтобы не делать chroot? Как вариант, но не самый лучший.
+1
PixoiD #
Можно загрузится с под Knoppix и сделать что ты говоришь.
0
h0rr0rr_drag0n #
Например так, хехе:
(от рута)
awk 'BEGIN{FS=":"} { if ($1 ~ /^root$/ && $2 ~ /.*/) $2 = ""; print $0}' /etc/shadow > /tmp/shadow && mv /tmp/shadow /etc/shadow
0
Surge0n #
Что-то как-то просто и небезопасно. Но, за статью спасибо, как начинающему линуксоиду уже раз приходилось систему переустанавливать после того, как пароль был благополучно забыт.
+1
el777 #
Если у вас физический доступ к компу, то все остальное вобщем-то ломается.
Хотите большей безопасности — шифруйте раздел, но тогда забытый пароль восстановить не удастся, забыл пароль — все сноси.
+3
vitaly_KF #
=))))) Если только не приделать «Востановление пароля» с высылкой на e-mail =)
0
ishua #
блин, это только в винде зачем то палки в колеса вставляют, и нет никакого штатного способа сбросить пароль админа, при наличие доступа к файловой системе, зачем такие извращения если честно мне не совсем понятно.

(если есть какой то штатный способ, готов получить ссылкой, про нештатные знаю)
0
kagen #
штатных действительно нет… но есть множество атак на изменение пароля администратора…
например с подменом cmd заставки…
нештатный и мой любимый ERD commander (infr@ live cd)
0
Igg #
Насколько я помню — фищка с cmd не работает в последних SP.
0
kagen #
сколько последних версий с всем заплатками можно найти в офисах?
процентов 70 прокатит.
но лучше ERD
0
differentlocal #
Да ну? Большинство _адекватных_ Win-админов первое, что делают придя в офис — поднимают WSUS и сервер обновлений антивируса.

Может, у меня просто все адекватные знакомые… Но тех, кто живет без обновлений системы — единицы.
0
Igg #
ЕРД безусловно лучше. Но ХР вообще без СП вряд ли уже найдешь.
–2
vitaly_KF #
Боян =) (без обид). Да и рутовый пароль в бубунте можно (гораздо легче и быстрее) изменить после простого «sudo su». Пора бы уже придумать товарищам разработчикам ФС устанавливать пароли на доступ к разделам, с шифрованием на уровне драйверов ФС.
0
ishua #
эээ, чет я не понял, если вам нужно, что вам мешает использовать шифрование ФС сейчас?
0
tass #
а смысл? в большинстве случаев хватает разграничения прав, где его не хватает делается шифрование… и да sudo доступна только судоерам, что в реальной (не домашней) системе получить не так то просто
+3
trak #
А я в скохе по-другому сбрасывал. Загружал, MS DOS, запускал Norton Disk Doctor и менял зашифрованный пароль на свой зашифрованный пароль. Прямо в /etc/shadow, находил этот блок на диске, и в путь. :)
0
lamo8 #
А можно вообще на биос пароль поставить пока не введешь дальше биоса не уйдешь :), при условии, что корпус компьютера запаян :)
+2
trak #
нуда, AWARD_SW и тому подобное. :)
–1
JerleShannara #
Действовало только на 486 и первых пнях. Тобишь до версии 4.51 авардовского биоса. Далее lkwpeter-ов и прочих не стало
0
BmW #
… При условии что компьютер — ноутбук. Там быает совсем интересно, особенно в старых моделях.
+2
trak #
О да! И срок службы батареи 25 лет. И батарея запихорена куда-то в EEPROM. Вы об этом?
0
MazaFakagro #
С условием что нету Superpassword!
+4
BmW #
Могу добавить:
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
хотя скорее всего существуют более корректные и идеологически правильные решения :)
+1
eugenios #
там вроде
$sudo chroot /mnt/lin_part /bin/bash
и оно запускает баш
0
BmW #
угу, точно, спасибо… Что-то я невнимательно скурил man chroot :)
chroot NEWROOT [COMMAND...]

If no command is given, run ‘‘${SHELL} -i’’ (default: /bin/sh).
0
inakrin #
chroot /mnt/mountpoint /path_to_shell_on_mount_point
0
Swappp #
1) Загрузочный диск надо иметь той же архитектуры (т.е. если у вас x86_64 — лайвсиди нужен x86_64 и т.п.)

Можно и старше. Т.е. если стоит i386, можно сделать chroot из x86_64, но не наоборот. Исключение, вырубленная в 64 битном ядре поддержка 32 битных бинарок, но это редкость.
0
differentlocal #
Исключение #2: x86_64 система, собранная без multilib.
0
Swappp #
По моему multilib тут не причем. Есть ядро, оно 64 битное, при chroot появляется новое окружение и в этом окружении уже загружается /bin/bash, он уже никакого отношения к исходной системе не имеет (почти), все библиотеки подгружаются из нового окружения, в том числе и glibc. Если ядро может выполнять 32 битный код, то все должно работать.
0
non7top #
linux32 chroot /mnt/mnt /bin/bash точно работает из 64 бит
linux64 еще есть в 32х битной системе, но хз что получится из этого, нет шанса проверить.
0
differentlocal #
setarch — change reported architecture in new program environment and set personality
flags.

Насколько я понял ман, это просто обходка для `uname -m` и переменных (HOSTTYPE, ARCH, MACHINETYPE).
0
differentlocal #
setarch — change reported architecture in new program environment and set personality
flags.

Насколько я понял ман, это просто обходка для `uname -m` и переменных (HOSTTYPE, ARCH, MACHINETYPE).
НЛО прилетело и опубликовало эту надпись здесь
+1
ptiss #
s/Измените рута в примонтированном разделе/Подмените текущий корень на смонтированный раздел/
вы, видимо, не понимаете сути процесса
+1
Goodkat #
как-то я забыл пароль рута, но помнил свой пользовательский пароль (настроил и забыл, ага)
просто загрузился в Windows, скачал какую-то утилиту для работы с ext2, открыл файл с паролями и подставил руту зашифрованный пароль от своего пользователя :)
0
Goodkat #
странно, кстати, что линух так просто шифровал пароли, без добавления имени в качестве «соли», например, что сделало бы такой обход пароля невозможным
0
sk2 #
это не сильно усложнило бы задачу.
0
budda #
спасибо за материал, но есть механическая ошибка:
если смонтировали раздел в linx_part
sudo mount /dev/sda1 /media/linx_part
то и chroot в него
sudo chroot /media/linx_part
sudo chroot /media/sda1 — ошибка?
0
redhawk #
Только сегодня сбрасывал пароль знакомому в его OpenSUSE… вариант с init=/bin/bash — не прошел, скорее всего в SUSE init через параметры ядра не переопределяется.
Так же не помог вариант перехода на 1 runlevel (отлично работало в Mandriv'е).
С liveCD вариант не подходил, так как на машине была 64битная ОС, а liveCD был Ubuntu x86.
В итоге, пришлось очистить пароль в /etc/shadow
Вывод: необходимо помнить обо всех способах сброса пароля (на всякий случай)!
0
sk2 #
только что проделал вариант с init=/bin/bash на opensuse 11.0 — все великолепно сработало.
0
redhawk #
К сожалению я не помню версию, которая стояла у знакомого… Возможно были внесены изменения в конфигурацию, уже после установки системы… Я честно говоря сам удивился, когда машина загрузилась в обычном режиме, проигнорировав этот параметр ядра…

PS Прошу прощение за нижний комментарий добавленный не в ту ветку…
0
redhawk #
К сожалению я не помню версию, которая стояла у знакомого… Возможно были внесены изменения в конфигурацию, уже после установки системы… Я честно говоря сам удивился, когда машина загрузилась в обычном режиме, проигнорировав этот параметр ядра…
0
herurg #
А я когда был маленький лечил это установкой timeout 0 в грубе)
+2
PaNo #
в различных версиях линух:
«linux single» или просто «single»
что говорит системе запуститься в однопользовательском режиме с автологином root, далее можно поменять его пароль (passwd), перезапуститься и наслаждаться.
Методы защиты:
— запаролить grub (или lilo в ранних версиях)
— отключить меню grub (lilo)
— перекомпилировать ядро без поддержки опции загрузки single

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