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

Материал из ALT Linux Wiki
(Перенаправление на Сброс пароля Linux)
Метка: новое перенаправление
 
(не показаны 24 промежуточные версии 11 участников)
Строка 1: Строка 1:
[[категория:FAQ]]
#REDIRECT[[Сброс пароля Linux]]
[[категория:admin]]
[[категория:HOWTO]]


==Малыми средствами==
{{Category navigation|title=Восстановление|category=Rescue|sortkey={{SUBPAGENAME}}}}
Пароль пользователя root по [[как хранятся пароли|соображениям безопасности]] нельзя узнать, можно задать ему новый пароль. Для этого:
 
<ol>
<li> В меню загрузчика пропишите в параметрах '''init=/bin/sh'''
<li> Загрузится консоль. Выполните в ней команды:
</li>
mount / -o rw,remount
passwd
mount / -o ro,remount
<li> Укажите пароль для пользователя root и подтвердите его.
<li> Перезагрузите компьютер комбинацией клавиш Ctrl+Alt+Del или командой '''reboot'''
</ol>
 
==С дополнительными ухищрениями при загрузке Вашей системы==
Не всегда после минимальной загрузки системы, как в [[#Малыми средствами|первом предложенном способе]], Вы получите полностью рабочую систему, которой Вы смогли бы командовать. А именно, она на этом этапе может ещё не работать с нужными устройствами -- с клавиатурой. (Такое наблюдалось, например, на [[ALT Desktop 4.0]] с USB-клавиатурой.)
 
Тогда путь можно немного усложнить: в качестве параметра init передать ядру не командную оболочку, а специально написанный скрипт, который сначала выполнит обычные действия по подготовке устройств к использованию в системе, а потом уже запустит командную оболочку. Скрипт этот нужно расположить в корневом разделе, который только и доступен на этом этапе загрузки.
 
'''Подробности:''' Для наших целей хорошо, если у Вас {{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
set -x
echo Running myinit.
/etc/rc.d/rc.sysinit
/bin/sh
</pre>
чтобы "объявлялись" выполняемые шаги Вашего скрипта и Вы лучше могли бы следить за процессом; см. {{cmd|man set}}),
сохраните Ваш скрипт, сделайте исполняемым ({{cmd|chmod a+x /var/tmp/myinit}}), и перезагружайтесь с параметром <code>init=/var/tmp/myinit</code>.
 
Если не нашлось места, куда бы Вы могли поместить свой init-скрипт, так чтобы он был доступен на этом раннем этапе загрузки, то нужно будет придумать какую-нибудь ещё хитрость. Возможно, можно сделать
свою [[initial RAM fs]] на любом разделе и загрузиться с ней (если у Вас загрузчик -- [[grub]]). Но это уже чрезмерно для обычного человека: каждый Unix-пользователь должен представлять себе, как писать shell-скрипт (что мы и сделали) -- это ему будет полезно при пользовании, но вряд ли обязан уметь изготавливать свои initramfs и т.п. -- больше это ему при использовании системы никогда не пригодится. Поэтому разумнее, наверное, перейти к [[#Более универсальный способ|следующему описанному способу]], более универсальному и полезному в других случаях, но требующему дополнительных средств.
 
==Более универсальный способ==
Можно загрузить "другую" систему и через неё всё сделать; для этого нужны дополнительные средства, помимо Вашей установленной системы, например, загрузочный спасательный или установочный диск, или LiveCD, или что-то подобное.
 
Этот путь полезен не только для смены пароля, но и в других необычных случаях.
 
См. [[Восстановление загрузочной записи]].

Текущая версия от 17:37, 17 мая 2023