Для смены пароля пользователя "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 #
- Восстановление пароля пользователя "root" в OpenBSD
- Восстановление пароля пользователя "root" в FreeBSD
- Восстановление пароля пользователя "root" в NetBSD