Если мы не знаем пароль root и не имеем доступа root к машине, как мы можем изменить пароль root?
решение1
Вот несколько способов, которые приходят мне на ум, от наименее навязчивых до наиболее навязчивых.
Без перезагрузки
С помощью sudo:Если у вас есть sudo
разрешения на запуск passwd
, вы можете сделать:
sudo passwd root
Входитьтвойпароль, затем дважды введите новый пароль для root. Готово.
Редактирование файлов: это работает в маловероятном случае, если у вас нет полного sudo
доступа, но выделатьиметь доступ на редактирование /etc/{passwd,shadow}
. Открыть /etc/shadow
, либо с помощью sudoedit /etc/shadow
, либо с помощью sudo $EDITOR /etc/shadow
. Заменить поле пароля пользователя root (все случайные символы между вторым и третьим двоеточием :
) на поле пароля вашего пользователя. Сохранить. У локального пользователя такой же пароль, как у вас. Войдите в систему и измените пароль на что-то другое.
Это самые простые.
Требуется перезагрузка
Однопользовательский режим: Это только что объяснил Ренан. Это работает, если вы можете добраться до GRUB (или вашего загрузчика) и можете редактировать командную строку Linux. Это не работает, если вы используете Debian, Ubuntu и некоторые другие. Некоторые конфигурации загрузчика требуют пароль, и вы должны знать его, чтобы продолжить. Без лишних слов:
- Перезагрузить.
- Введите пароль загрузки, если таковой имеется.
- Войдите в меню вашего загрузчика.
- Если доступен однопользовательский режим, выберите его (в Debian он называется «режим восстановления»).
- Если нет, и вы запускаете GRUB:
- Выделите вариант обычной загрузки.
- Нажмите e, чтобы войти в режим редактирования. Там вас могут попросить ввести пароль GRUB.
- Выделите строку, начинающуюся с
kernel
илиlinux
. - Нажимать e.
- Добавьте слово «single» в конце. (не забудьте поставить пробел!)
- Нажмите Enterи загрузите отредактированную строфу. Некоторые GRUB используют Ctrl- X, некоторые используют b. Внизу экрана указано, какой именно.
Ваша система загрузится в однопользовательском режиме. Некоторые дистрибутивы не будут спрашивать у вас пароль root на этом этапе (Debian и основанные на Debian делают это). Теперь вы root. Измените свой пароль:
mount / -o remount,rw
passwd # Enter your new password twice at the prompts
mount / -o remount,ro
sync # some people sync multiple times. Do what pleases you.
reboot
и reboot
, или, если вы знаете свой обычный уровень выполнения, скажем telinit 2
(или как там).
Заменаinit
: внешне похоже на трюк с однопользовательским режимом, с практически теми же инструкциями, но требует гораздо большего мастерства в работе с командной строкой. Вы загружаете свое ядро, как указано выше, но вместо single
, вы добавляете init=/bin/sh
. Это будет работать /bin/sh
вместо init
, и даст вамоченьРанняя оболочка почти без удобств. На этом этапе ваша цель:
- Смонтируйте корневой том.
- Бегите
passwd
. - Измените свой пароль с помощью
passwd
команды.
В зависимости от вашей конкретной настройки, они могут быть тривиальными (идентичными инструкциям для однопользовательского режима) или весьма нетривиальными: загрузка модулей, инициализация программного RAID, открытие зашифрованных томов, запуск LVM и т. д. Без init
вы не запускаете демонов или какие-либо другие процессы, кроме /bin/sh
и его дочерних процессов, так что вы буквально предоставлены сами себе. У вас также нет управления заданиями, поэтому будьте осторожны с тем, что вы вводите. Один не на своем месте, cat
и вам, возможно, придется перезагрузиться, если вы не можете выйти из него.
Спасательный диск: это просто. Загрузите диск восстановления по вашему выбору. Смонтируйте корневую файловую систему. Процесс зависит от того, как устроены ваши тома, но в конечном итоге сводится к следующему:
# do some stuff to make your root volume available.
# The rescue disk may, or may not do it automatically.
mkdir /tmp/my-root
mount /dev/$SOME_ROOT_DEV /tmp/my-root
$EDITOR /tmp/my-root/etc/shadow
# Follow the `/etc/shadow` editing instructions near the top
cd /
umount /tmp/my-root
reboot
Очевидно, $SOME_ROOT_DEV
это любое имя блочного устройства, назначенное вашей корневой файловой системе диском восстановления, и $EDITOR
ваш любимый редактор (который может быть vi
в системе восстановления). После этого reboot
разрешите машине загрузиться в обычном режиме; пароль root будет паролем вашего пользователя. Войдите в систему как root и немедленно измените его.
Другие способы
Очевидно, что существует бесчисленное множество вариаций вышесказанного. Все они сводятся к двум шагам:
- Получите root-доступ к компьютеру (уловка-22 — и настоящий трюк)
- Измените пароль root каким-либо образом.
решение2
Я думаю, это должно работать практически на любом дистрибутиве.
Если вы можете получить доступ к корневому разделу из другой системы, например, с Live CD, вы можете как root оттуда редактировать /etc/shadow
; сначала вам нужно chmod u+w shadow
. Найдите запись для root
, она, вероятно, первая и выглядит примерно так:
root:$6$asdG0[..etc...]ae/:15666:0:99999:7:::
Сотрите все между первыми двумя двоеточиями, чтобы получилось:
root::15666:0:99999:7:::
Затем chmod u-w shadow
. Теперь вы можете перезагрузить систему, и у root не будет пароля. Вы можете просто ввести root
в приглашении на вход, и он не будет запрашиваться. Затем вы можете использовать , passwd
чтобы установить его.
Будьте особенно осторожны:
- Создайте резервную копию
/etc/shadow
первого. - Не входите в систему как кто-либо, кроме root, пока не установите новый пароль. Это не критично, но защищает от теоретической возможности непривилегированного вредоносного ПО, которое может сделать что-то вродепривет Мэри проход(«Эй, может, нет пароля root...»). На мой взгляд, это немного надуманно.
решение3
Судя по тегам, я понимаю, что вы используете RHEL, но это решение должно работать одинаково хорошо для всех дистрибутивов.
Если вы забыли пароль root, вы можете загрузиться в однопользовательском режиме и использовать его для смены пароля. Этот подход описан впошаговое руководство Red Hat:
- Войдите в меню GRUB и нажмите e.
- Выберите строку, начинающуюся с
kernel
, нажмите eеще раз. - В конце этой линии поставьте
single
. Затем нажмите ENTERи bвыйдите из нее.
В конечном итоге вы получите приглашение, где вы можете ввести passwd root
и изменить пароль. Затем введите , reboot
чтобы перезагрузить систему.