Восстановление пароля администратора
Материал из ALT Linux Wiki
(+другие пути) |
м (→Малыми средствами: предупреждения по grub (спасибо Сергею)) |
||
(8 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | |||
- | |||
- | |||
- | |||
==Малыми средствами== | ==Малыми средствами== | ||
Пароль пользователя root по [[как хранятся пароли|соображениям безопасности]] нельзя узнать, можно задать ему новый пароль. Для этого: | Пароль пользователя root по [[как хранятся пароли|соображениям безопасности]] нельзя узнать, можно задать ему новый пароль. Для этого: | ||
<ol> | <ol> | ||
- | <li> В меню загрузчика пропишите в параметрах '''init=/bin/ | + | <li> В меню загрузчика пропишите в параметрах '''init=/bin/bash''' |
<li> Загрузится консоль. Выполните в ней команды: | <li> Загрузится консоль. Выполните в ней команды: | ||
</li> | </li> | ||
Строка 13: | Строка 9: | ||
passwd | passwd | ||
<li> Укажите пароль для пользователя root и подтвердите его. | <li> Укажите пароль для пользователя root и подтвердите его. | ||
- | <li> | + | <li> Далее выполните команды: |
+ | </li> | ||
+ | mount / -o ro,remount | ||
+ | reboot | ||
</ol> | </ol> | ||
+ | |||
+ | Если загрузчик -- [[grub]], следует: | ||
+ | # нажать "e" при курсоре на цели загрузки, соответствующей используемому экземпляру ALT Linux; | ||
+ | # в открывшемся редакторе отыскать строку, начинающуюся с '''linux /boot/vmlinuz'''; | ||
+ | # в её конец дописать то самое '''init=/bin/bash''' | ||
+ | # нажать F10 | ||
+ | |||
+ | {{attention|Строка загрузки ядра обычно весьма длинная и в GRUB может быть разбита на несколько экранных, продолжающихся "\" в конце каждой такой экранной строки; дописывать следует или в конец '''полной''' командной строки, не завершающийся обратной косой чертой, '''или между аргументами''' вроде "'''ro quiet'''" через пробел, но '''не''' между словами "linux" и "/boot/vmlinuz"!}}; | ||
+ | {{attention|При редактировании '''не''' следует нажимать Ctrl-c/F2 для получения командной строки, вы и так исправляете уже существующую команду; пользуйтесь курсорными стрелками (Del и Backspace не должны понадобиться).}} | ||
==С дополнительными ухищрениями при загрузке Вашей системы== | ==С дополнительными ухищрениями при загрузке Вашей системы== | ||
Строка 21: | Строка 29: | ||
Тогда путь можно немного усложнить: в качестве параметра init передать ядру не командную оболочку, а специально написанный скрипт, который сначала выполнит обычные действия по подготовке устройств к использованию в системе, а потом уже запустит командную оболочку. Скрипт этот нужно расположить в корневом разделе, который только и доступен на этом этапе загрузки. | Тогда путь можно немного усложнить: в качестве параметра init передать ядру не командную оболочку, а специально написанный скрипт, который сначала выполнит обычные действия по подготовке устройств к использованию в системе, а потом уже запустит командную оболочку. Скрипт этот нужно расположить в корневом разделе, который только и доступен на этом этапе загрузки. | ||
- | '''Подробности:''' Для наших целей хорошо, если у Вас {{path|/var/tmp/}} располагается на корневом разделе и у Вас есть права записи в него. Пусть наш скрипт будет расположен по пути {{path|/var/tmp/myinit}}. Создайте его нормальным текстовым редактором (например, в меню системы, где такое приходилось делать, нашёлся gedit) с таким содержанием: | + | '''Подробности:''' Для наших целей хорошо, если у Вас {{path|/var/tmp/}} располагается на корневом разделе (проверьте по выводу команды {{cmd|mount}} или {{cmd|df /var/tmp/}}) и у Вас есть права записи в него. Пусть наш скрипт будет расположен по пути {{path|/var/tmp/myinit}}. Создайте его нормальным текстовым редактором (например, в меню системы, где такое приходилось делать, нашёлся gedit) с таким содержанием: |
+ | <pre>#!/bin/sh | ||
+ | echo Running myinit. | ||
+ | /etc/rc.d/rc.sysinit | ||
+ | /bin/sh | ||
+ | </pre> | ||
+ | (или | ||
<pre>#!/bin/sh | <pre>#!/bin/sh | ||
+ | set -x | ||
echo Running myinit. | echo Running myinit. | ||
/etc/rc.d/rc.sysinit | /etc/rc.d/rc.sysinit | ||
/bin/sh | /bin/sh | ||
</pre> | </pre> | ||
- | сохраните, сделайте исполняемым ({{cmd|chmod a+x /var/tmp/myinit}}), и перезагружайтесь с параметром <code>init=/var/tmp/myinit</code>. | + | чтобы "объявлялись" выполняемые шаги Вашего скрипта и Вы лучше могли бы следить за процессом; см. {{cmd|man set}}), |
+ | сохраните Ваш скрипт, сделайте исполняемым ({{cmd|chmod a+x /var/tmp/myinit}}), и перезагружайтесь с параметром <code>init=/var/tmp/myinit</code>. | ||
Если не нашлось места, куда бы Вы могли поместить свой init-скрипт, так чтобы он был доступен на этом раннем этапе загрузки, то нужно будет придумать какую-нибудь ещё хитрость. Возможно, можно сделать | Если не нашлось места, куда бы Вы могли поместить свой init-скрипт, так чтобы он был доступен на этом раннем этапе загрузки, то нужно будет придумать какую-нибудь ещё хитрость. Возможно, можно сделать | ||
Строка 38: | Строка 54: | ||
См. [[Восстановление загрузочной записи]]. | См. [[Восстановление загрузочной записи]]. | ||
+ | {{Category navigation|title=Восстановление|category=Rescue|sortkey={{SUBPAGENAME}}}} |
Текущая версия на 10:21, 29 октября 2015
Малыми средствами
Пароль пользователя root по соображениям безопасности нельзя узнать, можно задать ему новый пароль. Для этого:
- В меню загрузчика пропишите в параметрах init=/bin/bash
- Загрузится консоль. Выполните в ней команды:
- Укажите пароль для пользователя root и подтвердите его.
- Далее выполните команды:
mount / -o rw,remount passwd
mount / -o ro,remount reboot
Если загрузчик -- grub, следует:
- нажать "e" при курсоре на цели загрузки, соответствующей используемому экземпляру ALT Linux;
- в открывшемся редакторе отыскать строку, начинающуюся с linux /boot/vmlinuz;
- в её конец дописать то самое init=/bin/bash
- нажать F10
С дополнительными ухищрениями при загрузке Вашей системы
Не всегда после минимальной загрузки системы, как в первом предложенном способе, Вы получите полностью рабочую систему, которой Вы смогли бы командовать. А именно, она на этом этапе может ещё не работать с нужными устройствами -- с клавиатурой. (Такое наблюдалось, например, на 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, или что-то подобное.
Этот путь полезен не только для смены пароля, но и в других необычных случаях.