Если мы не знаем пароль root и не имеем доступа root к компьютеру, как мы можем изменить пароль root?
Если мы не знаем пароль root и не имеем доступа root к компьютеру, как мы можем изменить пароль root?
Ответы:
Вот несколько способов, которые я могу придумать, от наименее навязчивых до самых навязчивых.
С помощью 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 и некоторые другие. Некоторые конфигурации загрузчика требуют пароль для этого, и вы должны знать, что для продолжения. Без дальнейших церемоний:
kernel
или linux
.Ваша система загрузится в однопользовательском режиме. Некоторые дистрибутивы не запрашивают у вас пароль пользователя root (в отличие от Debian и Debian). Вы корень сейчас. Поменяйте ваш пароль:
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 и измените его немедленно.
Очевидно, есть бесчисленное множество изменений в вышеизложенном. Все они сводятся к двум шагам:
Я думаю, это должно работать практически на любом дистрибутиве.
Если вы можете получить доступ к корневому разделу из другой системы, например, с 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
первой.passwd
в среде chroot с live CD?
/etc/shadow
Судя по тегам, я понимаю, что вы используете RHEL, но это решение должно одинаково хорошо работать для всех дистрибутивов.
Если пароль root забыт, вы можете загрузиться в однопользовательском режиме и использовать его для смены пароля. Этот подход описан в пошаговом руководстве Red Hat :
kernel
, нажмите еще eраз.single
. Затем нажмите ENTERи bвытяните из него.В конечном итоге вы получите приглашение, в котором вы сможете ввести passwd root
и изменить пароль. Затем введите reboot
перезагрузить систему.
/boot/grub/grub.conf
чтобы удалить пароль загрузчика и /etc/inittab
изменить однопользовательскую оболочку на что-то вроде / bin / sh (cc @pradeepchhetri)