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


39

Якщо ми не знаємо корінний пароль і не маємо кореневого доступу до машини, як ми можемо змінити кореневий пароль?


Це питання, яке часто задають, подивіться на askubuntu.com/questions/24006/…
Архемар



Відповіді:


63

Ось декілька способів, які я можу придумати, від найменш настирливих до самих настирливих.

Без перезавантаження

З судо: якщо у вас є 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. У ній написано, який саме внизу екрана.

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

Інші способи

Очевидно, існує незліченна кількість варіацій до вищезазначеного. Усі вони зводяться до двох кроків:

  1. Отримайте кореневий доступ до комп'ютера (catch-22 - і справжня хитрість)
  2. Як-небудь змінити пароль root.

Все одно робити це віддалено? Якщо припустити, що SSH закрили.
CMCDragonkai

1
Без SSH (або, припускаючи будь-який інший, жахливо небезпечні методи, такі як rsh або telnet), у вас немає віддаленого доступу до машини, тому ви не можете змінити пароль. Якщо, звичайно, цільовий комп'ютер має відому віддалену експлуатацію, яка може допомогти вам якось нерестувати оболонку. Думка мене лякає більше, ніж демон, що працює на ньому. :)
Алексіос

Тож мені доведеться фізично телепортуватися там, щоб це виправити?
CMCDragonkai

WRT «Зміна пароля користувача root як - то», дивіться тут: unix.stackexchange.com/a/168422/25985
Золотоволоска

7

Думаю, це повинно працювати на будь-якому дистрибутиві.

Якщо ви можете отримати доступ до кореневого розділу з іншої системи, наприклад, живого компакт-диска, ви можете виконувати його редагування /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-акаунт. Я вважаю, що Ubuntu не вводить вас у кореневу оболонку в runlevel 1? Або не було б кращою ідеєю запустити passwdв середовищі chroot з прямого CD?
SailorCire

Якщо вам здається безпечніше спробувати ці інші методи спочатку, продовжуйте. Але поки ви не залишите систему без пароля root, це повинно бути добре. Не було б сенсу в зловмисному програмному забезпеченні, яке намагалося це використати, адже якщо воно працює під час завантаження, воно все одно має привілеї root. Тож спочатку не входьте, як хто-небудь інший (можливо, це може бути проблема в системах, які не дозволяють виконувати root через диспетчер дисплеїв, якщо ви не можете перейти на консоль). Навіть тоді це здається досить малоймовірним.
goldilocks

@SailorCire ^^^
Золотоволоска

Я дуже сумніваюся і щодо можливості зловмисного програмного забезпечення. Однак ідея, яку я запропонував, полягає в тому, що вона забороняє тип менталітету "О, я згодом це зміню, бо він працює зараз", до якого потрапляє багато з нас.
SailorCire

Ви також можете посилатися на цю відповідь щодо способів вручну створити пароль для/etc/shadow
NullUser

4

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

Якщо пароль root забутий, ви можете завантажуватися в режимі однокористування та використовувати його для зміни пароля. Цей підхід описаний у покроковому посібнику Red Hat :

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

Зрештою, ви отримаєте підказку, де зможете ввести passwd rootта змінити пароль. Потім введіть rebootдля перезавантаження системи.


1
Це буде працювати лише в тому випадку, якщо у вас немає жодного пароля завантаження.
pradeepchhetri

1
І якщо ви не використовуєте / sbin / sulogin для однокористувацької оболонки (вона запропонує ввести пароль root).
Джеймс О'Горман

Якщо ви можете потрапити до файлової системи, ви можете відредагувати, /boot/grub/grub.confщоб видалити пароль завантажувача та /etc/inittabзмінити оболонку одного користувача на щось на кшталт / bin / sh (cc @pradeepchhetri)
NullUser
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.