Якщо ми не знаємо корінний пароль і не маємо кореневого доступу до машини, як ми можемо змінити кореневий пароль?
Якщо ми не знаємо корінний пароль і не маємо кореневого доступу до машини, як ми можемо змінити кореневий пароль?
Відповіді:
Ось декілька способів, які я можу придумати, від найменш настирливих до самих настирливих.
З судо: якщо у вас є 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
.Ваша система завантажиться в режимі одного користувача. Деякі дистрибутиви не запитають вас кореневого пароля в цей момент (це роблять 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
ви не керуєте dæmons або будь-якими іншими процесами, але /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 буде паролем вашого власного користувача. Увійдіть як корінь і негайно змініть його.
Очевидно, існує незліченна кількість варіацій до вищезазначеного. Усі вони зводяться до двох кроків:
Думаю, це повинно працювати на будь-якому дистрибутиві.
Якщо ви можете отримати доступ до кореневого розділу з іншої системи, наприклад, живого компакт-диска, ви можете виконувати його редагування /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 з прямого 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)