Как мы можем изменить пароль root?

39

Если мы не знаем пароль root и не имеем доступа root к компьютеру, как мы можем изменить пароль root?

Памятник погибшим
источник
Это часто задаваемый вопрос, посмотрите на askubuntu.com/questions/24006/…
Archemar
См. Также: unix.stackexchange.com/a/168422/25985
Златовласка

Ответы:

63

Вот несколько способов, которые я могу придумать, от наименее навязчивых до самых навязчивых.

Без перезагрузки

С помощью 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 и некоторые другие. Некоторые конфигурации загрузчика требуют пароль для этого, и вы должны знать, что для продолжения. Без дальнейших церемоний:

  1. Перезагружать.
  2. Введите пароль при загрузке, если есть.
  3. Войдите в меню вашего загрузчика.
  4. Если доступен однопользовательский режим, выберите его (Debian называет его «Режим восстановления»).
  5. Если нет, и вы запускаете GRUB:
    1. Выделите ваш обычный вариант загрузки.
    2. Нажмите, eчтобы войти в режим редактирования. Вас могут попросить ввести пароль GRUB.
    3. Выделите строку, начинающуюся с kernelили linux.
    4. Нажмите e.
    5. Добавьте слово «один» в конце. (не забудьте добавить пробел!)
    6. Нажмите Enterи загрузите отредактированный раздел. Некоторые GRUB используют Ctrl- Xнекоторые используют b. Там написано, какая из них внизу экрана.

Ваша система загрузится в однопользовательском режиме. Некоторые дистрибутивы не запрашивают у вас пароль пользователя 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и даст вам очень раннюю оболочку почти без удобств. На данный момент ваша цель:

  1. Смонтируйте корневой том.
  2. Беги passwd.
  3. Измените свой пароль с помощью 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 и измените его немедленно.

Другие способы

Очевидно, есть бесчисленное множество изменений в вышеизложенном. Все они сводятся к двум шагам:

  1. Получить root-доступ к компьютеру (catch-22 - и настоящая хитрость)
  2. Измените пароль пользователя root.
Алексиос
источник
В любом случае, сделать это удаленно? Предполагая, что SSH отключился.
CMCDragonkai
1
Без SSH (или, если предположить, какие-либо другие небезопасные методы, такие как rsh или telnet), у вас нет удаленного доступа к машине, поэтому вы не можете изменить пароль. Если, конечно, на целевом компьютере нет известной проблемы, которая может использоваться удаленно, которая может помочь вам как-то создать оболочку. Эта мысль пугает меня больше, чем бегающий демон telnet. :)
Алексиос
Таким образом, я должен был бы физически телепортироваться туда, чтобы это исправить?
CMCDragonkai
WRT «Как-то изменить пароль root», см. Здесь: unix.stackexchange.com/a/168422/25985
goldilocks
7

Я думаю, это должно работать практически на любом дистрибутиве.

Если вы можете получить доступ к корневому разделу из другой системы, например, с 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 ...»). Какая-то надуманная ИМО.
лютик золотистый
источник
Это будет работать, но мальчик заставляет меня * съеживаться *, чтобы удалить пароль от учетной записи root. Я так понимаю, Ubuntu не бросает вас в корневую оболочку на уровне выполнения 1? Или лучше не запускать passwdв среде chroot с live CD?
SailorCire
Если вы чувствуете себя безопаснее, пробуя эти другие методы в первую очередь, продолжайте Но до тех пор, пока вы не оставите систему без пароля root, это должно быть хорошо. В вредоносной программе, которая пыталась использовать это, не было бы смысла, потому что, если бы она работала при загрузке, она в любом случае уже имела привилегии root. Так что, во-первых, не входите в систему как кто-либо еще (я думаю, что это может быть проблемой в системах, в которых root не разрешен через диспетчер дисплея, если вы не можете переключиться на консоль). Даже тогда это кажется маловероятным.
Златовласка
@SailorCire ^^^
Златовласка
Я очень сомневаюсь в возможности вредоносного ПО. Однако идея, которую я предложил, заключается в том, что она запрещает менталитет типа «О, я изменю это позже, потому что это работает сейчас», к которому многие из нас относятся.
SailorCire
Вы также можете обратиться к этому ответу, чтобы /etc/shadow
узнать, как
4

Судя по тегам, я понимаю, что вы используете RHEL, но это решение должно одинаково хорошо работать для всех дистрибутивов.

Если пароль root забыт, вы можете загрузиться в однопользовательском режиме и использовать его для смены пароля. Этот подход описан в пошаговом руководстве Red Hat :

  1. Войдите в меню GRUB и нажмите e.
  2. Выберите строку, которая начинается с kernel, нажмите еще eраз.
  3. В конце этой строки поставьте single. Затем нажмите ENTERи bвытяните из него.

В конечном итоге вы получите приглашение, в котором вы сможете ввести passwd rootи изменить пароль. Затем введите rebootперезагрузить систему.

Ренан
источник
1
Это будет работать, только если у вас нет загрузочного пароля.
Прадипчхетри
1
И если вы не используете / sbin / sulogin для однопользовательской оболочки (она запросит пароль root).
Джеймс О'Горман
Если вы можете добраться до файловой системы, вы можете отредактировать, /boot/grub/grub.confчтобы удалить пароль загрузчика и /etc/inittabизменить однопользовательскую оболочку на что-то вроде / bin / sh (cc @pradeepchhetri)
NullUser