Пользователь
0,0
рейтинг
11 марта 2009 в 14:56

Администрирование → Как сбросить пароль в 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

Возможно у вас есть свои методы восстановления пароля? Поделитесь ими.
Перевод: Varun Kashyap
dreamhelg @dreamhelg
карма
108,5
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Администрирование

Комментарии (66)

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

            Зачем создавать себе геморой? :)
            • +1
              1) у меня для сервера есть запасное железо
              2) есть определенные причины когда надо, что бы не было доступа локально
              3) Кластер не кто не отменял =)
            • +1
              спишите это все на мою паранойю/и нечем заняться.
    • НЛО прилетело и опубликовало эту надпись здесь
      • +3
        О! А мануальчик по такому можно? :)

        Я только авторизацию по флешке делал.
        • 0
          Я тоже такое хочу. Где прочитать?
        • НЛО прилетело и опубликовало эту надпись здесь
  • +5
    sudo chroot /media/sda1
    может быть:
    sudo chroot /media/linx_part?
    • –2
      Хотя, предполагаю, что и то и то будет работать одинаково.
  • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    элементарные вещи для любого линуксоида. убунтоидам должно быть интересно. и да, в интернете таких статей несколько милиардов.
    • +2
      Скажем, я убунтоид, статья для новичка, который первый раз столкнулся с такой проблемой не плоха. Лично мне интереса не представляет, так как давно в Слаке намучился с такими проблемами.
    • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    /etc/password, /etc/shadow
    • +3
      /etc/passwd тогда уж ;)
      • +5
        Да, забылся… Все равно /etc/pas{tab}
  • +2
    Можно напрямую редактировать /etc/shadow — нужно удалить хеш пароля.
    Например строка вида root:xxx:yyy:zzz:www:rrr::: -удалим xxx, пароль будет пустой, потом его можно создать командой passwd
    • 0
      Чтобы не делать chroot? Как вариант, но не самый лучший.
    • +1
      Можно загрузится с под Knoppix и сделать что ты говоришь.
    • 0
      Например так, хехе:
      (от рута)
      awk 'BEGIN{FS=":"} { if ($1 ~ /^root$/ && $2 ~ /.*/) $2 = ""; print $0}' /etc/shadow > /tmp/shadow && mv /tmp/shadow /etc/shadow
  • 0
    Что-то как-то просто и небезопасно. Но, за статью спасибо, как начинающему линуксоиду уже раз приходилось систему переустанавливать после того, как пароль был благополучно забыт.
    • +1
      Если у вас физический доступ к компу, то все остальное вобщем-то ломается.
      Хотите большей безопасности — шифруйте раздел, но тогда забытый пароль восстановить не удастся, забыл пароль — все сноси.
      • +3
        =))))) Если только не приделать «Востановление пароля» с высылкой на e-mail =)
    • 0
      блин, это только в винде зачем то палки в колеса вставляют, и нет никакого штатного способа сбросить пароль админа, при наличие доступа к файловой системе, зачем такие извращения если честно мне не совсем понятно.

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

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

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

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

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

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

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

    Указанный тут single зачастую тоже требует пароль рута.

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