Если мы не знаем пароль 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)