Восстановление пароля администратора: различия между версиями

Материал из ALT Linux Wiki
м (экономьте пробелы! -- Отмена правки 41104, сделанной участником 93.191.18.90 (обс.))
(не показано 7 промежуточных версий 4 участников)
Строка 1: Строка 1:
[[категория:FAQ]]
[[категория:admin]]
[[категория:HOWTO]]
==Малыми средствами==
==Малыми средствами==
Пароль пользователя root по [[как хранятся пароли|соображениям безопасности]] нельзя узнать, можно задать ему новый пароль. Для этого:
Пароль пользователя root по [[как хранятся пароли|соображениям безопасности]] нельзя узнать, можно задать ему новый пароль. Для этого:


<ol>
<ol>
<li> В меню загрузчика пропишите в параметрах '''init=/bin/sh'''
<li> В меню загрузчика пропишите в параметрах '''init=/bin/bash'''
*Если загрузчик -- [[grub]], следует:
* нажать "e" при курсоре на цели загрузки, соответствующей используемому экземпляру ALT Linux;
* в открывшемся редакторе отыскать строку, начинающуюся с '''linux /boot/vmlinuz''';
* в её конец дописать то самое '''init=/bin/bash'''
* нажать F10
 
<li> Загрузится консоль. Выполните в ней команды:
<li> Загрузится консоль. Выполните в ней команды:
</li>
</li>
Строка 18: Строка 20:
  reboot
  reboot
</ol>
</ol>
{{attention|Строка загрузки ядра обычно весьма длинная и в GRUB может быть разбита на несколько экранных, продолжающихся "\" в конце каждой такой экранной строки; дописывать следует или в конец '''полной''' командной строки, не завершающийся обратной косой чертой, '''или между аргументами''' вроде "'''ro  quiet'''" через пробел, но '''не''' между словами "linux" и "/boot/vmlinuz"!}};
{{attention|При редактировании '''не''' следует нажимать Ctrl-c/F2 для получения командной строки, вы и так исправляете уже существующую команду; пользуйтесь курсорными стрелками (Del и Backspace не должны понадобиться).}}


==С дополнительными ухищрениями при загрузке Вашей системы==
==С дополнительными ухищрениями при загрузке Вашей системы==
Строка 49: Строка 55:


См. [[Восстановление загрузочной записи]].
См. [[Восстановление загрузочной записи]].
{{Category navigation|title=Восстановление|category=Rescue|sortkey={{SUBPAGENAME}}}}

Версия от 18:01, 22 января 2018

Малыми средствами

Пароль пользователя root по соображениям безопасности нельзя узнать, можно задать ему новый пароль. Для этого:

  1. В меню загрузчика пропишите в параметрах init=/bin/bash
    • Если загрузчик -- grub, следует:
    • нажать "e" при курсоре на цели загрузки, соответствующей используемому экземпляру ALT Linux;
    • в открывшемся редакторе отыскать строку, начинающуюся с linux /boot/vmlinuz;
    • в её конец дописать то самое init=/bin/bash
    • нажать F10
  2. Загрузится консоль. Выполните в ней команды:
  3. mount / -o rw,remount passwd
  4. Укажите пароль для пользователя root и подтвердите его.
  5. Далее выполните команды:
  6. mount / -o ro,remount reboot


Внимание! Строка загрузки ядра обычно весьма длинная и в GRUB может быть разбита на несколько экранных, продолжающихся "\" в конце каждой такой экранной строки; дописывать следует или в конец полной командной строки, не завершающийся обратной косой чертой, или между аргументами вроде "ro quiet" через пробел, но не между словами "linux" и "/boot/vmlinuz"!
Внимание! При редактировании не следует нажимать Ctrl-c/F2 для получения командной строки, вы и так исправляете уже существующую команду; пользуйтесь курсорными стрелками (Del и Backspace не должны понадобиться).


С дополнительными ухищрениями при загрузке Вашей системы

Не всегда после минимальной загрузки системы, как в первом предложенном способе, Вы получите полностью рабочую систему, которой Вы смогли бы командовать. А именно, она на этом этапе может ещё не работать с нужными устройствами -- с клавиатурой. (Такое наблюдалось, например, на ALT Desktop 4.0 с USB-клавиатурой.)

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

Подробности: Для наших целей хорошо, если у Вас /var/tmp/ располагается на корневом разделе (проверьте по выводу команды mount или df /var/tmp/) и у Вас есть права записи в него. Пусть наш скрипт будет расположен по пути /var/tmp/myinit. Создайте его нормальным текстовым редактором (например, в меню системы, где такое приходилось делать, нашёлся gedit) с таким содержанием:

#!/bin/sh
echo Running myinit.
/etc/rc.d/rc.sysinit
/bin/sh

(или

#!/bin/sh
set -x
echo Running myinit.
/etc/rc.d/rc.sysinit
/bin/sh

чтобы "объявлялись" выполняемые шаги Вашего скрипта и Вы лучше могли бы следить за процессом; см. man set), сохраните Ваш скрипт, сделайте исполняемым (chmod a+x /var/tmp/myinit), и перезагружайтесь с параметром init=/var/tmp/myinit.

Если не нашлось места, куда бы Вы могли поместить свой init-скрипт, так чтобы он был доступен на этом раннем этапе загрузки, то нужно будет придумать какую-нибудь ещё хитрость. Возможно, можно сделать свою initial RAM fs на любом разделе и загрузиться с ней (если у Вас загрузчик -- grub). Но это уже чрезмерно для обычного человека: каждый Unix-пользователь должен представлять себе, как писать shell-скрипт (что мы и сделали) -- это ему будет полезно при пользовании, но вряд ли обязан уметь изготавливать свои initramfs и т.п. -- больше это ему при использовании системы никогда не пригодится. Поэтому разумнее, наверное, перейти к следующему описанному способу, более универсальному и полезному в других случаях, но требующему дополнительных средств.

Более универсальный способ

Можно загрузить "другую" систему и через неё всё сделать; для этого нужны дополнительные средства, помимо Вашей установленной системы, например, загрузочный спасательный или установочный диск, или LiveCD, или что-то подобное.

Этот путь полезен не только для смены пароля, но и в других необычных случаях.

См. Восстановление загрузочной записи.