Операционная система Solaris: Учебное пособие. Особенности инсталляции Solaris

Среди других осей 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 суммы приложений в системе с суммами,
записанными на проверенном носителе. Если сумма изменилась
— самое время искать злоумышленника.
Но необходимо помнить, что контрольная сумма может измениться,
если ты обновлял данный пакет или файл.


Заключение

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

Лекция 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 нужно передать последовательность }