Скажем, я убунтоид, статья для новичка, который первый раз столкнулся с такой проблемой не плоха. Лично мне интереса не представляет, так как давно в Слаке намучился с такими проблемами.
Можно напрямую редактировать /etc/shadow — нужно удалить хеш пароля.
Например строка вида root:xxx:yyy:zzz:www:rrr::: -удалим xxx, пароль будет пустой, потом его можно создать командой passwd
У вас chroot может не сработать в некоторых случаях. Например, если архитектура пакетов в chroot не совпадает с архитектурой системы (пытаетесь из amd64 chroot'нуться в arm).
Что-то как-то просто и небезопасно. Но, за статью спасибо, как начинающему линуксоиду уже раз приходилось систему переустанавливать после того, как пароль был благополучно забыт.
Если у вас физический доступ к компу, то все остальное вобщем-то ломается.
Хотите большей безопасности — шифруйте раздел, но тогда забытый пароль восстановить не удастся, забыл пароль — все сноси.
блин, это только в винде зачем то палки в колеса вставляют, и нет никакого штатного способа сбросить пароль админа, при наличие доступа к файловой системе, зачем такие извращения если честно мне не совсем понятно.
(если есть какой то штатный способ, готов получить ссылкой, про нештатные знаю)
штатных действительно нет… но есть множество атак на изменение пароля администратора…
например с подменом cmd заставки…
нештатный и мой любимый ERD commander (infr@ live cd)
Боян =) (без обид). Да и рутовый пароль в бубунте можно (гораздо легче и быстрее) изменить после простого «sudo su». Пора бы уже придумать товарищам разработчикам ФС устанавливать пароли на доступ к разделам, с шифрованием на уровне драйверов ФС.
а смысл? в большинстве случаев хватает разграничения прав, где его не хватает делается шифрование… и да sudo доступна только судоерам, что в реальной (не домашней) системе получить не так то просто
А я в скохе по-другому сбрасывал. Загружал, MS DOS, запускал Norton Disk Doctor и менял зашифрованный пароль на свой зашифрованный пароль. Прямо в /etc/shadow, находил этот блок на диске, и в путь. :)
Могу добавить:
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) Загрузочный диск надо иметь той же архитектуры (т.е. если у вас x86_64 — лайвсиди нужен x86_64 и т.п.)
Можно и старше. Т.е. если стоит i386, можно сделать chroot из x86_64, но не наоборот. Исключение, вырубленная в 64 битном ядре поддержка 32 битных бинарок, но это редкость.
По моему multilib тут не причем. Есть ядро, оно 64 битное, при chroot появляется новое окружение и в этом окружении уже загружается /bin/bash, он уже никакого отношения к исходной системе не имеет (почти), все библиотеки подгружаются из нового окружения, в том числе и glibc. Если ядро может выполнять 32 битный код, то все должно работать.
как-то я забыл пароль рута, но помнил свой пользовательский пароль (настроил и забыл, ага)
просто загрузился в Windows, скачал какую-то утилиту для работы с ext2, открыл файл с паролями и подставил руту зашифрованный пароль от своего пользователя :)
спасибо за материал, но есть механическая ошибка:
если смонтировали раздел в linx_part
sudo mount /dev/sda1 /media/linx_part
то и chroot в него
sudo chroot /media/linx_part
sudo chroot /media/sda1 — ошибка?
Только сегодня сбрасывал пароль знакомому в его OpenSUSE… вариант с init=/bin/bash — не прошел, скорее всего в SUSE init через параметры ядра не переопределяется.
Так же не помог вариант перехода на 1 runlevel (отлично работало в Mandriv'е).
С liveCD вариант не подходил, так как на машине была 64битная ОС, а liveCD был Ubuntu x86.
В итоге, пришлось очистить пароль в /etc/shadow
Вывод: необходимо помнить обо всех способах сброса пароля (на всякий случай)!
К сожалению я не помню версию, которая стояла у знакомого… Возможно были внесены изменения в конфигурацию, уже после установки системы… Я честно говоря сам удивился, когда машина загрузилась в обычном режиме, проигнорировав этот параметр ядра…
PS Прошу прощение за нижний комментарий добавленный не в ту ветку…
К сожалению я не помню версию, которая стояла у знакомого… Возможно были внесены изменения в конфигурацию, уже после установки системы… Я честно говоря сам удивился, когда машина загрузилась в обычном режиме, проигнорировав этот параметр ядра…
в различных версиях линух:
«linux single» или просто «single»
что говорит системе запуститься в однопользовательском режиме с автологином root, далее можно поменять его пароль (passwd), перезапуститься и наслаждаться.
Методы защиты:
— запаролить grub (или lilo в ранних версиях)
— отключить меню grub (lilo)
— перекомпилировать ядро без поддержки опции загрузки single
В любом linux есть универсальный способ:
в загрузчике в строке с root= добавляйте (в конец) init=/bin/sh
После загрузки ядра получите командную строку шела, где уже и нужно вводить passwd.
Указанный тут single зачастую тоже требует пароль рута.
Как сбросить пароль в Linux