Вот несколько способов, которые я могу придумать, от наименее навязчивых до самых навязчивых.
Без перезагрузки
С помощью 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.
Добавьте слово «один» в конце. (не забудьте добавить пробел!)
Нажмите 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и даст вам очень раннюю оболочку почти без удобств. На данный момент ваша цель:
Смонтируйте корневой том.
Беги 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-доступ к компьютеру (catch-22 - и настоящая хитрость)
В любом случае, сделать это удаленно? Предполагая, что SSH отключился.
CMCDragonkai
1
Без SSH (или, если предположить, какие-либо другие небезопасные методы, такие как rsh или telnet), у вас нет удаленного доступа к машине, поэтому вы не можете изменить пароль. Если, конечно, на целевом компьютере нет известной проблемы, которая может использоваться удаленно, которая может помочь вам как-то создать оболочку. Эта мысль пугает меня больше, чем бегающий демон telnet. :)
Алексиос
Таким образом, я должен был бы физически телепортироваться туда, чтобы это исправить?
Я думаю, это должно работать практически на любом дистрибутиве.
Если вы можете получить доступ к корневому разделу из другой системы, например, с 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 :
Войдите в меню GRUB и нажмите e.
Выберите строку, которая начинается с kernel, нажмите еще eраз.
В конце этой строки поставьте single. Затем нажмите ENTERи bвытяните из него.
В конечном итоге вы получите приглашение, в котором вы сможете ввести passwd rootи изменить пароль. Затем введите rebootперезагрузить систему.
Это будет работать, только если у вас нет загрузочного пароля.
Прадипчхетри
1
И если вы не используете / sbin / sulogin для однопользовательской оболочки (она запросит пароль root).
Джеймс О'Горман
Если вы можете добраться до файловой системы, вы можете отредактировать, /boot/grub/grub.confчтобы удалить пароль загрузчика и /etc/inittabизменить однопользовательскую оболочку на что-то вроде / bin / sh (cc @pradeepchhetri)
Ответы:
Вот несколько способов, которые я могу придумать, от наименее навязчивых до самых навязчивых.
Без перезагрузки
С помощью sudo: если у вас есть
sudo
права на запускpasswd
, вы можете сделать:Введите свой пароль, затем дважды введите новый пароль для root. Выполнено.
Редактирование файлов : это работает в маловероятном случае , если вы не имеете полный
sudo
доступ, но сделать доступ к редактированию/etc/{passwd,shadow}
. Открыть/etc/shadow
либо с помощьюsudoedit /etc/shadow
, либо с помощьюsudo $EDITOR /etc/shadow
. Замените поле пароля пользователя root (все случайные символы между вторым и третьим двоеточиями:
) на поле пароля вашего собственного пользователя. Сохранить. Местный имеет тот же пароль, что и вы. Войдите и измените пароль на что-то другое.Это самые простые.
Требуется перезагрузка
Однопользовательский режим : это только что объяснил Ренан. Это работает, если вы можете добраться до GRUB (или вашего загрузчика) и можете редактировать командную строку Linux. Это не работает, если вы используете Debian, Ubuntu и некоторые другие. Некоторые конфигурации загрузчика требуют пароль для этого, и вы должны знать, что для продолжения. Без дальнейших церемоний:
kernel
илиlinux
.Ваша система загрузится в однопользовательском режиме. Некоторые дистрибутивы не запрашивают у вас пароль пользователя root (в отличие от Debian и Debian). Вы корень сейчас. Поменяйте ваш пароль:
и
reboot
, или, если вы знаете свой нормальный уровень выполнения, скажитеtelinit 2
(или что бы то ни было).Замена
init
: внешне похож на трюк с однопользовательским режимом, в основном с теми же инструкциями, но требует гораздо большего мастерства с командной строкой. Вы загружаете свое ядро, как указано выше, но вместо этогоsingle
добавляетеinit=/bin/sh
. Это будет работать/bin/sh
на местеinit
и даст вам очень раннюю оболочку почти без удобств. На данный момент ваша цель:passwd
.passwd
команды.В зависимости от вашей конкретной настройки, они могут быть тривиальными (идентичными инструкциям для однопользовательского режима) или весьма нетривиальными: загрузка модулей, инициализация программного RAID, открытие зашифрованных томов, запуск LVM и так далее. Без
init
этого вы не запускаете демоны или какие-либо другие процессы, но/bin/sh
и их дочерние элементы , так что вы в буквальном смысле слова сами по себе. У вас также нет контроля работы, поэтому будьте осторожны при вводе. Один неуместен,cat
и вам, возможно, придется перезагрузиться, если вы не можете выйти из него.Спасательный диск : это легко. Загрузите аварийный диск на ваш выбор. Смонтируйте вашу корневую файловую систему. Процесс зависит от того, как ваши тома наслоены, но в конечном итоге сводится к:
Очевидно,
$SOME_ROOT_DEV
какое бы имя блочного устройства не было назначено вашей корневой файловой системе с помощью аварийного диска и$EDITOR
это ваш любимый редактор (который может бытьvi
в аварийной системе). Послеreboot
, позвольте машине загружаться нормально; Пароль root будет паролем вашего собственного пользователя. Войдите в систему как root и измените его немедленно.Другие способы
Очевидно, есть бесчисленное множество изменений в вышеизложенном. Все они сводятся к двум шагам:
источник
Я думаю, это должно работать практически на любом дистрибутиве.
Если вы можете получить доступ к корневому разделу из другой системы, например, с live CD, вы можете оттуда как root редактировать
/etc/shadow
; сначала ты долженchmod u+w shadow
. Найдите запись дляroot
, она, вероятно, первая и выглядит примерно так:Сотрите все между первыми двумя двоеточиями, чтобы вы получили:
Потом
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)