|
Метка: новое перенаправление |
(не показана 1 промежуточная версия этого же участника) |
Строка 1: |
Строка 1: |
| __TOC__
| | #REDIRECT[[Сброс пароля Linux]] |
| | |
| == Малыми средствами ==
| |
| Пароль пользователя root по [[как хранятся пароли|соображениям безопасности]] нельзя узнать, можно задать ему новый пароль. Для этого:
| |
| | |
| <ol>
| |
| <li> В меню загрузчика пропишите в параметрах '''init=/bin/bash'''
| |
| *Если загрузчик -- [[grub]], следует:
| |
| * нажать "e" при курсоре на цели загрузки, соответствующей используемому экземпляру ALT Linux;
| |
| * в открывшемся редакторе отыскать строку, начинающуюся с '''linux /boot/vmlinuz''';
| |
| * в её конец дописать то самое '''init=/bin/bash'''
| |
| * нажать F10
| |
| | |
| <li> Загрузится консоль. Выполните в ней команду
| |
| </li>
| |
| mount / -o rw,remount
| |
| <li> Если файловая система /usr создана отдельно, найдите (cat /etc/fstab) и примонтируйте /usr
| |
| </li>
| |
| mount <устройство> /usr
| |
| <li> Запустите passwd (можно пропустить предыдущий пункт и вернуться к нему в случае, если команда не будет найдена)
| |
| </li>
| |
| passwd
| |
| <li> Укажите пароль для пользователя root и подтвердите его.
| |
| Пароль изменён, но дело ещё не закончено. Нам нужно переобозначить контекст SELinux. Если мы не выполним переобозначение всего контекста SELinux, мы не сможем войти используя новый пароль. Для этого:</li>
| |
| | |
| touch /.autorelabel
| |
| | |
| <li> Далее выполните три раза команду '''sync''', после чего отдайте команду '''reboot''' или одновременно нажмите клавиши Ctrl+Alt+Del после чего запустится процесс перезагрузки операционной системы компьютера.</li>
| |
| </ol>
| |
| | |
| | |
| {{attention|Строка загрузки ядра обычно весьма длинная и в GRUB может быть разбита на несколько экранных, продолжающихся "\" в конце каждой такой экранной строки; дописывать следует или в конец '''полной''' командной строки, не завершающийся обратной косой чертой, '''или между аргументами''' вроде "'''ro quiet'''" через пробел, но '''не''' между словами "linux" и "/boot/vmlinuz"!}};
| |
| {{attention|При редактировании '''не''' следует нажимать Ctrl-c/F2 для получения командной строки, вы и так исправляете уже существующую команду; пользуйтесь курсорными стрелками (Del и Backspace не должны понадобиться).}}
| |
| | |
| == С дополнительными ухищрениями при загрузке Вашей системы ==
| |
| Не всегда после минимальной загрузки системы, как в [[#Малыми средствами|первом предложенном способе]], Вы получите полностью рабочую систему, которой Вы смогли бы командовать. А именно, она на этом этапе может ещё не работать с нужными устройствами -- с клавиатурой. (Такое наблюдалось, например, на [[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 и т.п. -- больше это ему при использовании системы никогда не пригодится. Поэтому разумнее, наверное, перейти к [[#С_использованием_другой_ОС_Linux|следующему описанному способу]], более универсальному и полезному в других случаях, но требующему дополнительных средств.
| |
| | |
| == С использованием другой ОС Linux ==
| |
| Суть метода - загрузив другую ОС Linux собрать дерево файловых систем и сделать в него chroot, после чего появляется возможность выполнять в целевой системе различные команды с правами суперпользователя. Для этого можно воспользоваться практически любым дистрибутивом любого производителя. Существуют и специализированные дистрибутивы для восстановления, например [[Rescue|ALT Linux Rescue]]. Ограничение одно: архитектура используемого для восстановления дистрибутива должна позволить запускать приложения Вашей ОС после перехода в chroot. Этот путь полезен не только для смены пароля, но и в других необычных случаях. Сборка дерева ФС для chroot подробно описана в статье [[Восстановление загрузочной записи]].
| |
| | |
| В случае использования [[Rescue|ALT Linux Rescue]] и несложного состава разделов последовательность команд после загрузки с CD/USB выглядит так:
| |
| mount-system
| |
| chroot /mnt/system1
| |
| passwd
| |
| | |
| Этот способ может оказаться единственным для случаев с расположением корневой файловой системы на RAID, LVM и т.п.
| |
| | |
| == С использованием другой ОС ==
| |
| Можно воспользоваться любой ОС, которая позволяет писать в раздел с той файловой системой, на которой у Вас расположен корневой раздел. В ALT используется система хранения хэшей tcb, достаточно отредактировать файл /etc/tcb/root/shadow, убрав символы между первым и вторым двоеточиями. Пароль root станет пустым. В ряде других дистрибутивов можно аналогичным образом исправлять /etc/shadow. Форматы shadow различаются только тем, что в последнем случае файл содержит хэши паролей всех пользователей, а не одного, как в ALT. Следует проявлять осторожность, чтобы не испортить формат файла.
| |
|
| |
|
| {{Category navigation|title=Восстановление|category=Rescue|sortkey={{SUBPAGENAME}}}} | | {{Category navigation|title=Восстановление|category=Rescue|sortkey={{SUBPAGENAME}}}} |