Сброс пароля в Linux


 Linux и пароли 

Данная статья, как и все остальные материалы этого блога, является конспектом основанном на личном опыте и посвящена паролям ОС Linux.

Как сбросить пароль в Linux

Как всем (ну я во всяком случае надеюсь) уже давно известно, идеальных людей не бывает. Способности забывать у каждого человека проявляются индивидуально.

Моя интуиция и практический опыт подсказывают, что каждый второй хотя бы раз в жизни забывал свой пароль от почты, аккаунта социальной сети, операционной системы и т. д.

Восстановить можно теоретически практически любой пароль. В этой статье речь пойдет о восстановлении забытых паролей к ОС Linux.

Мотивов для сброса паролей может быть несколько. Самый банальный из них, это пользователь, который забыл или потерял листочек с паролем к своей ОСи.

Правда бывают и более абсурдные случаи, когда уволенный (на не совсем законных основаниях) администратор (во всяком случае ему так может показаться) оставил неверный password к рабочему серверу.

Но, как бы там ни было, вопрос сброса пароля может возникнуть перед любым пользователем Linux, а про администраторов я вообще молчу.

Где хранятся пароли в Linux?

В целях безопасности, во всех современных дистрибутивах Linux пароли хранятся в зашифрованном виде, в файле /etc/shadow, которых доступен для чтения только root пользователю с идентификатором равным нулю.

Хеш находится между первым и вторым двоеточием.

пароли в Linux

Существует два  способа изменения (сброса) passwd root и других пользователей Linux.

Как показывает практика, изменить root -овый password немногим сложнее, чем, например, сбросить пароль в Windows.

 Сброс пароля в Linux 

Итак, способ номер раз, с использованием подручных средств вида LiveCD:

Для этого необходимо загрузиться с любого LiveCD (Ubuntu, Knoppix, Kali Linux) и в терминале, последовательно ввести команды:

root@localhost:~# sudo fdisk -l

Команда fdisk -l покажет подключенные жесткие диски и структуру разделов.

После чего нужно смонтировать раздел HD в котором установлена проблемная система, в моем случае это раздел /dev/sda6 но у вас он скорее всего будет другой 🙂

root@localhost:~# sudo mount /dev/sda6 /mnt

Добавляем root окружение к каталогу /mnt.

root@localhost:~#sudo chroot /mnt

Изменяем пароль root или других пользователей, системной командой passwd:

root@localhost:~# passwd username

В общем все, как на рисунке 😉

Сбросить пароль root в Linux

Но бывают случаи, когда под рукой просто нет LiveCD, а пароль все-таки необходимо сбросить, причем очень быстро.

Способ номер два. Тяжелый случай.

Однажды мне было необходимо сбросить пароль пользователя сервера на Ubuntu. Все усложнялось тем, что пароль root тоже был неизвестен, но назначен, поэтому вначале нужно было получить права root и уже потом изменить пароль.

Для большинства дистрибутивов Linux, которые разрешают вход в систему от имени root-a, достаточно в загрузчике Grub выбрать проблемную ОСь и нажать клавишу «e» для редактирования загрузки. После нужно в самый конец  строки ядра добавить single, это позволит загрузиться в однопользовательском режиме с правами root и выполнить смену пароля командой passwd.

boot single Ubuntu

В Ubuntu есть режим восстановления, и моем случае консоль начала требовать пароль root, что можно увидеть на самом первом скриншоте. 🙁

Решение оказалось очень простым. Нужно в самый конец строки ядра, после root=UUID=12ed6546s-55as-ac4f-adferwf990ca ro quiet splash добавить rw init=/bin/bash  и нажать клавишу F10 для загрузки.

В этом случае после загрузки ядра управление сразу  переходит bash, что позволяет изменить пароли всем пользователям системы включая root.  Пример работы можно увидеть на рисунке. 😉

Bash Linux

В Ubuntu passwd root может изменить любой привилегированный пользователь с правами sudo, если конечно он сам сможет зайти в систему. Но и даже в особо тяжелых случаях, выход, как выясняется есть.

P.S. Даже мощные в плане безопасности дистрибутивы Linux, используя настройки по умолчанию, могут позволить злоумышленнику имеющему физический доступ к серверу, легко сбросить пароли всех пользователей включая root.

Для защиты рекомендуется использовать шифрование разделов, отключение загрузчика grub, можно разрешать только залогиненный single вход, или совсем отключить в ядре поддержку опции загрузки single-mode, а если серьезно то это тема отдельной, достаточно объемной статьи.