OpenBSD - заметки конечного пользователя
3. Первые впечатления, первые настройки

Алексей Федорчук
[email protected]

И так, установка системы позади. Настало время знакомства с ней. Каковое и начинается перезагрузкой. В первый раз она у меня проходит не без приключений. Cистема эта вполне способна грузиться самыми различными способами - через такие загрузчики, как lilo или, скажем, grub. А также - и просто со второго жесткого диска, если в BIOS Setup есть соответствующая опция. Что и имело место быть в моем случае.

Загрузка происходит точно так же, как и перед исталляцией. Мелькают сообщения об обнаружении всяческого железа, дисках и прочем. И, наконец, появляется серия не очень понятных сообщений и предложение выбрать тип терминала, по умолчанию - pcvt (напомню, речь идет о версии 2.8; начинаяс 2.9, в качестве системной консоли используется wscons); поскольку не знаю, есть ли у меня на самом деле выбор (да и потому, что это - стандартная для OpenBSD система управления консолью), соглашаюсь. За что в награду получаю приглашение в виде решетки - авторизоваться. Что и проделываю - для первого раза назвавшись root'ом.

Я уже говорил, что инсталляция системы происходила фантастически быстро. И теперь становится понятно, почему: практически никаких привычных для Linux-пользователя приложений в базовом комплекте нет. После авторизации я оказываюсь один на один с системой, в окружении командной среды csh (которую практически не знаю), вооруженный лишь редактором vi (к коему так и не смог привыкнуть). Ни тебе Midnight Commander, ни человечьего редактора...

Попытке запустить X успех не сопуствует - ввиду отсутствия XF86Config. Разумеется, смешно ожидать каких бы то ни было русских букв. Однако на данном этапе это - из области роскошного. Поскольку самая нынче насущная задача - освоить базовые манипуляции и создать сколько-нибудь приемлемую обстановку для работы.

До знакомства с BSD-системами я как-то не осознавал того факта, что такие привычные действия, как пролистывание экрана или переключение на виртуальные консоли - не неотъемлемое свойство системы как таковой, а зависят от типа терминала. Здесь, в OpenBSD, как уже было сказано, он опять-таки свой - pcvt. И начать следует с изучения его особенностей.

Помнится, во FreeBSD я немало времени потратил на поиски способа пролистывать экраны (оказалось, что это делается при включенном ScrollLock). Здесь, правда, экран прокручивается привычным по Linux способом - с помощью комбинации Shift+PageUp/PageDown. Но зато попытка переключиться на другую виртуальную консоль клавишами Alt+F# ни к какому результату не приводит.

Методом научного тыка, однако, можно определить, что для этой цели служит комбинация Alt+Control+F#, как в X Window. С одной стороны, логично - и в графическом, и в текстовом режиме переключатель консолей одинаков. Но, с другой стороны, использовать такую комбинацию одной рукой (если это не лапа неандертальнца) несколько затруднительно. А ведь вторая рука задействована под мышь (для выделения и вставки текстовых блоков, скажем). Впрочем, переживать по этому поводу пока не приходится: мыши в текстовом режиме также нет.

Зато есть второй способ переключения между консолями, правда, только двумя: клавишами Shift+F1/F2. При этом задействуются 5-я и 6-я виртуальные консоли (dev/ttyC4 и dev/ttyC4, соответственно), Почему именно этими - становится ясно после установки X Window: под нее по умолчанию зарезервировано dev/ttyC4, и комбинацией Shift+F1 легко перейти в графическую консоль. Впрочем, из нее на консоли текстовые можно перейти только обычным образом - с помощью Alt+Control+F#, в ответ на нажатие Shift+F2 в X Window не происходит ничего.

Решив проблему виртуальных консолей, можно двигаться дальше: теперь есть возможность на одной консоли читать документацию, на другой просматривать файловую систему, на третьей - править конфигурационные файлы. Однако прежде, возможно, потребуется настроить привычную среду обитания.

Я не имею ничего против среды csh. Готов даже признать, что синтаксис ее более компактен и логичен, чем в bash (и прочих Shell-совместимых). Однако последняя - удобней в использовании - одно автодополнение команд и путей клвишей табуляции дорогого стоит. Да и привычней она, в конце концов. Кроме того, желательно иметь какой-никакой редактор, помимо vi.

Благо, установка пакетов в OpenBSD осуществляется очень просто. Даже если не прибегать к знаменитой системе портов (а я, за отсутствием сети, такой возможности не имел), а ограничиться инсталляционным CD.

Который вставляется в соответствующий привод и монтируется обычной командой

mount /dev/cd0a /mnt/cdrom/

На на диске находится каталог /mnt/cdrom/2.8/packages/i386. В нем сплошным списком, без разделения на подкаталоги, свалены многие множества приложений. Устанавливаются они той же командой pkg_add, что и во FreeBSD. Проделываю эту процедуру для bash и редактора joe. Как и во FreeBSD, команда pkg_add по умолчанию устанавливает пакеты в каталог /usr/local/.

Затем в дополнение к имеющимся в файле /etc/shells строкам

/bin/sh
/bin/csh
/bin/ksh

вписывается

/usr/local/bin/bash

Чтобы сменить командную среду, можно воспользоваться командой, например, chpass. Она вызывает системный редактор (по умолчанию - все тот же vi) и позволяет в нем напрямую редактировать учетные заиписи пользователей. Заменяем для root'а

/bin/csh

на

/usr/local/bin/bash

Теперь остается только соотвествующим образом поправить файл .profile в корневом каталоге или в каталоге /root/.profile (первый являет собой символическую ссылку на второй. У меня он вызлядит примерно так:

EDITOR=joe
export EDITOR
PS1='w->>'
alias 'ls=ls -aF'
export LESSCHARSET=latin1

Как нетрудно догадаться, строка EDITOR определяет системный редактор, строка PS1 - вид приглашения командной строки

~/articles/sterra->>

Строка alias указывает, что команда ls по умолчанию должна вызываться с параметрами -aF (первый отвечает за вывод всех файлов, в том числе и скрытых, второй - за отметку каталогов знаком , исполнимых - символом *, и так далее). А последняя строка необходима для русификации программы less, о чем будет сказано в соответствующем разделе.

Если после этого завершить сеанс (командами logout или exit) и авторизоваться заново, то оказываешься в привычном окружении. Разумеется, все эти действия были доступны от лица суперпользователя. Теперь же самое время создать пользователя обычного. Помимо того, что практически работать в качестве root'а - занятие не очень здоровое с точки зрения безопасности, в OpenBSD это еще и не удобно. На консоль суперпользователя выводится большое количество сообщений. Они представляют интерес для администратора системы, но в практической работе только мешают. Конечно, от них можно избавиться (например, перенаправив сообщения в файл). Но лучше все-таки не входить в систему как root без большой на то необходимости. А прибегать для системных манипуляций к временному получению полномочий администратора (с помощью команды su).

Создание обычного пользователя выполняется командой adduser (хотя есть и другие способы). Запущенная от имени root'а первый раз, она для начала запросит подтверждения некоторых общих пользовательских установок по умолчанию, таких, как местоположение домашних каталогов (/home) или командной среды (на выбор - любой из перечисленных в файле /etc/shells).

Ответы на эти вопросы будут сохранены в файле /etc/adduser.conf, и при следующем запуске команды повторяться они не будут. Хотя, естественно, общие пользовательские параметры могут быть изменены прямым редактирование указанного файла.

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

Вслед за этим определяется командная среда для пользователя, его цифровой индетификатор (UID - user identification descriptor) и имя группы, включающей этого пользователя (по умолчанию - совпадает с пользовательским именем).

Следующий вопрос - очень важен: следует ли сделать создаваемого пользователя членом какой-либо другой группы. По умолчанию ответ отрицательный, однако соглашаться с этим ни в коем случае нельзя. По крайней мере если под создаваемым пользователем понимаем себя, любимого.

Дело в том, что в OpenBSD (как, впрочем, и во FreeBSD) далеко не каждый пользователь может получить права администратора (каковым наша же скромная персона и является в случае обычной настольной машины) с помощью команды su. Для этого пользователь должен быть явным образом включен в группу wheel, имеющую идентификатор (GID - group identification descriptor) 0. Так что в ответ на указанный вопрос следует вписать wheel.

После этого предлагается ввести пароль (о правилах выбора его распространяться не буду) и повторить его. И в завершение выводится список параметров пользователя в виде:

Name:     exp
Password: ****
Fullname: al
Uid:      1002
Gid:      1002 (exp)
Groups:   exp wheel
HOME:     /home/exp
Shell:    /usr/local/bin/bash

Если с ними согласиться, новый пользователь будет создан. И будет спрошено, следует ли создать еще одного пользователя. Что может иметь смысл, даже если машина находится в вашем безраздельном владении. Так, я обычно для себя, любимого, создаю двух пользователей. От имени одного занимаюсь практической работой, а второй предназначен для всякого рода нездоровых экспериментов.

Теперь можно авторизоваться в качестве обычного пользователя и настроить для него рабочую среду. Что делается редактированием файла ~/.profile, если для него была выбрана среда bash, или файла ~/.cshrc при использовании среды csh.

Однако на этом настройка среды обитания не заканчивается. И следующее действие опять потребует административных полномочий. Получив их (теперь уже нормально, командой su), отправляемся в каталог /etc и отыскиваем там файл конфигурации начальной загрузки rc.conf. Отвечающий, в частности, за запуск стартовых сервисов и демонов.

Рассмотрение его показывает, что по умолчанию в нем запрещено пркатически все, что может быть - одно из следствий ориентации OpenBSD на защищенность. Конечно, большинство перечисленных здесь демонов управляет всякого рода сетевым причинадалам. И меня пока не волнует. Кроме одного, поскольку без мыши жить скучно. Для обретения же ее в rc.conf следует найти строку

moused_flags="NO"

и заменить значение по умолчанию на рекомендуемое для мышей с разъемом PS/2

moused_flags="-p /dev/psm0"

или на

moused_flags="-p /dev/cua00"

для сериальной мыши. В результате после перезагрузки системы мышь начинает действовать обычным для консольного режима образом. То есть может использоваться для выделения, скажем, текстовых блоков и вставки их в позицию курсора щелчком средней клавиши. Однако как полноценное указательное устройство (для выбора пунктов меню, например) мышь в консоли работать не будет все равно: аналогов gpm, обеспечивающих это в Linux, в OpenBSD не имеется.

Полноценное манипулирование мышью возможно только в графическом режиме. Для чего необходимо настроить систему X Window - как я уже говорил, на стадии инсталляции никаких настроек такого рода не было, хотя в базовом варианте X'ы и установились.

Для конфигурирования X Window (в версии 3.3.6) предусомтрено единственное средство - XF86Setup (если, конечно, нет большого желания созлавать файл /etc/X11/XF86Config вручную в текстовом редакторе). Каковой и запускаем, воспользовавшись полномочиями root'а.

Если вдруг XF86Setup откажется запускаться (а такая возможность по причинам, оставшимся для меня неясными, не исключена), следует обратиться к файлу /etc/ttys, описывающему конфигурацию виртуальных консолей. Нормальный вид его начальной части - нечто вроде следующего:

# # $OpenBSD: ttys,v 1.13 1998/06/28 00:48:37 art Exp $ # # name getty type status comments # console "/usr/libexec/getty Pc" vt220 off secure ttyC0 "/usr/libexec/getty Pc" vt220 on secure ttyC1 "/usr/libexec/getty Pc" vt220 on secure ttyC2 "/usr/libexec/getty Pc" vt220 on secure ttyC3 "/usr/libexec/getty Pc" vt220 on secure ttyC4 "/usr/libexec/getty Pc" vt220 off secure ttyC5 "/usr/libexec/getty Pc" vt220 on secure ttyC6 "/usr/libexec/getty Pc" vt220 off secure ttyC7 "/usr/libexec/getty Pc" vt220 off secure

Это показывает, что по умолчанию открыто восемь виратуальных консолей, то есть на каждой из них запущен процесс инициализации getty. В то же время активизировано только пять: консоли 5-я, 7-я и 8-я не задействованы для текстового режима и доступны для запуска режима графического, в котором функционирует программа XF86Setup.

Если же та отказалась запуститься - скорее всего, в файле /etc/ttys активизированы все открытые консоли. Что легко исправить, заменив on на off минимум в одной из строк (по умолчанию для графического режима задействована 5-я консоль, переключение на которую осуществляется клавишной комбинацией Shift+F1). Буде же возникнет желание запускать два или более сеансов X Window (иногда это полезно), следует озаботиться достаточным количеством свободных виртуальных консолей. Впрочем, конфигурация по умолчанию (как в приведенном выше фрагменте) мне представляется разумной.

Теперь, наконец, можно и заняться конфигурированием X Window. Проходит она без приключений. В моем случае она свелась к установке трехкнопочной мыши (устройство /dev/psm0, стандартное для Linux устройсвто /dev/mouse здесь не проходит), русскую 105-клавишную клавиатуру, видеокарту Riva TNT2 (у меня она, правда, в модификации M64, отсутствующей в списке, но по опыту - почти всегда работает, будучи названной TNT2 просто). Мой AcerView 76i я в таких случаях обзываю SVGA 1280x1024x60 Hz - в этом случае он при 1152x864 тянет 72 герца. Каковое разрешение при 32-битном цвете и устанавливаю - карты на всех чипах NVIDIA, насколько я знаю, 24-битного цвета не поддерживают, а при 16-битном мои любимые background'ы смотрятся хуже.

Теперь командой xinit можно запустить X Window просто (с единственным терминальным окном). А можно командой startx запустить и FVWM - единственный из оконных менеджеров, установленных по умолчанию. И на этом временно успокоиться. Перейдя к следующему вопросу - изучению доступных приложений. Ведь система для конечного пользователя ради приложений и устанавливается, не так ли?

Продолжение
К предыдущему