За замовчуванням Raspbian налаштований так, що кореневий обліковий запис не можна ввійти за допомогою пароля. Це робиться, починаючи із запису, в /etc/passwordякому починається:
root:x:0:0:
Поля розділені двокрапками та пояснені в man 5 passwd(зауважте 5, оскільки man passwdви дасте сторінку man для команди passwd; розділ 5 призначений для файлів конфігурації, і в цьому випадку вони мають те саме ім'я). Тут перший - ім'я ( root), третій та четвертий - числовий uid та gid (обидва 0), а другий - для пароля. Для більшості записів це буде x, вказуючи фактичний пароль знаходиться в іншому файлі, /etc/shadow.
Зауважте, що "фактичний пароль" насправді ніде не зберігається. Що зберігається в shadow- це односторонній хеш фактичного пароля. Один із способів хеш - результат процесу, який завжди створюватиме одне й те саме (дозволяючи перевірити ваш пароль), але є незворотним. Іншими словами, якщо хтось потрапляє на руки shadow, немає можливості вивести пароль з хешу. Однак, якщо вони можуть змінити shadow , очевидно, вони можуть вимкнути або змінити те, що буде працювати паролем. Але вони ніколи не зможуть виявити ваші паролі. Ось чому навіть цього rootне вдається (хоча root завжди може змінити їх на щось інше, не потребуючи оригіналу).
У кореневому випадку запис у програмі shadowпочинається так, як це робиться для більшості інших облікових записів системи:
root:*:
*Чи не вказує на наявність в даний час можливо пароль , який можна було б використовувати для цього облікового запису.
Користувач root може змінити це, однак за допомогою passwdкоманди встановити новий пароль, який замінить *хеш, згаданий раніше (вони завжди починаються $n$там, де nє якесь випадкове значення, яке використовується як "сіль" для хешу, але ви не не потрібно це розуміти).
У будь-якому випадку, коли я встановлюю картку зі свіжого зображення, перше, що я роблю, - це зайти /etc/passwdі видалити xзапис root так, що зараз починається:
root::0:0
Зауважте, зараз немає другого поля. Це означає, що пароля немає, і все, що вам потрібно зробити - це ввести rootзапит на вхід, і ви ввійшли як root. Потім ви можете passwdвстановити його.
Отже, у вас є два варіанти, але обидва вимагають, щоб ви вийняли карту з пі та отримали доступ до другого розділу з іншої системи (яка може читати / записувати розділи ext4).
Відновити sudoers. Якщо у вас є довідкове зображення, це легко, ви можете просто повернути його таким, яким він був, замінивши його. Інакше це складніший варіант, оскільки ви повинні знати, що ви робите (а ваш трек із sudoersне надто хорошим ...).
Відредагуйте /etc/passwdта видаліть, xяк описано вище, поверніть картку назад, увійдіть як root, створіть пароль. Звичайно, вам все одно доведеться виправляти sudoers, але спроби та помилки будуть спрощені, оскільки якщо ви насправді root, ви завжди зможете отримати доступ до нього.
Якщо у вас немає системи, яка може отримати доступ до файлових систем ext4 ("живий компакт-диск" Debian тут хороший вибір), то ви застрягли. Вам доведеться повторно змінити карту і почати заново.