Восстановление пароля пользователя root в BSD системах

archive view archive save

bsd-unix Для смены пароля пользователя "root" нужно иметь физический доступ к серверу с консоли которого загрузится в однопользовательский режим. В OpenBSD никаких приглашений с возможными вариантами загрузки не выводится, а поэтому нужно не пропустить в самом начале загрузки возможность ввести "boot -s" для входа в однопользовательский режим.

Обычно процесс смены пароля для пользователя "root" в BSD системах одинаков, за исключением способа входа в однопользовательский режим. В OpenBSD для входа в однопользовательский режим нужно ввести "boot -s" как только мы начнём наблюдать примерно такие строки:

Using drive 0, partition 3.
Loading...
probing: pc com0 com1 appm pci mem[634K 253M 1024K a20=on]
disk: fd0 hd0+ hd1**
>> OpenBSD/i386 BOOT 3.17
boot> boot -s
...............
Enter pathname of shell or RETURN for sh:
fsck -p / && mount -uw /
fsck -p /usr && mount /usr

Если в системе только один корневой раздел "/", то достаточно только "mount -uw /". После проверки и монтирования основных файловых систем можно сменить пароль пользователя "root":

# passwd
Changing local password for root.
New password:
Retype new password:
#

После смены пароля для пользователя "root" нужно нажать "CTRL+D" для продолжения обычного процесса загрузки или ввести "exit", "reboot" для перезагрузки.

Запрет на смену пароля пользователя "root" в «Single user mode»

По умолчанию, при входе в однопользовательский режим система не запрашивает пароль, при этом предоставляя доступ с правами пользователя "root". Чтоб устранить эту щель в безопасности системы, нужно в файле /etc/ttys , который содержит терминальные настройки для различных способов доступа, заменить комментарий "secure" на "insecure" для строки "console". Это сообщит системе, что консоль является незащищенной точкой доступа. 

vi /etc/ttys
#
#   $OpenBSD: ttys,v 1.18 2008/01/09 17:39:42 miod Exp $
#
# name getty               type    status      comments
#
# If the console is marked insecure, single-user requires
# the root password.
console "/usr/libexec/getty std.9600"   vt220   off insecure
ttyC0   "/usr/libexec/getty std.9600"   vt220   on  secure
ttyC2   "/usr/libexec/getty std.9600"   vt220   on  secure
................

В результате система потребует ввода пароля при попытке загрузится в однопользовательский режим.

Enter root password, or ^D to go multi-user
Password:

Обход запрета на смену пароля пользователя "root"

Но, даже если в «Single user» режиме запрашивается пароль суперпользователя (благодаря /etc/ttys), то это нас не остановит но, наш путь к смене пароля пользователя "root" немного удлиняется.

Для смены пароля пользователя "root" в таких условиях нам следует загрузится с установочного диска OpenBSD и на вопрос "(I)nstall, (U)pgrade or (S)hell?" выбрать "(S)hell":

 

Если корневую файловую систему удалось смонтировать, а файловая система /usr не известна, то её можно узнать использовав команду:

cat /mnt/etc/fstab | grep /usr

А если корневая система изначально неизвестна, то для её определения можно на вопрос "(I)nstall, (U)pgrade or (S)hell?" ответить "(U)pgrade" и дойти до сообщения "Let's upgrade the sets!", после которого нажав "Ctrl+C" выйти в оболочку:

Choose your keyboard layout ('?' or 'L' for list) [default]
Available disks are: wd0 wd1.
Which one is the root disk? (or 'done') [wd0]
Root filesystem? [wd0a]
Checking root filesystem (fsck -fp /dev/wd0a)...OK.
Checking root filesystem (mount -o ro /dev/wd0a /mnt)...OK.
Do you want to do any manual network configuration? [no]
Force checking of clean non-root filesystem? [no]
...................
Lets upgrade the sets!
Location of sets? (cd disk ftp http or 'done') [cd]
Ctrl+C
# 

Автор: Олег Головский


Об авторе
АдМинь БагоИскатель
АдМинь БагоИскатель ярый борец за безглючную работу любых механизмов и организмов во всей вселенной и потому пребывает в вечном поиске всяческих багов, а тот кто ищет как известно всегда находит. Когда что-то или кого-то вылечить не в состоянии, то со словами "Я в аду, а вы все черти" уходит в запой выйдя из которого снова берётся лечить неизлечимое.
Ещё статьи автора
Комментарии в блоге
Новое на форуме