Как восстановить утерянный пароль root в CentOS / RHEL 7

1821
Как восстановить утерянный пароль root в CentOS / RHEL 7
Как восстановить утерянный пароль root в CentOS / RHEL 7

Восстановление пароля root является тривиальной задачей, пока вы все еще вошли в систему как администратор или пользователь с полным доступом sudo, но немного более сложным, когда администратор не вошел в систему. В последней ситуации администратор может загрузиться с Live CD, смонтируйте оттуда корневую файловую систему и отредактируйте / etc / shadow. Администраторы также должны иметь возможность выполнять восстановление пароля root без использования внешнего носителя.

Системный администратор

ПРИМЕЧАНИЕ.
В CentOS / RHEL 6 и ранее администратор мог загрузить систему на уровень запуска 1 и получить приглашение root. Ближайшими аналогами уровня запуска 1 на машине CentOS / RHEL 7 являются цели rescue.target и Emergency.target, обе из которых требуют пароля root для входа в систему.

В CentOS / RHEL 7 можно сделать так, чтобы скрипты, запускаемые из initramfs, приостанавливались в определенные моменты, предоставляли корневую оболочку, а затем продолжали работу при выходе из этой оболочки. Хотя это в основном предназначено для отладки, его также можно использовать для восстановления утерянного пароля root:

1. Перезагрузите систему. Прервите обратный отсчет загрузчика, нажав любую клавишу.

2. Переместите курсор к записи, которую необходимо загрузить.

Как восстановить утерянный пароль root в CentOS / RHEL 7
Как восстановить утерянный пароль root в CentOS / RHEL 7

3. Нажмите e, чтобы отредактировать выбранную запись. Переместите курсор в командную строку ядра (строка, которая начинается с linux16.

4. Добавьте rd.break (он прервется непосредственно перед передачей управления от initramfs реальной системе).

5. Нажмите Ctrl + x, чтобы загрузиться с изменениями.

ПРИМЕЧАНИЕ.
Приглашение initramfs будет отображаться на любой консоли, указанной последней в командной строке ядра.

На этом этапе будет представлена корневая оболочка с корневой файловой системой для реальной системы, смонтированной только для чтения в / sysroot.

ВАЖНО
SELinux еще не включен, поэтому для любых новых создаваемых файлов не будет назначен контекст SELinux. Имейте в виду, что некоторые инструменты (такие как passwd) сначала создают новый файл, а затем перемещают его вместо файла, который они предназначены для редактирования, эффективно создавая новый файл без контекста SELinux.

Чтобы восстановить пароль root с этого момента, используйте следующую процедуру:
1. Перемонтируйте / sysroot как чтение-запись.

# switch_root:/# mount -o remount,rw /sysroot

2. Переключитесь в chroot jail, где / sysroot рассматривается как корень дерева файловой системы.

# switch_root:/# chroot /sysroot

3. Установите новый пароль root.

# sh-4.2# passwd root

4. Убедитесь, что все файлы без меток (включая / etc / shadow на данном этапе) помечаются заново во время загрузки.

# sh-4.2# touch /.autorelabel

5. Дважды введите exit. Первый выйдет из chroot jail, а второй выйдет из оболочки отладки initramfs.

На этом этапе система продолжит загрузку, выполнит полную перемаркировку SELinux, а затем снова перезагрузится.

Возможно вам понравится:

Руководство по установке сервера 1С на Linux

Справочник по командной строке iptables (шпаргалка)