Среди других осей Solaris стоит особняком,
но, несмотря на некоторые непривычности в работе
, она подходит для создания защищённого сервера ничуть не хуже,
чем Linux и FreeBSD. Фаерволы IPFilter, Sun Screen, хорошо организованная парольная безопасность,
Samba и LDAP, поддержка IPSec и многое другое вытянут и пользователей,
и админа. В общем, стоит во всём разобраться.
Не боись, мотор не заглохнет. Поехали!

Немного истории

Операционная система Solaris (компания Sun Microsystems) выросла из SunOS-классического юникса,
построенного на базе bsd-шного ядра и продолжающего лучшие традиции AT&T System
V. Но в отличие от SunOS это полноценная рабочая среда,
поэтому, если тебе нужно что-то большее, чем просто юникс,
— выбирай Solaris. Главное достоинство Solaris-высокая степень масштабируемости и,
как следствие, реализация концепции симметричных многопроцессорных вычислений
SMP (Symmetric Multi-Processing), то есть линейный рост производительности при увеличении числа процессоров в системе.
Солярка одинаково хорошо будет стоять и на слабенькой рабочей станции,
и на супермощном сервере, так что более мощной и удобной системы для любых запросов не найти.
Итак, общее представление о системе получили,
теперь можно устанавливать.

Установка

Среда Solaris существует под две платформы:Intel и SPARC(Scalable Processor
Architecture, т. е. масштабируемая многопроцессорная архитектура).
Так как особого распространения в нашей стране данная платформа не получила,
о SPARC и установке под неё говорить не будем. Целесообразнее будет рассказать об установке под
Intel. Есть три варианта установки:1) текстовый,
2) диалоговый и 3) с использованием мастера Web
Start. Мы пойдём третьим путём, наиболее простым и удобным. Берёшь диск с соляркой,
вставляешь и ребутишься. Всё, что ты видишь на экране —
DCA (Device Configuration Assistant-помощник конфигурирования устройств).
По экрану бегут строчки, подробно рассказывающие о том,
как обстоят дела с установкой устройств, и через некоторое время появится список найденных девайсов.
Если какое-нибудь из твоих устройств в списке отсутствует,
то этому есть два объяснения: либо солярка криво отконфигурила девайс,
либо просто не поддерживает его. Исправить это можно с помощью
«Device Task», раздела работы с устройствами.
Когда всё наладится, нажмёшь F2, чтобы отобразилась информация о текущем состоянии дисковой системы и запустился соляровый
fdisk. Solaris работает с файловой системой UFS.

Если на компьютер не планируется ставить ещё какую-нибудь систему,
то можно удалить все разделы, которые у тебя до этого были,
клавишей 3. Теперь создавай с помощью клавиши 1 раздел с типом «x86 boot» и разделы
«Solaris». Так как мы с тобой строим сервер,
то, как и в линухе, одного корневого раздела на всю систему недостаточно,
поэтому нужно создать разделы /var, /usr, /home, /tmp,
/, после чего клавишей 2 выбери загрузочный. Последует вопрос:
делать ли его активным. Если осей других на компе нет,
и ты будешь использовать соляровый менеджер загрузки,
то отвечай положительно. Если тебе больше нравится
lilo, BootMagic или любой другой загрузчик, — отвечай отрицательно.
Когда ты создал все нужные разделы и выбрал активный,
можешь выходить (клавиша 4 — Exit). После этого и начнётся настоящая установка с помощью мастера Web
Start. Тебе предложат форматнуть диск или, при необходимости,
разделы в ФС UFS. Соглашаешься, подтверждаешь установку соляры и перезапись содержимого загрузочного диска.
Затем тебя спросят, какого размера делать свап.
Это на твоё усмотрение. Если не хватит, то командой swap ты сможешь выделить дополнительные сегменты под виртуальную память.
На вопрос, нужно ли размещать свап в начале диска,
отвечай утвердительно, поскольку размер файла подкачки в процессе формирования файловых систем изменён быть не может. Подтверждай сохранение всех настроек и жди.
Произойдёт форматирование диска, создание корневой файловой системы,
копирование платформо-зависимых файлов и перезагрузка.
Перед ней тебя попросят нажать Enter. После ребута ты увидишь соляровый менеджер загрузки
(если ты его выбрал). Я расскажу только про него,
так как с lilo, grub и т. п. , проблем быть не должно.

CDE-Рабочий стол в Solaris.

Логинимся в солярке

Итак, перед тобой появился Solaris Boot Manager (а точнее SunOS Intel Platform Edition Primary Boot Subsystem) и предложил выбрать загрузку с активного раздела.
Нажимай клавишу с номером раздела и милостиво позволяй ему сделать это.
Процесс автобута можно прервать с помощью
Esc. Затем система инициализируется и — последний шаг подготовки — запустится
kdmconfig, который настроит тебе видюлю, монитор и т.
п. для запуска графического мастера установки Web
Start. Поздравляю — самый сложный этап установки соляры завершён.
Работать с WebStart не труднее, чем с дружелюбным инсталлятором какого-нибудь
Mandrake, хотя русский язык и не поддерживается.
Копирование файлов, очередная перезагрузка,
и перед тобой появится рабочий стол CDE(Common Desktop Environment-не путать с KDE)..

Работа с суперсервером

Если ты когда-нибудь строил сервер на базе никсов,
то ты наверняка знаком с суперсервером inetd. Есть он и в солярке.
Использовать его или нет — дело твоё. Я бы посоветовала не делать этого.
Причина известна: если inetd повалится, то он потянет за собой и все сервисы,
которые на нём держатся. Да и применение его избыточно:
сегодня все мало-мальски приличные сервисы умеют работать в режиме
standalone, и помощник им не нужен. Для тех, кто всё-таки решился завязать свой сервер на
inetd, я скажу пару слов о соляровой версии суперсервера.
Все файлы лежат на привычных местах:/etc/services,
/etc/inetd. conf. Закомментируй в них все ненужные сервисы
и настрой нужные следующим образом:

Файл /etc/inetd. conf имеет формат:

имя тип протокол флаги пользователь параметры,
например

ftp stream tcp(tcp6) nowait root /usr/sbin/in. ftpd in. ftpd (бывает и internal)..

В записи может быть wait или nowait. Если указан
wait, то это значит, что суперсервер не будет прослушивать этот порт до его освобождения сервером,
а если nowait, то будет слушать. Telnet и ftp-сервисы наиболее часто привязываются к
inetd, но тем не менее использовать их ни в коем случае нельзя,
поэтому ставь OpenSSH. Его конфиг находится в /etc/sshd2/sshd2_config.

О пользователях

Большинство задач администрирования в Solaris выполняется при помощи графического пакета
Admintool. Но в консоли огромный диапазон проблем можно решить гораздо быстрее и удобнее,
поэтому нет смысла использовать медленные и глючащие иксы. Добавление пользователей осуществляется при помощи банальной правки
/etc/passwd, /etc/shadow и /etc/group, а также командой useradd. Зашифрованные пароли генерируются автоматически при помощи функции crypt() и сохраняются в
/etc/shadow. Все пароли криптуются DES-подобным алгоритмом и не могут быть длиннее восьми символов,
среди которых вся клава плюс особые нечитаемые сочетания клавиш.
Ручное удаление пользователей кроме правки
/etc/passwd, /etc/group и /etc/shadow включает в себя удаление домашней диры пользователя,
почтового ящика(rm -rf /var/mail/имя юзера), почтовых псевдонимов(/etc/aliases),
проверку cron, at и процессов пользователя(ps -eaf | grep имя юзера). Для того,
чтобы временно заблокировать вход пользователя в систему,
достаточно в /etc/passwd или в /etc/shadow заменить криптованный пароль символом
*. Все файлы, задачи и настройки пользователя останутся на месте,
а войти в систему он не сможет. Теперь о квотах.
Они реализованы практически также, как и в
Linux. Необходимые параметры прописываются в /etc/fstab или прямо в консоли при использовании команды
mount. После прописывания квот желательно перезагрузиться или размонтировать/смонтировать файловую систему,
для которой устанавливались квоты. Затем создаёшь файл quotas в нужных каталогах,
набиваешь команду edquota и вводишь количество inode-узлов и блоков дискового пространства в «жёстком» или «мягком» ограничениях.
Последний штрих-команда quotaon, предназначенная для включения квот.

Управление пакетами

Управление пакетами — паккаджами — в Solaris реализовано очень просто,
удобно и эффективно. Сначала поговорим о добавлении и удалении пакетов из системы,
а затем о более интересном — создании собственных пакетов.
Вот список команд, необходимых для работы с паккаджами:
pkgadd-добавить пакет;
pkgchr-проверить пакет;
pkginfo-посмотреть информацию о пакете;
pkgmk-создать новый пакет на базе прототипа;
pkgproto-создать новые спецификации пакета и добавить в прототип;
pkgrm-удалить пакет;
pkgtrans-упаковать все файлы пакета в архив.
Например, чтобы получить информацию о том, к какому пакету принадлежит файл,
нужно набить в консоли следующую команду:

pkgchk -l -p путь к пакету

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

Теперь о создании пакетов. Первым делом нужно создать файл
pkginfo. Его формат такой(перечислю наиболее часто встречающиеся параметры):

ARCH — архитектура, для которой создаётся пакет;
BASEDIR-каталог, в который происходит распаковка файлов;
CATEGORY-тип архива(системный или обычное приложение);
EMAIL-контактная информация автора пакета;
NAME-название пакета(например, «My cool proga»);
PKG — имя пакета(например, BAS_LOCAL);
PSTAMP-имя автора пакета;
VENDOR-имя автора или название фирмы — разработчика программы.

Затем создаём файл прототипа. . .

И не забываем добавить в этот самый файл информацию о pkginfo:

i pkginfo=путь до файла pkginfo

Теперь в каталоге установки(поле BASEDIR файла pkginfo) выполняем команду для создания в файле прототипа относительныx путей и имён файлов:

find . -print | pkgproto >> prototype

Загляни в только что созданный файл прототипа.
Буква f-это файл, а d-директория. Каждая запись включает в себя информацию о пользователе,
группе и правах доступа. Листай этот файлик дальше,
что не понравится — исправишь. Затем набирай команду:

pkgmk -o -r путь до папки, где лежит pkginfo

С этого момента файлы для упаковки будут лежать в /var/spool/pkg/имя пакета.
Последний шаг:

pkgtrans -s /var/spool/pkg /backup/имя пакета. pkg

На экране появится список найденных пакетов,
и тебя спросят, какие из них нужно устанавливать.
Нажимаешь клавишу с номером, соответствующим имени пакета.
Все файлы твоего пакета скомпонуются в один архивный файл и будут лежать в /backup/имя пакета.
pkg. Пакет готов!


IPSec

В последнее время резко возросла популярность VPN-сетей.
Это объясняется тем, что VPN-сети используют протокол
IPSec, который прекрасно обеспечивает анонимность,
шифрование и сохранность данных, передаваемых по сети.
Ну а раз он такой замечательный, неплохо было бы понять,
как он устроен, что мы сейчас и сделаем. Приготовься к паре минут жёсткой теории без
пространных объяснений. Проверка подлинности в IPSec реализуется при помощи обмена ключами
IKE (Internet Key
Exchange). Сам же протокол базируется на трёх основных понятиях:
SA(Security Association) — связях безопасности, AH
(Authentication Header) — заголовках идентификации и ESP
(Encapsulated Security Payload) — передаче данных.
Для обмена данными между двумя узлами нужно создать для них две SA-связи.
Управление этими связями осуществляется c помощью команды
ipseckey. Если SA-связи установлены, то в игру вступает
AH. Заголовок передаётся с SIP(Security Parameters Index)-указателем параметров безопасности.
Если с этим самым указателем всё в ажуре, то дейтаграммы считаются подлинными,
а доставка корректной. Пакеты будут доставлены в целости и сохранности,
но AH их не зашифрует. Для этого нужна ESP. Данные ESP также передаются с параметром
SPI. Для шифрования пакетов используются алгоритмы DES и
3-DES (Triple-DES). Но технологии AH и ESP могут применяться и по отдельности.
Идентификация в IPSec реализована при помощи контрольных сумм MD5-этот алгоритм вычисляет 128-битную цифровую подпись,
пригодную для любых типов данных. Ну, всё,
с теорией покончено. Теперь о реализации этой технологии в
Solaris.

Ипсековские правила определяются командой
ipsecconf. Конфиги лежат в /etc/inet/ipsecinit. conf и /etc/inet/ipsecpolicy.
conf. Формат последнего следующий(настраиваем ftp):

{dport 21} apply {encr_algs any encr_auth_algs md5 sa shared}
{sport 21} permit {encr_algs any encr_auth_algs md5}

Таким образом мы защитили весь трафик 21-ого порта
AH, используя DES или 3-DES, и организовали проверку подлинности с использованием алгоритма
MD5. Это был пример для порта, но можно сделать то же самое для целой подсети:

{daddr 193. 34. 207. 12/26} apply {auth_algs md5 sa shared}
{saddr 193. 34. 207. 12/26} permit {auth_algs md5}

Сходства и различия двух настроек видны невооружённым взглядом и в пояснении не нуждаются.

Домашняя страница IPFilters


Выбираем и настраиваем фаервол

Существует два основных фаервола под Solaris:
IPFilter и
SunScreen. IPFilter-бесплатный и с исходниками, а SunScreen-коммерческий.
Но недавно вышел его бесплатный вариант, правда с чуть меньшей
функциональностью.
По возможностям оба брандмауэра примерно одинаковы:
поддержка
IPv6, MBone, качественное распределение нагрузки,
перенаправление, NAT, хорошее ведение и отображение статистики.
Отличия SunScreen от его собрата заключаются в наличии графического фейса,
который вряд ли кому и нужен. В данном разделе я подробнее разберу
IPFilter, а SunScreen`а коснусь вкратце. Кстати, оба эти пакета не входят в стандартную поставку дистрибутива
Solaris. IPFilter отдалённо напоминает IPTables, хотя далеко не так удобен в
конфигурировании,
но это нисколько не умаляет его достоинств.
IPFilter выполнен в виде загружаемого модуля к ядру.
Важнейшее его свойство состоит в том, что он просматривает все правила из своего конфига,
а не только те, что соответствуют определённому условию.
Вывод: концепция конфигурирования IPFilter заключается в том,
что можно (и нужно) описать как общие правила,
так и частные, причём первые обязательно должны предшествовать вторым.
Если не выполнить этого условия, фаервол не будет работать должным образом,
частные правила будут произвольно изменяться следующими за ними общими.
Общие правила определяются так:

пропускает весь входящий трафик, а

соответственно блокирует его.

Частные правила:

block in on hme1 proto tcp from any to 193. 34. 207. 12/24 port=80

Разберёмся, что же мы тут нашаманили. Вышеприведённое правило запрещает
(block) приём входящих пакетов на интерфейс hem1 по протоколу tcp с любых (from any) адресов на 80 порт данной подсети.
From всегда означает откуда, to — куда, а all — ссылка на все адреса сразу.
Правда, просто?

Если тебе не нравится, что IPFilter применяет сразу все правила,
то это можно изменить при помощи ключевого слова
quick. Так, если в предыдущем примере мы прописали слово
quick, то следующее за ним в конфиге правило,
разрешающее пакеты в данную подсеть, будет уже пропущено.
Посмотреть статистику по соединениям можно командой
ipfstat. Ну, что ж, пожалуй и хватит на первый раз про этот брандмауэр.

Перейдём к SunScreen. В SunScreen используется массив ключей для простого управления ключами протоколов
(SKIP-Simple Key-Management for Internet
Protocols). SKIP используется для шифрования сеансов.
Сейчас эта технология практически полностью вытеснена протоколом
IPSec, но в редких случаях всё ещё может понадобиться.
После установки фаервола, производимой с помощью сценария /opt/SUNWicg/SunScreen/bin/ss_install можно начинать настройку.
Укажи режим маршрутизации или невидимости, уровни защищённости,
методы настройки, поддержку DNS (если нужно) и т.
д. Всё легко настраивается через графический интерфейс.
Обращение к нему происходит через любой браузер по локальному адресу
http://localhost:3852. Имя пользователя и пароль для первого запуска-admin:admin. Естественно пароль нужно сменить. Аналог pass и block из IPFilter — ALLOW и
DENY. Можно пользоваться масками, которые задают исходный и конечные адреса(аналог
any). Для каждого из правил есть дополнительные настройки:LOG_NONE,
SNMP, LOG_DETAIL, ICMP_HOST_FORBIDDEN и т.д.; их очень много, между делом обо всех не расскажешь. После установки у тебя появились следующие базы данных:
authuser,
proxyuser, vars и logmacro. Также создаётся база сертификатов
(/etc/skip/certdb).

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


Мелочи безопасности

Прежде всего нужно заставить пользователей ставить нормальные пароли.
Если на твоём сервере десятки, а то и сотни пользователей,
то проводить со всеми разъяснительную беседу не хватит ни сил,
ни времени, поэтому лучше применять специальные программы.
Главный представитель этой категории — прога
gpw (http://www.multicians.org/thvv/gpw.html
в виде Java-апплета и ftp://nce.sun.ca/pub/freeware/intel/7/gpw-6.94-sol7-intel-local.gz
в виде архива с пакетом),
которая является неплохим генератором паролей.
Можно задавать различные опции, например, включить в пароль число или специальный символ и т.
д. Это грамотное решение проблемы.

Блокировку портов решай ковырянием в /etc/services и
/etc/inetd. conf. Что касается переполнения буфера,
то проблема частично решается установкой некоторых параметров в /etc/system:

set noexec_user_stack=1
set noexec_user_stack_log=1

Эффективным методом защиты от подмены приложений является сравнение MD5 сумм.
Достаточно один раз собрать MD5 суммы нужных бинарников и сохранить их в надёжном месте
(наилучший вариант — на компакте или на другом компьютере).
Это выполняется вызовом программы. /md5. Важно периодически сверять MD5 суммы приложений в системе с суммами,
записанными на проверенном носителе. Если сумма изменилась
— самое время искать злоумышленника.
Но необходимо помнить, что контрольная сумма может измениться,
если ты обновлял данный пакет или файл.


Заключение

Для создания суперзащищённого сервера нужна самая малость:
голова на плечах и некривые руки
. Впрочем, эти маленькие детали очень важны и сами по себе.
А так патчься три раза в день, читай на ночь логи,
и слава суперадмина тебе обеспечена. Да не облысеют твои пятки!

Владимир Василькин

Особенности инсталляции Solaris

Как подружиться с «динозавром»? Бывает, так ласково называют одну из старейших операционных систем семейства UNIX – Solaris. С чего же можно начать знакомство? Как вариант – с первоначальной установки – инсталляции. Посмотрим, в чем заключаются особенности первой встречи с нестрашным «динозавром» – Solaris 10.

Начнем с определений. Что такое операционная система? Следуя википедии – это программа (комплекс программ), которая управляет аппаратными средствами компьютера и служит средой для выполнения других программ. При включении питания встроенные программно-аппаратные средства по определенным правилам ищут операционную систему, загружают ее в память и передают дальнейшее управление. В некоторых случаях используется промежуточный слой – программа-загрузчик. Принципиально процесс загрузки ОС выглядит одинаково на всех системах.

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

По терминологии мира PC-совместимых компьютеров встроенным программно-аппаратным средством служит BIOS. При работе с другими системами обычно используется слово firmware.

На SPARC-совместимых серверах производства SUN и FUJITSU-SIEMENS в качестве firmware в основном выступает OpenBoot (Open Firmware) . Более подробно работу с OpenBoot можно рассмотреть в соответствующей литературе. Настройки BIOS зависят от производителя материнской платы.

Далее в статье выражение «инсталляция ОС» будет использоваться для обозначения процесса копирования файлов, если не указано иное. Промышленные способы копирования (штамповка) в статье рассматриваться не будут. Для запуска процессов копирования и управления ими нужна среда выполнения. Другими словами – процессы инсталляции ОС происходят под управлением другой ОС. В дальнейшем будем называть такую ОС «временной», а инсталлируемую – «новой».

В таком случае процесс инсталляции происходит по следующей схеме:

  1. Настройка firmware на загрузку временной ОС.
  2. Выполнение процессов копирования (инсталляции).
  3. Настройка firmware на загрузку новой ОС и загрузка новой ОС.

Пункт 4 состоит из двух действий по причине того, что настройка firmware может происходить как средствами самой firmware, так и инструментами временной ОС.

Здесь хотел бы подчеркнуть, что все сказанное выше относится абсолютно к любым сочетаниям операционных систем, как временной, так и новой. Например, в качестве временной ОС может служить какой-нибудь дистрибутив Linux, а новой – MS Windows или Solaris. Перепрошивка сотового телефона, например, может выглядеть как сочетание MS Windows – Symbian.

Способы инсталляции различаются по типу загрузки временной ОС, типу источника, способам первоначальной конфигурации.

Временная ОС может быть загружена локально, а также может быть запущена по сети. Источник файлов для инсталляции также может быть локальным (CD, DVD, жесткий диск и т. п.) или доступным по сети (используя различные сетевые протоколы). Способы первоначальной настройки системы могут быть автоматизированы в различной степени.

Самый простой способ инсталляции – это побитное копирование всего носителя. Очень хорошо для этого подходит команда dd, которая присутствует практически в любом UNIX-подобном дистрибутиве. Используя эту команду, мы можем просто продублировать носитель, например, копируя жесткий диск на второй такой же.

Также подобным способом можно восстанавливать систему из резервной копии. Загрузка временной ОС может происходить из любого источника. Конфигурация новой ОС также может быть осуществлена как из временной системы, так и после загрузки новой. Восстановление из резервной копии редко рассматривается как вариант установки операционной системы. Мы тоже не будем на нем останавливаться подробно. Тем более что в официальной документации по инсталляции Solaris 10 этот способ не описан.

Полностью копируя носитель, можно восстановить различные данные, в том числе файлы ОС, не принципиально какой. Не будем заострять внимание на различных вариантах резервного копирования и восстановления. Далее поговорим о вариантах установки ОС Solaris стандартными инструментами.

Планирование установки

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

Версии системы

Последняя версия Solaris на момент написания статьи – 10, а если быть точным – 10 11/06. Наименование версии включает в себя месяц и год выпуска обновления, разделенные прямым слешем. По планам обновления системы должны выпускаться раз в квартал. По историческим причинам команда uname в ОС Solaris выдает название SunOS. Версии системы считаются после символов «5.». Например, у Solaris 10 вывод команды будет следующий:

# uname -s -r

SunOS 5.10

Более подробно информацию о версии установленной системы можно посмотреть в файле /etc/release или командой showrev.

На базе кода Solaris 10 основан проект OpenSolaris, целью которого является дальнейшее развитие этой операционной системы, в том числе и силами независимых разработчиков . На официальном сайте доступны ссылки для скачивания шести дистрибутивов на базе OpenSolaris. Часть из этих проектов поддерживается непосредственно фирмой Sun Microsystems, остальные – другими разработчиками. Периодичность обновлений зависит, конечно, от создателей дистрибутива.

Также доступна документация по созданию своей системы на базе OpenSolaris.

Последнюю версию Solaris 10, OpenSolaris, можно скачать с официальных сайтов или других источников совершенно бесплатно. При желании диски с системой можно купить.

Обычно, если четких требований к версии ОС не существует, ставится новейший релиз из доступных. После чего на систему устанавливается рекомендованный набор патчей – «Recommended Solaris Patch Clusters», скачать который можно с сайта .

До 10 версии в Solaris был предусмотрен также набор дополнительных патчей для повышения версии системы – Maintenance Update. Тогда процесс установки происходил в три этапа:

  1. Установка базового дистрибутива.
  2. Установка последнего Maintenance Update.
  3. Установка последней версии Recommended Solaris Patch Clusters.

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

С точки зрения инсталляции системы в Solaris 10 мало что изменилось, так что большая часть сказанного будет применима к предыдущим версиям: Solaris 8 и 9. Различия есть, но они в основном незначительные; некоторые особенности будут указаны. Примеры в статье будут применимы для версии Solaris 10 11/06, если не указано иное.

Интересно, что официально поддерживается обновление системы с версии Solaris 8 до 10. Для обновления с более ранних версий (до 8) предлагается сначала поднять версию ОС до максимально возможной. Например, с версии Solaris 2.5 до Solaris 9, после – до Solaris 10.

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

Проверка конфигурации оборудования

Solaris 10 может работать на двух типах процессоров: SPARC и x86-совместимых. Поддерживаются системы, основанные на следующих архитектурах: UltraSPARC®, SPARC64, AMD64, Pentium и Xeon EM64T. Полный перечень поддерживаемого оборудования можно получить в официальной документации, следуя ссылкам на сайтах .

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

Начиная с версии Solaris 10 1/06 все x86-совместимые системы должны иметь, как минимум, 256 Мб оперативной памяти (рекомендуется 512 Мб). Для предыдущих релизов Solaris 10 требования меньше: 128 Мб и 256 Мб соответственно.

Для платформ, основанных на технологии SPARC, требования к памяти ниже. Необходимо 128 Мб ОП, желательно 256 Мб.

Для обоих видов платформ размер минимально необходимой ОП также зависит от типа инсталляции, о чем будет сказано позже.

Система по умолчанию будет использовать 512 Мб виртуальной памяти (swap), что, конечно же, является настраиваемым параметром. Когда-то стандартным советом было выделять под область подкачки размер дискового пространства в два раза больший, чем размер доступной оперативной памяти. Сейчас эти рекомендации не всегда актуальны – не редкость встретить серверы с оперативной памятью размером в несколько гигабайт. В таком случае польза большого свопа сомнительна.

Требования к частоте процессора по современным меркам совсем небольшие. Для работы системы необходим x86-совместимый процессор с частотой 120 МГц или процессор SPARC с минимальной частотой 200 МГц.

Размер использования пространства на жестком диске сильно зависит от количества установленных пакетов. Требования могут отличаться от релиза системы и составляют от 2 до 7 Гб дискового пространства.

Требования к конкретному релизу можно посмотреть в соответствующем «Release Notes» на сайте или , если вы используете OpenSolaris.

Методы инсталляции Solaris

В официальных документах можно выделить несколько типов инсталляции, рассмотрим их:

Basic или «используя программу-инсталлятор»

Как следует из названия – это самый простой вид инсталляции.

Под словом «простой» подразумевается «требующий наименьшей квалификации» системного администратора. Процесс установки таким способом мало отличается от установки других популярных ОС. Он подразумевает загрузку временной ОС (с диска CD, или DVD, или используя загрузку по сети) и ответы на простые вопросы программы-инсталлятора.

В Solaris 10 существует два вида программы-инсталлятора – с текстовым и графическим интерфейсами. Графический инсталлятор использует Java, требования к системе в случае его использования повышаются; в некоторых случаях могут быть выше, чем требования к рабочей системе.

Этот вид установки подробно рассмотрен в нескольких документах на ресурсе .

Solaris Flash Archives

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

Суть метода состоит в том, что можно использовать одну рабочую систему как шаблон (master system). И реплицировать эту инсталляцию на другие системы, называемые клонами (clone system).

Можно «клонировать» системы как полностью перезаписывая информацию на носителе (установка «с нуля»), так и внося лишь частичные изменения. Причем в клонировании может участвовать не только системное программное обеспечение, но и другие файлы.

Этот метод – удобный способ управления большим количеством однотипных серверов, на которые время от времени приходится накладывать патчи.

Например, знакомая любому хостеру ситуация, когда время от времени приходится изменять версию PHP. Способ похож на архивирование группы файлов и их распаковку на другие машины.

Более подробно ознакомиться с этим видом установки Solaris 10 можно на сайте в книге No: 817­-5668-11 «Solaris 10 Installation Guide: Solaris Flash Archives (Creation and Installation)».

Custom JumpStart

Это самый популярный метод установки Solaris. Вернее, самый популярный способ – установка системы по сети, используя технологию JumpStart.

JumpStart отличается от других методов подходом к конфигурации системы и особенно полезен, если используется несколько серверов под управлением Solaris (обычно так и происходит – если в организациии появляется система под управлением Solaris – то не одна).

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

Если инсталляция происходит с CD – все равно придется уделять свое внимание процессу установки для смены дисков.

Подробнее с эти видом установки можно ознакомиться в книге No: 817-5506-12 «Solaris 10 Installation Guide: Custom JumpStart and Advanced Installations».

Solaris Live Upgrade

В среде Solaris давно существует два способа установки программного обеспечения: стандартный метод и Live Upgrade.

Стандартный способ – когда установка и обновление происходит с остановкой работы сервисов на рабочей системе.

Альтернативный вариант – Live Upgrade. В данном случае слово Upgrade не нужно понимать буквально как «обновление». Это всего лишь название способа установки ПО, слово не несет привычной смысловой нагрузки.

В случае использования альтернативной технологии системное программное обеспечение может быть установлено на работающей системе, но на неактивную партицию (часть диска) или неактивный DiskSet – «набор дисков» – если используется много дисков. То есть делается копия рабочей конфигурации, на копию накатываются патчи; или же система прогружается полностью «с нуля». Потом происходит переключение путем перезагрузки на новую партицию (или DiskSet). В случае возникновения проблем возможно переключение на старую, рабочую конфигурацию. Время простоя системы при обновлении подобным способом минимально.

Более подробно ознакомиться с этим видом установки Solaris 10 можно на сайте . Например, в книге No: 817-5505-12 «Solaris 10 Installation Guide: Solaris Live Upgrade and Upgrade Planning».

Существует еще один (довольно популярный) способ обновления ПО, похожий на Solaris Live Upgrade, но применимый также к другим системам. Устройства хранения обновляемой системы должны быть объединены в «зеркало» (RAID-1 и т. п.). В таком случае перед обновлением системы диски разбиваются на две части: активную часть и резервную копию.

Вся работа по обновлению системы происходит над одной «половинкой» зеркала – активной частью. После успешного завершения работ диски опять объединяют в зеркало. Происходит синхронизация дисков с активной части на резервную копию.

В случае неудач в процессе обновления ПО возможна загрузка с резервной копии. В таком случае синхронизация дисков происходит в обратную сторону.

Network-based

Как уже было отмечено выше, Solaris 10 предоставляет возможность произвести установку системы по сети. Это можно сделать, используя стандартную программу-установщик, технологию JumpStart.

Также разработчики предоставляют возможноть установить систему через сети общего пользования, в том числе через Интернет. В таком случае установку можно произвести только на SPARC-совместимые системы. Используются протоколы HTTP или HTTPS. Если интересно – процесс подробно описан на сайте . Например, в книге No: 817-5504-12 «Solaris 10 Installation Guide: Network-Based Installations».

На практике чаще всего настраивают инсталл-сервер и системы прогружают по сети, используя технологию JumpStart.

Выбор набора устанавливаемых программ

Одна из особенностей операционной системы Solaris то, что она состоит из пакетов.

Может показаться, что многие современные системы также состоят из пакетов. Это не так. Действительно, у большинства дистрибутивов существует возможность использовать какой-нибудь менеджер пакетов или даже несколько. Но подобные инструменты обычно используются для установки дополнительного ПО (которое, впрочем, может перекрывать функционал системного). Сама система в таком случае ставится как одна монолитная, неделимая большая программа, состоящая, может быть, из множества файлов.

Например, после установки FreeBSD команда pkg_info не покажет ни одного пакета. В момент инсталляции мы можем выбрать лишь комбинацию из крупных наборов файлов: исполняемые файлы, документация, исходные тексты и т. п. При установке MS Windows можем наблюдать подобную ситуацию (точно не будет исходных текстов). В обоих случаях программа-установщик распаковывает файлы ОС из архивов и копирует их на диск. В одном случае используются CAB-файлы, в другом – TGZ.

В отличие от них установка всей системы Solaris происходит командой pkgadd. Например, при установке набора пакетов «Entire Solaris Software Group Plus OEM Support» ставится 984 системных пакета в Solaris 10, 1055 пакетов в Solaris 9.

Системные пакеты обычно имеют префикс SUNW.Поэтому их количество проверить легко:

$ pkginfo | grep SUNW | wc -l

Установленное в систему ПО можно посмотреть в файле /var/sadm/install/contents. Способ используется чаще, чем стандартный whereis из UNIX. Например, где находится файл bash, в какой пакет входит, можно посмотреть командой grep:

# uname -a; echo ; grep "/bash " /var/sadm/install/contents

SunOS mncomp 5.10 Generic_118833-33 sun4u sparc SUNW,Sun-Blade-100

/usr/bin/bash f none 0555 root bin 735572 56826 1106443425 SUNWbash

Здесь мы видим, что исполняемый файл bash входит в пакет SUNWbash. В случае если нам понадобится, например, обновить версию интерпретатора, можно удалить установленный пакет и поставить его более новую версию.

Например, как-то раз мне пришлось столкнуться с интересным случаем. Долгое время работал сервер под управлением Solaris 8. Одной из функций этого сервера была обработка электронной почты. Понадобилось настроить дополнительную проверку почты через внешний фильтр – milter. В Solaris 8 использовался Sendmail версии 8.11 с патчами от SUN.

Для использования технологии milter требовалась версия не ниже 8.12, а это уже из набора Solaris 9. Обновление версии системы не рассматривалось – слишком много других сервисов работало на сервере, в том числе программы сторонних разрабочиков. На другой машине был собран пакет sendmail с нужной функциональностью, после чего ПО для почтового сервиса было заменено штатными средствами системы. Время простоя одного сервиса составило всего несколько минут; остальная функциональность системы не пострадала.

Разбиение системного ПО на пакеты предоставляет большую гибкость в момент установки и дальнейшей работы. Администратор может установить не только стандартные наборы ПО, но и легко создавать собственные. Например, для экономии места на дисках. Перейдем к рассмотрению наборов.

Стандартные наборы программ

В Solaris 10 предопределено 6 наборов системных пакетов. Для каждого набора существуют рекомендации по использованию дискового пространства, которые описывают использование следующих областей:

  • Виртуальная память (Swap).
  • Патчи.
  • Дополнительное программное обеспечение (пакеты).

Скорее всего установленная система будет занимать меньше места, чем написано в рекомендациях.

Системные пакеты можно найти на установочном диске (или на установочном сервере) в директории Solaris_10/Product/.

Из каких конкретно пакетов состоит каждый набор, можно посмотреть там же в файле Solaris_10/Product/.clustertoc.

Рассмотрим стандартные наборы пакетов Solaris 10 подробнее.

Reduced Network Support Software Group

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

Также этот системный набор позволяет настроить сетевые интерфейсы, но не запускает сетевые сервисы.

Core System Support Software Group

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

End User Solaris Software Group

Содержит пакеты, необходимые для работы с сетвыми сервисами, а также оконный менеджер и набор программ с графическим интерфейсом.

Developer Solaris Software Group

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

Компиляторы в этот набор не входят, к сожаленью, их придется доставлять отдельно.

Требования к дисковому пространству увеличились до 6,6 Гб.

Entire Solaris Software Group

Содержит все файлы из предыдущего набора плюс дополнительные пакеты, полезные для работы серверов.

Entire Solaris Software Group Plus OEM Support

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

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

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

Разбиение системного ПО на пакеты имеет одну неприятную особенность, проявляющуюся в момент инсталляции.

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

Нередко случается, что установка Solaris растягивается на несколько часов.

В случае если инсталляцию системы необходимо провести очень быстро – придется использовать другие способы, например, Flash Archives.

Стандартные вопросы

Перед инсталляцией системы необходимо знать ответы на вопросы, возникающие в большинстве случаев установки. Все вопросы с возможными ответами перечислены в таблице «Checklist for Installation» в книге No: 817-0544-12 «Solaris 10 Installation Guide: Basic Installations».

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

Кроме конфигурационных файлов настройку системы можно производить, используя утилиты sys-unconfig(1M) и sysidtool(1M).

Является ли система частью сети?

Ответ на этот вопрос никаких конкретных изменений в системе не делает. Только влияет на последовательность следующих вопросов – раздел «настройки сети».

Настройки сети

Для каждого сетевого интерфейса, в том числе использующего DHCP для своей настройки, необходим файл /etc/hostname.hme0, где hme0 – имя интерфейса.

Для протокола IPv6 используются файлы вида: /etc/hostname6.hme0.

В этих файлах лежат настройки интерфейсов, используемые командой ifconfig. Можно ограничиться одним файлом для настройки, но обычно дополнительно используется информация из других источников. В основном это файлы /etc/hosts и /etc/netmasks.

Могут использоваться не только файлы, но и другие информационные службы: DNS, LDAP, NIS, NIS+ и т. п. Откуда конкретно берется информация, можно посмотреть в файле /etc/nsswitch.conf.

Подробную информацию по используемым файлам можно посмотреть в соответствующих разделах документации.

Настройки DHCP

Если сетевой интерфейс использует протокол DHCP для своей настройки, то в системе создается файл /etc/dhcp.hme0, где hme0 – имя интерфейса.

Имя системы

Часто hostname путают с именами интерфейсов, хранящимися в файлах /etc/hosts, /etc/hostname*. Интерфейсов может быть несколько, а имя у системы – одно. В системном руководстве (man) говорится, что если сетевых интерфейсов несколько, то именем системы служит имя Primary Interface. На практике дело обстоит несколько иначе. Начиная с версии 10, информация об имени системы хранится в следующих файлах:

  • /etc/nodename;
  • /etc/inet/hosts;
  • /etc/inet/ipnodes.

Kerberos

Файлы с настройками Kerberos хранятся в папке /etc/krb5/.

Сервисы имен

Solaris может использовать информацию о системных настройках из различных источников. Информация об использовании всех служб берется в первую очередь из файла /etc/nsswitch.conf. Настройки конкретных служб можно посмотреть в соотвествующих разделах документации.

Маршруты по умолчанию

Информация о маршрутах по умолчанию хранится в файле /etc/defaultrouter, по одной строчке на маршрут. Программа-инсталлятор предлагает указать только один маршрут. Файл читается только при загрузке системы. Текущие настройки маршрутизации на работающей системе можно посмотреть командой:

netstat -rn

Управлять настройками маршрутизации можно командой route.

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

Также во время инсталляции система может попытаться определить настройки маршрутизации самостоятельно, используя протокол ICMP, если конфигурация сети позволяет.

TimeZone, locales

Информация о временной зоне, географическом регионе и другая хранится в файле /etc/TIMEZONE, который является символической ссылкой на /etc/default/init.

Остальные вопросы

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

Настройки файловой системы хранятся в файле /etc/vfstab, синтаксис которого походит на подобные файлы из других систем. Информацию об установленной системе можно посмотреть командой showrev с различными ключами, а также в каталоге /var/sadm.

Например, информация об установленных пакетах хранится в файле /var/sadm/install/contents.

Файлы журнала о прошедшем процессе инсталляции системы хранятся в каталоге /var/sadm/system/logs/ и /var/sadm/install/logs/.

Выводы

По каждому виду инсталляции существует отдельная книга, также встречаются статьи с конкретными примерами. Вообще процесс установки современных ОС выглядит примерно одинаково, по крайней мере в простейших случаях. Отличия проявляются в тонкостях настройки и используемой терминологии. Как видно, легендарная операционная система предоставляет администратору большую свободу в выборе действий уже в процессе инсталляции. Именно гибкостью настройки Solaris всегда отличался от других систем. Возможно, во многих случаях она не пригодится – тогда будут использоваться стандартные варианты настроек. Работать с «динозавром» совсем не страшно.

  1. http://docs.sun.com – раздел opennet.ru, посвященный Solaris. Где, кроме всего прочего, можно найти подборку полезных ссылок на русском языке.
  2. http://ru.wikipedia.org .
  3. http://playground.sun.com/1275 – домашняя страница OpenBoot.

Вконтакте

Лекция 1 Для начинающих работать в UNIX При входе в систему пользователь набирает имя в ответ на пригла- шение login:. Затем, в ответ на password следует набрать пароль. При вводе пароль никак не отображается, в том числе и звездочками. Пароль может назначаться системным администратором при добав- лении пользователя в систему. Подробнее о параметрах пароля (частота изменения, ограничение длины и т. п.) в Solaris рассказано в лекции 5. Пользователь или системный администратор имеют возможность изменить пароль с помощью команды passwd имя_пользователя (или с помощью графического интерфейса). Системный администратор может изменить пароль любого пользователя, все остальные – только свой собственный. Команда passwd без параметров меняет пароль того пользо- вателя, который ее запустил. При изменении своего пароля потребуется набрать старый пароль (чтобы подтвердить, что вы – действительно тот, за кого себя выдаете) и затем – новый пароль. Новый пароль потребуется набрать дважды, чтобы система была уверена в вашем выборе. Пароль может содержать любые символы. Допустимая длина пароля в Solaris составляет от 6 до 8 символов. Регистр в паролях, как и повсюду в UNIX, имеет значение: символы разных регистров считаются различ- ными. Пароль не должен легко отгадываться. Идеальный пароль в системах UNIX состоит из восьми символов, среди которых есть латинские буквы разных регистров, цифры и знаки препинания. Не следует набирать пароль латинскими буквами, соответствующими русскому слову на кла- виатуре – эти комбинации давно попали в словари взломщиков, так же как комбинации последовательных клавиш типа qazwsx. Как на военном заводе нельзя одолжить чужой пропуск на денек, пользователям нельзя делиться с коллегами своим паролем. Не следует также писать пароль на бумажке и приклеивать ее к столу, на стену или монитор. Если под одним именем и паролем работает несколько человек, нельзя выяснить, кто конкретно выполнил в системе действие от этого имени. Список пользователей системы хранится в файлах /etc/passwd (в нем нет зашифрованных паролей, и его можно читать всем) и /etc/ shadow (здесь есть зашифрованные пароли и дополнительная информация о параметрах пароля, читать можно только пользователю root). Список групп хранится в /etc/group. Структура файлов /etc/passwd, /etc/shadow и /etc/group, а также иные возможные источники информации о пользо- вателях и группах в системе рассмотрены в лекции 5. 33 Курс Операционная система Solaris Режимы работы систем UNIX Любая система UNIX, и Solaris в том числе, может работать в нескольких режимах. Это как минимум однопользовательский и много- пользовательский режимы. В однопользовательском режиме систему загружают только в экстренном случае – для какой-то серьезной модифи- кации или ремонта. В этом режиме загружается только ядро и командный процессор – сетевые службы не задействуются. Многопользовательский режим – это обычный режим работы системы, который включается после загрузки по умолчанию. В ряде систем (например, в Linux) существует большее количество режимов работы (часто – семь, с номерами от 0 до 6, в Solaris к ним еще добавляется режим s). Среди этих режимов выделяют режим выключения системы, однопользовательский режим и несколько многопользовательских, которые отличаются друг от друга тем, какие именно сетевые службы запускаются при старте системы. Для обычной работы система загружается в многопользовательском режиме. В нем пользователи могут одновременно входить в систему локально или через сеть, посылать программам, работающим в систе- ме, запросы различного характера по сети. В этом режиме множество пользователей одновременно могут работать в системе. Их количество ограничивается размером таблиц ядра. Ограничение числа одновре- менно работающих пользователей связано не с числом одновременно запущенных командных процессоров или сеансов связи, а с количеством запущенных процессов и потребляемых ими ресурсов. Поэтому в каждый момент времени максимальное число пользователей, имеющих возмож- ность работать с системой, индивидуально. Для загрузки системы в однопользовательском режиме следует при загрузке дать команду boot –s или b –s программе-загрузчику. Для перехода из многопользовательского режима в однопользова- тельский дайте команду init s или 34 Лекция 1 Для начинающих работать в UNIX init S Тот же эффект даст выполнение shutdown без параметров. Для того чтобы перевести систему из однопользовательского режима в многопользовательский, нужно перезагрузить компьютер или выйти из командного процессора однопользовательского режима (exit или Ctrl+D, работает в большинстве случаев). Также можно запустить программу init с параметром – названием режима работы, например init 3 Cуществует несколько режимов работы (runlevels) операционной системы. Режим с номером 1 соответствует однопользовательскому режи- му, а 3 – многопользовательскому. Режим номер 0 – это остановка (на этот уровень систему переводит команда shutdown). О режимах работы системы можно узнать больше из руководства по системе: man init В Solaris 10 введено новое понятие «этап» (milestone), которое чем-то похоже на «режим работы». Этап – это определенное состояние системы, в котором запущены характерные для него службы. Этап, по сути, – это определенный набор служб. Например, для того чтобы оставить работать только те службы, которые характерны для однопользовательского режи- ма работы, следует дать команду svcadm milestone -d milestone/single-user:default Этап, указываемый команде svcadm milestone, может быть ключевым словом «single-user», «multi-user» или «multi-user-server». Кроме этого, есть специальные этапы «all» (запуск всех служб, которые должны быть запущены при старте системы) and «none» (временный запрет всех служб, кроме svc:/system/svc/restarter:default). При выдаче этой команды в указанной форме этап становится этапом по умолчанию и сохраняется таковым при перезагрузке системы. Для перевода системы в другой режим работы следует использовать вызов init напрямую, – переход к другому этапу не вызывает перехода к новому режиму работы. Из соображений совместимости в Solaris 10 режимы работы контролируются процессом init, как и в других системах семейства System V. 35 Курс Операционная система Solaris Дополнительную информацию об режимах работы, этапах и связан- ном с этапами механизме SMF можно получить из лекции 11. Быстрый взгляд на экран в UNIX Теперь мы уже знаем достаточно, чтобы не удивляться сообщени- ям системы при работе. Кстати, а какие у нас есть средства общения с системой? Как мы будем разрабатывать в ней программы, как выходить в Интернет, читать почту, набирать тексты, записывать диски, смотреть фильмы, слушать музыку, наконец, настраивать саму систему? В любой системе UNIX для всех этих задач предлагается воспользо- ваться либо графическим интерфейсом (его еще называют оконным – каж- дая програма общается с человеком в одном или нескольких окнах), либо интерфейсом командной строки (это когда для выполнения действия надо написать системе команду – например, напечатать команду ls и нажать клавишу Enter, чтобы посмотреть список файлов в каталоге). Графический интерфейс Для каждодневной работы в системе вы, скорее всего, предпо- читаете пользоваться графическим интерфейсом. Solaris по умолчанию (если не настроен иначе) после загрузки предлагает ввести имя и пароль, причем делает это уже в графическом режиме. Пароль традиционно не отображается при вводе ни звездочками, ни как-либо иначе. Это делается для того, чтобы злоумышленник или случайная видеокамера наблюдения не подглядели из-за плеча, сколько символов в вашем пароле. После ввода корректных имени и пароля вы окажетесь в графиче- ской среде GNOME, которая является средой по умолчанию в Solaris 10 и Solaris Express. Вообще говоря, при вводе имени и пароля можно выбрать традиционную для Solaris и HP-UX среду CDE (Common Desktop Environment), воспользовавшись кнопкой Options в окне ввода. Если же вы последовательный сторонник KDE, то знайте, что она не поставляется в составе дистрибутива Solaris, но ее можно установить самостоятельно, скачав готовый пакет KDE для Solaris с сайта blastvawe.org. О пакетах и их установке рассказывается в лекции 14. Менеджер окон В любой графической среде существует программа, которая называ- ется менеджером окон. Она используется для управления окнами других программ. Именно она позволяет свертывать окна, изменять их размеры, перемещать по экрану, переключаться между ними, развертывать их на весь 36 Лекция 1 Для начинающих работать в UNIX экран. Она же отображает окна в привычном для нас виде – с заголовком окна и элементами управления для свертывания и перемещения окон. Экран в каждый момент времени показывает содержимое рабо- чего стола, который в Solaris носит название «рабочего пространства» (workspace). Рабочих пространств может быть несколько. С точки зрения менеджера окон, рабочее пространство – это множество окон. Менеджер окон позволяет переключаться между разными рабочими пространства- ми. По умолчанию их четыре, обычно используют от четырех до шести рабочих пространств. С помощью настроек менеджера окон число рабо- чих пространств можно изменить. Графическая среда GNOME Работу графической среды обеспечивает несколько компонент, о которых рассказано подробнее в лекции 24, а пока достаточно сказать, что при использовании GNOME на экране вы увидите рабочий стол (Desktop), внизу экрана расположена панель задач, в правой части кото- рой может отображаться служебная информация вспомогательных про- грамм (так называемых апплетов панели задач). Например, там может быть указан текущий язык ввода, там же располагается кнопка регулятора громкости звука и т. п. В левой части панели отображается кнопка вызова календаря, на которую выведены системные дата и время (рис. 1.1). Рис. 1.1. Вид рабочего стола в Solaris 37 Курс Операционная система Solaris Для доступа к меню вызова различных приложений надо нажать кнопку с логотипом Java (чашка ароматного кофе) в левом нижнем углу* экрана. Если вы еще не изменяли настройки вашей графической среды после установки системы, то, нажав эту кнопку, вы сможете вызвать ряд приложений, включая офисные приложения, графический редактор, игры, справку по графической среде и т. п. Приложения для настройки системы тоже будут доступны, но при их запуске потребуется вводить пароль администратора (пользователя root), если вы вошли в систему не от имени root. Рис. 1.2. Меню запуска приложений в GNOME Работа в графической среде в Solaris не имеет заметных отличий от работы в аналогичной среде в Linux, FreeBSD или других системах UNIX, и весьма похожа на работу в графической среде Windows. Таким образом, так как у вас есть опыт работы в какой-нибудь из этих систем, с работой в Solaris вы легко освоитесь (или уже сделали это; вероятно, у вас это заняло времени не больше, чем чтение этого абзаца). Графическая среда CDE Управляющая панель (front panel) менеджера окон доступна в любом рабочем пространстве внизу экрана. Кроме переключения между про- странствами управляющая панель менеджера окон (рис. 1.3) позволяет * В OpenSolaris 2008.05 меню вызова приложений расположено вверху экрана - так же как в Ubuntu Linux. 38 Лекция 1 Для начинающих работать в UNIX Рис. 1.3. Управляющая панель менеджера окон в CDE вызывать программы, кликая мышью по соответствующим иконкам. С подобной системой знакомы те из вас, кто пользовался ярлыками в панели задач Windows. За каждой иконкой, кроме конкретной программы, скрывается целый набор ярлыков, служащих для вызова других, тематиче- ски связанных с ней программ (рис. 1.4). Для доступа к ним следует нажать стрелку над иконкой (на рис. 1.3 нажата стрелка над иконкой «приложе- ния», четвертой слева). Рис. 1.4. Связанные с иконкой «приложения» ярлыки Более подробно о настройке среды CDE рассказано в лекции 24. Экран – рабочее пространство пользователя На рабочем пространстве располагаются окна запущенных в данный момент программ. Окно может быть свернутым (тогда оно изображается иконкой в рабочем пространстве); по умолчанию размещение иконок свер- нутых окон начинается в левом верхнем углу и ведется сверху вниз слева направо. Также окно может занимать весь экран или любую его часть. 39 Курс Операционная система Solaris Что можно сделать с окном Верхняя строка окна (рис. 1.5) содержит три элемента управления: черточку в левом верхнем углу окна (первый элемент), точку (второй) и выпуклый квадрат (третий элемент) в правом верхнем углу окна. Рис. 1.5. Верхняя строка окна в CDE При нажатии на первый открывается меню, которое позволяет восстановить первоначальный размер окна – restore (если окно развер- тывалось на полный экран до того), переместить окно – move, изменить его размер – resize, свернуть – minimize, развернуть на полный экран – maximize, поместить окно на задний план – lower (за окна других про- грамм) или закрыть – close. С помощью этого же меню можно указать, что данное окно должно присутствовать во всех (occupy all workspaces) или нескольких (occupy workspace) рабочих пространствах. При переклю- чении из одного пространства в другое окно будет «переходить» вслед за вниманием пользователя из одного пространства в другое. Второй элемент управления служит для свертывания окна (эквива- лентно выбору minimize в меню первого элемента управления, а третий – для развертывания во весь экран (эквивалентно maximize). У разверну- того окна третий элемент управления выглядит иначе (впалый квадрат) и служит для восстановления первоначального размера окна (restore). Интерфейс командной строки Понятие терминала Терминал – это экран и клавиатура, с помощью которых осущест- вляется связь с компьютером. Терминалы бывают графические и текстовые. Графические термина- лы могут работать в графическом режиме. Терминал предназначен исключительно для ввода информации и ее отображения на экране. Терминалы бывают физическими (еще их назы- вают реальными), виртуальными и псевдо-терминалами (т. е. программа- ми, которые «притворяются» терминалами). Физический терминал – это устройство, состоящее из экрана и кла- виатуры, обычно подключенное к компьютеру через последовательный интерфейс, например с помощью кабеля или модема. Если вы соеди- няетесь с UNIX-машиной с помощью эмулятора терминала через модем 40 Лекция 1 Для начинающих работать в UNIX своего компьютера, позвонив на другой модем, подключенный непосред- ственно к UNIX-машине, то с точки зрения UNIX вы работаете на физи- ческом терминале. В этом случае связка «модем-телефонная сеть-модем» рассматривается как единый кабель. В старых версиях Solaris неофициально поддерживались виртуаль- ные терминалы. Начиная с версии 9 эта поддержка отсутствует. Основа виртуального терминала – это монитор и клавиатура, непосредственно подключенные к компьютеру. Однако, хотя монитор всего один, виртуаль- ных терминалов может быть несколько. Вы можете по очереди работать с разными виртуальными терминалами, нажимая комбинацию клавиш Alt+Fх, где х – номер терминала. С монитором и клавиатурой связаны несколько независимых виртуальных терминалов. При работе в графи- ческом режиме надо использовать комбинацию клавиш Ctrl+Alt+Fn для переключения между виртуальными терминалами. Виртуальные терминалы, как правило, текстовые, хотя один из них может быть графическим. Виртуальные терминалы используются в компьютерах на платформе i386, потому что терминалы, подключаемые к компьютерам на других платформах, обычно постоянно работают в графическом режиме, а в нем вместо нескольких виртуальных терминалов проще открыть несколько окон эмуляторов терминала. Виртуальные терминалы широко применя- ются в Linux и FreeBSD. При работе с графическим терминалом для получения несколь- ких терминалов достаточно просто открыть несколько окон и в каждом из них запустить терминальную программу. Так, в Solaris можно запу- стить несколько приложений, обозначенных в меню CDE как «console». Программа, которая запускается при выборе приложения «console», называется dtconsole. Выбрав в меню «This host», вы запустите терми- нальную программу dtterm. Консоль – это терминал, который применяется для загрузки опера- ционной системы. Проще говоря, если системный администратор при загрузке исполь- зует (или имеет возможность это делать) некий терминал для наблюде- ния за процессом загрузки и (возможно) вмешательства в него, то этот терминал называется консолью. Для UNIX-систем консоль – это либо непосредственно подключенный к компьютеру монитор и клавиатура, либо подключенный к первому последовательному порту терминал. В приложении к виртуальным терминалам консолью является первый вир- туальный терминал (Alt+F1). Псевдотерминал – это программа-эмулятор терминала, которая сое- диняется с UNIX-компьютером через сеть или запускается в графическом режиме (например, dtterm в CDE и gnome-terminal в GNOME). 41 Курс Операционная система Solaris Любой терминал (физический, виртуальный или псевдотерминал) может быть графическим. Эмулятор графического терминала базируется на программе X-Server’a. Подробнее об X-server’ах и системе X-Window – в лекции 24. Текстовые терминалы могут отображать только текст и псевдогра- фику. Мы будем рассматривать многие команды Solaris в предположении, что мы работаем с текстовым терминалом. В то же время, когда в Solaris доступна и полезна программа с графическим интерфейсом, которая часто нужна системному администратору в работе, мы будем рассматри- вать и такие случаи. Существует большое количество разных текстовых терминалов. Наиболее известны терминалы ANSI и VT-100. Разные терминалы отли- чаются друг от друга управляющими последовательностями. Например, чтобы передать терминалу команду «поднять курсор на одну строку вверх» терминалу VT-100 нужно передать последовательность }