Операційна система 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) виконуємо команду для створення у файлі прототипу відносних шляхів та імен файлів:

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-зв'язку.
Управління цими зв'язками здійснюється за допомогою команди
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 username (або за допомогою графічного інтерфейсу). Системний адміністратор може змінити пароль будь-якого користувача, решта – лише свій власний. Команда 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. Існує кілька режимів роботи (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. Менеджер вікон У будь-якому графічному середовищі існує програма, яка називається менеджером вікон. Вона використовується для керування вікнами інших програм. Саме вона дозволяє згортати вікна, змінювати їх розміри, переміщати по екрану, перемикатися між ними, розгортати їх на весь екран. Вона ж відображає вікна у звичному для нас вигляді – із заголовком вікна та елементами керування для згортання та переміщення вікон. Екран у кожний момент часу показує вміст робочого столу, який у 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 потрібно передати послідовність }