За замовчуванням 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 тут хороший вибір), то ви застрягли. Вам доведеться повторно змінити карту і почати заново.