Вы находитесь на странице: 1из 418

МАТВЕЕВ М. Д.

Astra Linux
УСТАНОВКА,НАСТРОЙКА
АДМИНИСТРИРОВАНИЕ

"Издательство Наука и Техника"

Санкт-Петербург
УДК 004.42 ББК 32.973

Матвеев М. Д.
ASTRA LINUX. УСГАНОВКА, НАСТРОЙКА, АДМИНИСГРИРОВАНИЕ- СПБ.:
ИЗДАТЕЛЬСТВО НАУКА И ТЕХНИКА, 2023. -416 С., ИЛ.

ISBN 978-5-907592-07-О

Astra Linux на сегодняшний день является одним из самых востребованных


программных продуктов не только на территории РФ, но и в более глобаль­
ном масштабе. Эта операционная система хороша тем, что с высокой эффек­
тивностью ее можно и�пользовать как на персональных компьютерах (для
личного пользования), так и серверах различного уровня. Также эта система
поддерживается и мобильными устройствами.
Эта книга поможет вам освоиться в Astra Linux достаточно быстро и
просто: начиная от самых основ (установка системы, начальная конфигура­
ция, основы командной строки) мы перейдем к настройке различных видов
сети (локальная сеть, Wi-Fi, VPN- и DSL-соединения), установке различных
программ и запуску Windоws-приложений. Также рассмотрим файловую
систему, управление хранилищем, загрузкой ОС и процессами. В заключи­
тельной части книги для уже чуть более опытных пользователей Linux будут
рассмотрены настройка и подключение веб-сервера.
Книга будет полезна как начинающих линуксоидам, так и более опытным
пользователям, которые хотят познакомиться с Astra Linux поближе.

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

J17
ISBN 978-5-907592-07-0 Контактные телефоны издательства:
(812) 412 70 26
Официальный сайт: www.nit.com.ru

© Матвеев М. Д.
9 5921 > © Издательство Наука и Техника (оригинал-макет)
Содержание
ВВЕДЕНИЕ .................................................................�························ 13

ГЛАВА 1. УСТАНОВКА ASTRA LINUX НА КОМПЬЮТЕР ... 17

1.1.ПОДГОТОВКА ИНСТАЛЛЯЦИОННОГО НОСИТЕЛЯ ....................................... 18

1.2. ПР ИНЦИП УСТАНОВКИ LINUX ................................................................................. 20

1.3. ЗАГРУЗКА С ИНСТАЛЛЯЦИОННОГО НОСИТЕЛЯ ........................................... 20

1.4. РАЗМЕТКА ДИСКА .......................................................................................................... 21

1.4.1. Общие сведения о разметке диска....................................................... 21


1.4.2. Введение в точку монтирования ................................. , ........................ 23
1.4.3. Подкачка ................................................................................................ 25
1.4.4. Как правильно разбивать жесткий диск? ........................................... 26

1.5.УСТАНОВКА ПАР ОЛЯ АДМИНИСТРАТОРА ......................................................... 31

1.6. ПАРАМЕТРЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ .............................................. 32

1.7.УСТАНОВКА ЗАГРУЗЧИКА ......................................................................................... 33

ГЛАВА 2. ВХОД В СИСТЕМУ ......................................................... 35

2.1. ВХОД В КОНСОЛЬ И ПЕРЕКЛЮЧЕНИЕ МЕЖДУ НИМИ ................................. 36

2.2. ОСНОВНЫЕ ЭЛЕМЕНТЫ ГРАФИЧЕСКОГО ИНТЕР ФЕЙСА .......................... 39

2.3. АВТОМАТИЧЕСКИЙ ВХОД В СИСТЕМУ ............................................................... 45

ГЛАВА 3. СРАЗУ ПОСЛЕ УСТАНОВКИ ..................................... 47

3.1. ПРОВЕРЯЕМ И УСТАНАВЛИВАЕМ ОБНОВЛЕНИЯ .......................................... 48

3.2. НАСТРАИВАЕМ ПОЧТОВЫЙ КЛИЕНТ ................................................................... 49

3.3.УСТАНОВИТЕ ВАШ ЛЮБИМЫЙ БРАУЗЕР ........................................................... 50

3.4. УСТАНОВКА ПРОИГРЫВАТЕЛЯ VLC ..................................................................... 51

3.5.УСТАНОВКА WJNE ДЛЯ ЗАПУСКА WINDОWS-ПРИЛОЖЕНИЙ ................... 52


3.6.УСТАНОВКА ДОПОЛНИТЕЛЬНЫХ АРХИВАТОРОВ ......................................... 52

. ........... .. . ..... .......... . ... ... ... . .. ......... ·····...... ········· .......... ...
Astra Linux

3.7. УСТАНОВИТЕ ПОЛЕЗНЫЕ УТИЛИТЫ ................................................................... 52

ГЛАВА 4. ОСНОВЫ КОМАНДНОЙ СТРОКИ .......................... 53

4.1. ВВОД КОМАНД............................................... :.................................................................. 54

4.2. АВТОДОПОЛНЕНИЕ КОМАНДНОЙ СТР ОКИ ...................................................... 55

4.3. ПЕРЕНАПРАВЛЕНИЕ ВВОДА/ВЫВОДА .................................................................. 56

4.4. СПРАВОЧНАЯ СИСТЕМА MAN .................................................................................. 57

4.5. КОМАНДЫ ДЛЯ РАБОТЫ С ФА ЙЛАМИ И КАТА ЛОГА МИ .............................. 57

4.5.1. Команды для работы с файлами .......................................................... 57


4.5.2. Команды для работы с каталогами...................................................... 60

4.6. КОМАНДЫ СИСТЕМНОГО А ДМИНИСТРАТОРА ................................................ 62

4.6.1. Команды для работы с устройствами и драйверами ......................... 63


4.6.2. Команды настройки сетевых интерфейсов ........................................ 64
4.6.3. Программы тестирования и настройки жесткого диска ................... 64

4.7. КОМАНДЫ ОБРАБОТКИ ТЕКСТА ...............................................................,............. 65

4.7.1. Редактор sed........................................................................................... 65


4.7.2. Подсчет количества слов/символов..................................................... 66
4.7.3. Сравнение файлов ................................................................................. 67
4.7.4. Разбивка текста на колонки ................................................................. 68
4.7.5. Команды dijfи dijfЗ............................................................................... 68
4.7.6. Командаgrер ......................................................................................... 70
4.7.7. Замена символов табуляции пробелами ............................................. 70
4.7.8. Форматирование текста........................................................................ 71
4.7.9. Команды постраничного вывода more и less ..................................... 71
4.7.10. Команды head и tail: вывод первых и последних строк файла ...... 71
4.7.11. Команда split........................................................................................ 72
4.7.12. Команда unexpand .............................................................................. 72

ГЛАВА 5. ЛОКАЛЬНАЯ СЕТЬ ....................................................... 73

5.1. ФИЗИЧЕСКАЯ НАСТРОЙКА СЕТИ ETHERNET .................................................. 74


5.2. НАСТР ОЙКА СЕТИ С ПОМОЩЬЮ ГРАФИЧЕСКОГО КОНФИГУРАТОРА ... 76

......... ······ ........................ ...... -·-......... -----·-.... ............... . .


Co.1t•pжa1111t'

5.3. КОМАНДА IFCONFIG ..................................................................................................... 79

5.4. ИМЕНА СЕТЕВЫХ ИНТЕРФЕЙСОВ В LINUX ...................................................... 82

5.5. ОБЩИЕ КОНФИГУРАЦИОННЫЕ ФАЙЛЫ ............................................................ 85

Файл /etc/hosts ................................................................................................. 85


Файлы /etc/hosts.allow и /etc/hosts.deny ........................................................ 85
Файл /etc/host.conf.......................................................................................... 86
Файл /etc/hostname ......................................................................................... 86
Файл /etclmotd ,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,.,,.,,,,,,,,,,.,,.,,,,.,,,,,,,,,,,,,,,,.,,,,.,,,,,,,,,,,,,,,,.,,. 86
Файл /etclresolv.conf....................................................................................... 86
Файл /etclservices ............................................................................................ 87
Файл /etclprotocols .......................................................................................... 87
Файл /etclnetwork/interfaces: конфигурация сети в Astra Linux ...,,.,,,,,,,,,,. 88
Каталог letc/NetworkManager/system-connections: конфигурация сети в
UЬuntu .............................................................................................................. 88

ГЛАВА 6. БЕСПРОВОДНАЯ WI-FI СЕТЬ .................................. 91

6.1. НАСТРОЙК А БЕ(::ПРОВОДПОЙ СЕТИ С ПОМОЩЬЮ ГРАФИЧЕСКОГО


ИНТЕРФЕЙСА ......................................................................................................... 93

6.2. НАСТРОЙК А БЕСПРОВОДНОГО СОЕДИНЕНИЯ В КОМАНДНОЙ СТРОКЕ


(WЕР-ШИФРОВАПИЕ) ......................................................................................... 95

6.3. СОЕДИНЕНИЕ С ТОЧКОЙ ДОСТУП А ПО WРА-ШИФРОВАПИЮ ................ 97

ГЛАВА 7. VРN-СОЕДИНЕНИЕ .................................................... 101

7.1. ЗАЧЕМ НУЖНА VPN ...................................................................................................... 102

7.2. НАСТРОЙК А VРN-ПОДКЛЮЧЕПИЯ В ASTRA LINUX .................................... 103

ГЛАВА 8. DSL-СОЕДИНЕНИЕ ..................................................... 107

8.1. НЕСКОЛЬКО СЛОВ О DSL-ДOCTYПE ................................................................... 108

8.2. НАСТРОЙК А DSL/PPPOE В ASTRA LINUX............................................................ 109

8.3. ПРОГРАММА PPPOECONF: НАСТРОЙК А DSL-СОЕДИПЕПИЯ П А СЕРВЕ-


РЕ БЕЗ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА .................................................... 112


8.4. ПРОГРАММА PPPOE-SETUP........................................................................................ 114

·-·······-···--···-···-·······--····························---··--------·----------
Astra Linux

ГЛАВА 9. УСТАНОВКА ПРОГРАММ В ASTRA LINUX ....... 119

9.1. СПОСОБЫ УСТАНОВКИ ПР ОГРАММ ................................................................... 120

9.2. ТИПЫ ПАКЕТОВ И ИХ СОДЕРЖИМОЕ ................................................................ 121

9.3. ИСТОЧНИКИ ПАКЕТОВ.............................................................................................. 122

9.4. МЕНЕДЖЕРЫ ПАКЕТОВ ............................................................................................ 123

9.5. ГРАФИЧЕСКИЕ СРЕДСТВА УСТАНОВКИ ПР ОГРАММ ................................. 128

9.6. ОШИБКА ПРИ ВЫПОЛНЕНИИ АРТ: UNABLE ТО ACQUIRE ТНЕ DPKG


LOCK /VARILIBIDPKGILOCK .............................................................................. 131

ГЛАВА 10. ПОПУЛ ЯР Н ЫЕ ПРОГРАММЫ ....................�......... 135

10.1. ОФИСНЫЕ ПАКЕТЫ .................................................................................................. 136

10.2. ГРАФИЧЕСКИЕ ТЕКСТОВЫЕ РЕДАКТОРЫ ..................................................... 137

10.3. КОНСОЛЬНЫЕ ТЕКСТОВЫЕ РЕДАКТОРЫ...................................................... 139

10.4. ПРОГРАММЫ ДЛЯ РАБОТЫ С ИНТЕРНЕТОМ ................................................ 143

10.5. LINUX-AHAЛOГИ WINDOWS-ПPOГPAMM ........................................................ 143

ГЛАВА 11. ЗАПУСК WINDОWS-ПРИЛОЖЕНИЙ В ASTRA LINUX"153

11.1. УСТАНОВКА ИЗ ОФИЦИАЛЬНОГО РЕПОЗИТАРИЯ .................................... 155

11.2. НАСТРОЙКА ПОСЛЕ УСТАНОВКИ ...................................................................... 155

11.3. УСТАНОВКА И ЗАПУСК WINDOWS-ПPOГPAMMЫ ....................................... 157

11.4. СПИСОК ИГР И ДРУГИХ ПРИЛОЖЕНИЙ, РАБОТАЮЩИХ ЧЕРЕЗ WINE "159

11.5. ИСПОЛЬЗОВАНИЕ ОТДЕЛЬНЫХ ПРЕФИКСОВ.............................................. 160

ГЛАВА 12. ФАЙЛОВАЯ СИСТЕМА ........................................... 161

12.1. КАКИЕ ФАЙЛОВЫЕ СИСТЕМЫ ПОДДЕРЖИВАЕТ ASTRA LINUX ......... 162

...
12.2. КАКУЮ ФАЙЛОВУЮ СИСТЕМУ ВЫБРАТЬ? .................................................... 164

•.
12.3. ЧТО НУЖНО ЗНАТЬ О ФАЙЛОВОЙ СИСТЕМЕ LINUX ................................ 165

. . . .. . -...... -... - - . - - - . - - - - - - - - - - - - -.. - - -- . - -. -. - ... - -. - -- -. - . - - - - - . - .. - - - . - - - - -


Со.1срт::н111с

12.3.1. Имена файлов и каталогов ............................................................... 165


12.3.2. Файлы устройств ..................................... , ........................................ 165
12.3.3. Корневая файловая система и основные подкаталоги первого
уровня .. , .. , ........ , ............................................................................................. 166

12.4. ссылки .......................................................................................................................... 168

12.5. ПРАВА ДОСТУПА ......................................................................................................... 169

12.5.1. Общие положения ............................................................................. 169


12.5.2. Смена владельца файла ............................... , .................................... 170
12.5.3. Определение прав доступа .............................................................. 170
12.5.4. Специальные права доступа ............................................................ 172

12.6. АТРИБУТЫ ФАЙЛА ..................................................................................................... 173

12.7. ПОИСК ФАЙЛОВ .......................................................................................................... 174

12.8. МОНТИРОВАНИЕ ФАЙЛОВЫХ СИСТЕМ .......................................................... 177

12.8.1. Монтируем файловые системы вручную ................:...................... 177


12.8.2. Имена устройств ............................................................................... 179
12.8.3. Монтируем файловые системы при загрузке ................................. 182
12.8.4. Автоматическое монтирование файловых систем......................... 183

12.9. РАБОТА С ЖУРНАЛОМ ............................................................................................. 183

12.10. ПРЕИМУЩЕСТВА ФАЙЛОВОЙ СИСТЕМЫ ЕХТ4 ........................................ 184

12.11. СПЕЦИАЛЬНЫЕ ОПЕРАЦИИ С ФАЙЛОВОЙ СИСТЕМОЙ ....................... 185

12.11.1 Монтирование NТFS-разделов ........................,.............................. 185


12.11.2. Создание файла подкачки ..................................., ....................... , .. 186
12.11.3. Файлы с файловой системой ................................................... , ...... 187
12.11.4. Создание и монтирование !SO-образов ........................................ 187

12.12. ФАЙЛЫ КОНФИГУРАЦИИ LINUX ...................................................................... 188

12.12.1. Содержимое каталога /etc .............................................................. 188


12.12.2. Конфигурационные файлы ............................................................ 189
12.12.3. Подкаталоги с конфигурационными файлами ............................. 196

12.13. ПСЕВДОФАЙЛОВЫЕ СИСТЕМЫ ........................................................................ 203

12.13.1. Псевдофайловая система sysfs ....................................................... 204


12.13.2. Псевдофайловая системарrос ....................................................... 205
Лstra (,i1ш х 1ASTRд*L1Nux·j

ГЛАВА 13. УПРАВЛЕНИЕ ХРАНИЛИЩЕМ ........................... 209

13.1. ПОДКЛЮЧ ЕНИЕ НОВОГО ЖЕСТКОГО ДИСК А И ЕГО РАЗМЕТК А ....... 210

13.2. МЕНЕДЖЕР ЛОГИЧ ЕСКИХ ТОМОВ ................................................................... 217

13.2.1. Введение в LVМ ................................................................................ 217


13.2.2. Уровни абстракции LVM .................................................................. 218
13.2.3. Немного практики ............................................................................. 218

ГЛАВА 14. УПРАВЛЕНИЕ ЗАГРУЗКОЙ ОС ............................ 223

14.1. З АГРУЗЧИКИ LINUX................................................................................................... 224

14.2. З АГРУЗЧИК GRUB2 ...................................................................................................... 225

14.2.1. Конфигурационные файлы ............................................................. 225


14.2.2. Выбор метки по умолчанию ............................................................ 231
14.2.3. Загрузка Windows.............................................................................. 231
14.2.4. Пароль загрузчика GRUB2............................................................... 232
14.2.5. Установка загрузчика........................................................................ 234

14.3. СИСТ ЕМА ИНИЦИ АЛИЗ АЦИИ .............................................................................. 235

14.3.1. Принцип работы................................................................................ 235


14.3.2. Конфигурационные файлы systemd ................................................ 237
14.3.3. Цели.................................................................................................... 240

14.4. УПРАВЛЕНИ Е С ЕРВИСАМИ ПРИ ИСПОЛЬЗОВАНИИ SYSTEMD ............. 241

ГЛАВА 15. УПРАВЛЕНИЕ ПРОЦЕССАМИ .............................245

15.1. КОМАНДЫ PS, N1CE И KILL ..................................................................................... 246

15.1.1. Получение информации о процессе................................................ 246


15.1.2. Изменение приоритета процесса..................................................... 251
15.1.3. Аварийное завершение процесса .................................................... 252

15.2. КОМАНД А ТОР .............................................................................................................. 253

15.3. ИНФОРМАЦИ Я ОБ ИСПОЛЬЗОВАНИИ П АМЯТИ И ДИСКОВОГО


ПРОСТРАНСТВА .................................................................................................. 256

.... . •
15.4. КОМАНД А FUSER ........................................................................................................ 257

........ . ...... ....... -- ................ -- ·---....... -- .... --- . ....... -···---.


� Co.tl'JM,a1111l'

15.5. ПЛАНИРОВЩИКИ ЗАДАНИЙ ................................................................................. 258

15.5.1. Планировщик cron............................................................................ 258


15.5.2. Планировщик anacron...................................................................... 260

ГЛАВА 16. ПОЛЬЗОВАТЕЛИ И ГРУППЫ ................................ 263

16.1. ВВЕДЕНИЕ В УЧЕТНЫЕ ЗАПИСИ ASTRA LINUX ........................................... 264

16,2. ПОЛУЧЕНИЕ ПОЛНОМОЧИЙ ROOT.................................................................... 267

16.3. УПРАВЛЕНИЕ УЧЕТНЫМИ ЗАПИСЯМИ ПОЛЬЗОВАТЕЛЕЙ..................... 273

16.3.1. Создание учетной записи пользователя .......................................... 273


16.3.2. Файлы /etc/passwd и /etc/shadow...................................................... 275
16.3.3. Изменение и удаление учетных записей ....................................... 278
16.3.4. Группы пользователей ...................................................................... 282

16.4. МОДУЛИ РАМ ................................................................................................................ 282

16.4.1. Ограничиваем доступ к системе по IР-адресу ............................... 285


16.4.2. Ограничиваем время входа в систему............................................. 287
16.4.3. Ограничение системных ресурсов с помощью РАМ .................... 288

ГЛАВА 17. НАСТРОЙКА ВЕБ-СЕРВЕРА .................................. 291

17.1. УСТАНОВКА И НАСТР ОЙКА АРАСНЕ ................................................................ 293

17.2. УСТАНОВКА СЕРВЕРА БАЗ ДАННЫХ. СОЗДАНИЕ БАЗЫ ДАННЫХ И


ПОЛЬЗОВАТЕЛЯ .................................................................................................. 295

17.3. УСТАНОВКА И НАСТР ОЙКА РНР. ВЫБОР ВЕР СИИ ....:................................ 296

17.4. ДИРЕКТИВЫ ФАЙЛА КОНФИГУРАЦИИ АРАСНЕ ......................................... 297

17.5. ОПРЕДЕЛЕНИЕ ВИРТУАЛЬНЫХ УЗЛОВ ........................................................... 308

17.6. ПОЛЬЗОВАТЕЛЬСКИЕ КАТАЛОГИ....................................................................... 310

17.7. ОПТИМИЗАЦИЯ ВЕБ-СЕРВЕРА ..............................................................................311

17.8. ЗАЩИТА СЕРВЕРА АРА СНЕ .................................................................................... 312

ГЛАВА 18. ПОДКЛЮЧЕНИЕ SSL-СЕРТИФИКАТА ............. 313

• ..... ...
18.1. ЗАКАЗ СЕРТИФИКАТА .............................................................................................. 314

. --.. --......--...-........--...--......-......--.... -------..--.......--. ·--


,\st,·a l,inux

18.2. НАСТРОЙКА АРА СНЕ ................................................................................................. 316

18.3. НАСТРОЙКА NGINX...............:.................................................................................... 318

18.4. ГЕНЕРИРОВАНИЕ СЕРТИФИКАТА LET'S ENCRYPT..................................... 319

18.4.1. Установка клиента Let's Encrypt ...................................................... 319


18.4.2. Каталог webroot-path/.well-known/acme-challenge/ ........................ 320
18.4.3. Файл конфигурации .......................................................................... 320
18.4.4. Заказ сертификата ............................................................................. 321
18.4.5. Автоматическое обновление сертификата...................................... 321

18.5. НАСТРОЙКА РЕДИРЕКТА ........................................................................................ 322

18.6. ГОТОВИМ ДВИЖОК САЙТА К SSL ....................................................................... 322

18.7. КОНВЕРТИРОВАНИЕ СЕРТИФИКАТОВ РАЗНЫХ ФОРМАТОВ ................ 322

ГЛАВА 19. ВЫБОР И УСТАНОВКА ПАНЕЛИ УПРАВЛЕНИЯ


СЕРВЕРОМ ........................................................................... 325

19.1. КОММЕРЧЕСКИЕ РЕШЕНИЯ .................................................................................. 326

19.1.1. cPanel .................................................................................................. 327


19.1.2. DirectAdmin ....................................................................................... 328
19.1.3. ISPManager ........................................................................................ 329
19.1.4. Plesk.................................................................................................... 331
19.1.5. Рекомендации .................................................................................... 332

19.2. БЕСПЛАТНЫЕ РЕШЕНИЯ ........................................................................................ 333

19.2.1. Webmin ............................................................................................... 333


19.2.2. VestaCP ............................................................................................... 334
19.2.3. ISPConfig ............................................................................................ 335
19.2.4. Ajenti................................................................................................... 336
19.2.5. Рекомендации .................................................................................... 337

19.3. УСТАНОВКА ПАНЕЛИ УПРАВЛЕНИЯ WEBMIN НА СЕРВЕР .................... 338

19.3.1. Знакомство с Webmin ........................................................................ 338


19.3.2. Установка Webmin ............................................................................. 338
19.3.3. Вход в панель управления ................................................................ 339

.....................................................................................

Со.trржа111н•

ГЛАВА 20. ПОВЫШЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ


СЕРВЕРА ............................................................................... 343

20.1. ЧЕК-ЛИСТ ПРОИЗВОД ИТЕЛЬНОСТИ СЕРВЕРА ............................................ 344

20.2. СМЕНА ВЕРСИИ РПР И ЕГО НАСТРОЙКА ........................................................ 347

20.3. НАСТРОЙКА СЖАТИЯ И КЭШИРОВАНИЯ ....................................................... 350

20.3.1. Настройка 11gi11x................................................................................ 351


20.3.2. Настройка Apache............................................................................. 353

20.4. ВКЛЮЧЕНИЕ КЭШИРОВАНИЯ ПА СТОРОНЕ СЕРВЕРА ............................ 356

20.4.1. Настройка Pagespeed........................................................................ 356


20.4.2. Настройка Memcached ..................................................................... 357

20.5. УСКОРЕНИЕ CMS ........................................................................................................ 358

20.5.1. Включение кэша................................................................................ 359


20.5.2. Включаем сжатие и объединение JavaScript и CSS ....................... 360
20.5.3. Оптимизируйте изображения .......................................................... 361
20.5.4. Использование Flаt-категорий и продуктов ................................... 361
20.5.5. Переводим Magento в production-peжим ........................................ 362
20.5.6. Настройка MySQL ............................................................................ 362

ГЛАВА 21. НАСТРОЙКА ПОЧТЫ НА ВЕБ-СЕРВЕРЕ ......... 365

21.1. ПРОВЕРЯЕМ, РАБОТАЕТ ЛИ ПОЧТА ....,.............................................................. 3�7

21.2. ПР ИНЦИП НАСТРОЙКИ ........................................................................................... 367

21.3. УСТАНОВКА И НАСТРОЙКА SSMTP.................................................................... 367

21.4. НАСТРОЙКА РНР ......................................................................................................... 368

21.5. ВОЗМОЖНЫЕ ПРОБ ЛЕМЫ ..................................................................................... 369

ГЛАВА 22. РЕШЕНИЕ ТИПИЧНЫХ ПРОБЛЕМ ................... 371

22.1. САЙТ НЕДОСТУПЕН. ПОИСК ПРИЧИНЫ ......................................................... 372

22.1.1. Закончилось дисковое пространство/свободные иноды ............... 373


22.1.2. Нехватка прочих ресурсов ............................................................... 375
22.1.3. Неправильная конфигурация сервера ............................................. 375

. ......... ·-···-·---·-·-· ..·-····· -------.. -- ..... ·-··-·.......................... ..


\st,·a l,i11ux

22.2. СЦЕН АРИИ АВТОМАТИЧЕСКОГО ПЕРЕЗ АПУСКА СЛУЖБ В СЛУЧАЕ


СБОЯ ......................................................................................................................... 377

22.2.1. Проверка работоспособности веб-сервера..................................... 378


22.2.2. Проверка работоспособности MySQL ............................................ 379
22.2.3. Если падают процессы ..................................................................... 379
22.2.4. Monit: если нет таланта программиста ........................................... 380

22.3. БОРЬБА С СЕССИЯМИ MAGENTO: З АЩИТА ОТ ПЕРЕП ОЛНЕНИЯ


ДИСКА ...................................................................................................................... 381

22.3.1. Решение 1: сценарий ........................................................................ 382


22.3.2. Решение 2: смена файловой системы .............................. :.............. 382

22.4. Р ОТАЦИЯ ЖУРН АЛ ОВ СЕРВЕРА .......................................................................... 383

22.5. ДЕСЯТКА УТИЛИТ ДЛЯ МОНИТОРИНГА СЕРВЕРА .................................... 387

22.5.1. htор-информативная версия top .................................................. 387


22.5.2. atop - продвинутый монитор процессов ........................................ 388
22.5.3. apachetop- мониторинг веб-сервера в реальном времени......... 388
22.5.4. mytop -мониторинг MySQL .......................................................... 389
22.5.5. iotop- мониторинг ввода/вывода .................................................. 390
22.5.6. iftop- мониторинг сетевого интерфейса ...................................... 391
22.5.7.jnettop- еще один монитор сетевого интерфейса ....................... 391
22.5.8. iptraf- мониторинг трафика .......................................................... 392
22.5.9. пgrер-утилита для профессионала ............................................. 393
22.5.10. птоп -швейцарский нож ............................................................ 394

ГЛАВА 23. ПЕРЕЕЗД В ОБЛАКО ................................................. 397

23.1. СКОЛЬКО СТО ИТ ФИЗИЧЕСКИЙ СЕРВЕР ....................................................... 398

23.2. СТОИМОСТЬ С ОДЕРЖАНИЯ ФИЗИЧЕСКОГО СЕРВЕРА ........................... 402

23.3. ВАРИ АНТЫ СНИЖЕНИЯ СТОИМОСТИ ВЛ АДЕНИЯ ................................... 403

23.4. ЧТО ЛУЧШЕ? МУКИ В ЫБОРА ................................................................................ 404

23.5. ВИРТУАЛИЗАЦИЯ ФИЗИЧЕСКОГО СЕРВЕРА ................................................. 405

23.6. Ф ОРМАТ OVF ................................................................................................................. 401

....................................................................................

Введение
.\st,·a l,inu,

Проблема современного мира IТ- в его многообразии выбора. Для выпол­


нения одной и той же задачи часто рынок предлагает множество самых раз­
ных решений. Решения различны по своему функционалу, лицензии, стои­
мости ... И во всем этом нужно разобраться.
Типичный пример - выбор операционной системы для веб-сервера. Что
лучше? FreeBSD, Windows Server или Linux? Вы мучаетесь всю ночь и при­
нимаете решение. Первая- слишком сложная, вторая- хороша, но за нее
нужно платить, третья- самый универсальный вариант. И не очень сложно,
и много документации, и всевозможное ПО. Самое главное- бесплатная.
Собственно, какой выбор вы сделали, понятно еще и по тому, какую книгу
вы сейчас держите в руках.
После выбора в пользу Linux начинается самое интересное. Вы узнаете, что
Linux- это только "собирательное название", а по факту выбирать прихо­
дится между дистрибутивами Linux, которых очень и очень много. С 2001
года, согласно ресурсу Distrowatch, было создано почти 800 дистрибути­
вов ... Понятно, что количество разрабатываемых дистрибутивов постоянно
сокращается-слабые уходят с рынка, но выбор по-прежнему огромен. Не­
сколько сотен дистрибутивов. Только на главной странице Distrowatch есть
список ТОР-100 -он обновляется ежедневно. Следовательно, в мире есть


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

.....................................................................................
Ввс.1с1111с

Самая первая версия Linux, появившаяся в 1991 году, представляла собой


ядро и несколько приложений. В ней запускались компилятор gcc и команд­
ный интерпретатор bash. Поставлялась эта версия Linux в виде двух дискет
- на первой было ядро, на второй - корневая файловая система с прило­
жениями. Загружалась она тоже специфически - сначала нужно было вста­
вить в дисковод первую дискету и дождаться, пока загрузится ядро, затем
был запрос на вставку второй дискеты - с корневой файловой системой.
Первые дистрибутивы появились в 1992 году. Тогда отдельные энтузиасты
или группы энтузиастов выпускали разные дистрибутивы (каждый, есте­
ственно, под своим именем). Грубо говоря, они отличались второй дискетой,
на которой был немного другой набор программ. Далее, с развитием Linux,
необходимые программы уже не помещались на одну дискету, и пришлось
устанавливать Linux на жесткий диск. Появились первые программы уста­
новки.
Чем отличаются разные дистрибутивы, кроме, разумеется, названия?
Во-первых, у каждого дистрибутива своя программа установки (если не
считать дистрибутивов-клонов, которые заимствуют инсталлятор у роди­
тельского дистрибутива, меняя только название дистрибутива). Во-вторых,
у каждого будет свой набор программ - на усмотрение разработчика. По
сути, с 1992 года ничего не поменялось.
Astra Linux - дистрибутив специального назначения на базе ядра Linux,
созданный для комплексной защиты информации и построения защищен­
ных автоматизированных систем. Первая версия увидела свет в 2009 году,
а последняя (на данный момент) версия вышла 15 августа 2022 года.
Дистрибутив обновляется, как правило, 2 раза в год. Основан на Debian 1О,
поэтому если вы до этого работали с DeЬian или UЬuntu, то большая часть
ваших знаний применима и к Astra Linux.


··················································································-818
� .. ®
'

...
ASTRA LI N UX
Глава 1.
Установка Astra Linux на
компьютер
Astra Linux

1.1. Подготовка инсталляционного носителя

Первое, с чего нужно начинать установку системы, - с получения инстал­


ляционного носителя. Поскольку рассматриваемые дистрибутивы Linux
распространяются абсолютно бесплатно, нет никакого смысла загружать
1S0-образы со сторонних ресурсов. В нашем случае 1S0-файл можно полу­
чить с сайта https://astralinux.ru/.
Далее нужно создать сам инсталляционный носитель. В качестве такового
носителя может выступать либо DVD-диск, либо USВ-флешка. Эра DVD­
дисков давно прошла (сейчас даже в продаже их найти сложно), а вот USВ­
флешка, как правило, всегда под рукой.
Для подготовки загрузочного USВ-диска нам нужна флешка размером от
4 Гб и компьютер под управлением Windows. Скачайте приложение Rufus
(https://rufus.ie/) и выполните следующие действия:

1. Если на флешке есть данные, скопируйте их на жесткий диск, поскольку


в процессе создания загрузочного носителя они будут уничтожены.


2. Запустите Rufus.

818-··············--·--··························-·····-··--------------·----·······-·
1ASTRA°LINUX"1 l.1ава !. Ус1а1ювкаАstrа (jnux 11а ко,111ыо1ср

3 . Из списка Устройство выберите флешку. Убедитесь, что вы выбрали пра­


вильную флешку, если подключено несколько устройств .
4. Нажмите кнопку Выбрать для выбора 1SO-образа, который будет запи­
сан на флешку.
5. Остальные параметры оставьте как есть. Схема раздела должна быть
MBR, целевая система - ВIOS или UEFI, файловая система - FAT32,
размер кластера - 4096.
6. Нажмите кнопку СТАРТ.
7. Дождитесь, пока программа запишет 1SO-образ на флешку.
8. Подключите USВ-флешку к целевому компьютеру (на который будет про­
исходить установка Linux).
9. Перезагрузите целевой компьютер.
10.Войдите в ВIOS SETUP (обычно для этого используется клавиша DEL
или F2, но нужная комбинация может отличаться - обратитесь к руко­
водству по материнской плате).
11. В качестве загрузочного устройства выберите созданную флешку.
12.Выйдите из ВIOS SETUP с сохранением изменений.
,1 Rufus 3.8.1580 IA::lrtaЫe) х

Свойства диска --------


�-�����---�
NO.lABEL �; {4fб}

�-�-1.�-��-��� '" """'"'".,,_,, ____


orel-currentiю

Посто�.нный р.,зУер раз.дела

л Сq>ыть расширенные свойства ;1_о1оса


0 (П>!СОIС. USB AИCkOII

Рис. 1.1. Запись 1S0 образа с Linux на флешку

Размер м.ктера Если вы все сделали правильно, то увидите


i-4096 ба\Ь
начальный экран загрузчика Linux.
(по ��Цi-НИIО; '-:-,: !

" Показаrь расш�ренные nараме1ры формат11роаанмя

•.
Исnо.-,ьэова11ие образ.а: ore!-current.iю

- - -- - - - -- - -. - - - - -- - -. - - -... -... - -... -.. - - -... -.. - - -... -.. -.... -... -... - - -. - - -... - ..
Astra Linux @мшшх]

1.2. Принцип установки Linux


Самое главное при установке Linux - выполнить разметку жесткого диска
и не забыть установленный пароль, указанный при установке. Неправиль­
ная разметка жесткого диска означает, что в процессе работы с системой
ее придется изменить, а это сделать не всегда просто, особенно если сер­
вер уже работает. Ну и пароль пользователя желательно тоже не забывать,
иначе придется попотеть, чтобы взломать собственную же систему. А воз­
можность такого взлома зависит, прежде всего, от настроек дистрибутива
по умолчанию - в одних дистрибутивах все будет хорошо, а в других у
вас ничего не получится. Хотя вряд ли можно назвать хорошей возможность
взлома локального сервера (к которому у вас есть физический доступ) - так
что все относительно.
Современные дистрибутивы (и Astra не исключение) обладают достаточно
удобным инсталлятором, поэтому не придется обладать особыми техниче­
скими навыками, чтобы установить систему. Установка Linux не сложнее
установки Windows.

1.3. Загрузка с инсталляционного носителя


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

Операционная система
общего назначения
Релиз •Орёл•

загрузчика
Astra Linux

... •
............................................................... . . . ... ........... .
l.1.111a 1. )c1a11oиi-a.\st1·a l.i1111x ш1 �-0,1111,юн�р

Далее все иллюстрации будут соответствовать графическому инсталлятору,


который подойдет большинству пользователей.
Сразу после запуска инсталлятора нужно прочесть лицензионное соглаше­
ние и нажать кнопку Продолжить.

Примечание. Дистрибутив Astra Linux основан на дистрибутиве


Deblan и использует такой же инсталлятор. В некоторых момен­
тах он удобнее, чем инсталлятор Ubuntu, в некоторых - нет.

После нажатия кнопки Продолжить инсталлятор предложит выбрать рас­


кладку клавиатуры. Вы также сможете выбрать комбинацию клавиш для


переключения раскладки, что очень удобно (рис. 1.3).

��r���,ы8J
Операционная система
общего наэначения
Реnи:,: �орiл»

Н•стро11к• кnа1матур11,1

вам ну•но укаэать способ переключения кnаеиатурw ме•ду национальной расклаАкоll и стандартной латинскоil
раскnаДl(ой.

наи6оnее эргономичнь11-1 сnосо6ом счита1Оtс11 npaвait мааиаа AJt или Сарв Lock{в nослеАНl!М случае дnJI перекntочения
ие:•дУ �аrnавнwми и строчнlоМ'! 6уква№� мсnоль:ауетсм комбинация Shlfl:+Capslotk).�t о,�на популярная ком6ин11ци111:АJt
+Shlft; заметим, ч-то а атом случае комбинация Att+Shlftnoтepяer свое nрив1о1Чное действие в Еmасаи АРУГМХ,
исnоnьзу�х el, nporpa14o4ix

Нi! на есех клавиатура:.- есть перечисnеннwе 1(11ааи•и.


O'loco6 перекп,очення не.жду н.ационат.ной • пsтнн,коН pacкnan1u.1i1:

nравьr.1 All{AJtGrJ
npaвltlЙ Control
npael>ll Shin
правая 1<nавиwа с логотипом
клави111а с меню
All1-Shifl

1 Control1-AII

[ Alt1-Ca.ps Lock
i левый Соntrоl1-левый Snln
\левwй AII . -�-------------

Рис. 1.3. Выбор раскладки клавиатуры

1.4. Разметка диска


1.4.1. Общие сведения о разметке диска
Один из самых важных моментов при установке любого дистрибутива Linux

....
- это разметка жесткого диска. Если вы в процессе установки, например,

,
забудете выбрать какой-то пакет - его очень просто установить после уста­
новки. Но вот если разметка диска будет выполнена неправильно, то испра-

_ ----.. - - . -. ----· .. -... -------------- ---- ----- ------------- -- - --- ------- _ _._ - - . -
Astra Linux 1ASTRд'"L1Nux·1

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


переустанавливать всю систему.
Linux использует свою файловую систему (некоторые дистрибутивы исполь­
зуют ext4, некоторые xfs, о файловой системе мы поговорим более подробно
в следующих главах), поэтому ее нельзя установить в уже имеющиеся на
жестком диске разделы. Если вы устанавливаете Linux не на новый жесткий
диск , тогда желательно удалить все разделы сторонних операционных
систем. Не думаю, что на сервере будут сожительствовать две операцион­
ных системы. Понятно, что это не нужно делать на домашнем компьютере,
где, скорее всего, Linux придется сосуществовать с Windows.
Можно, конечно, положиться на автоматическую разметку инсталлятора, но
она не всегда правильна. Даже если вы устанавливаете Linux на новый жест­
кий диск, то инсталлятор в большинстве случаев создаст два раздела - один
под корневую файловую систему, а другой - для подкачки. Для домашнего
использования такая схема вполне имеет право на жизнь. Для сервера - нет.
Да и серверы бывают разными.
Если мы создаем FТР-сервер (он же сервер хостер-провайдера) и основное
его назначение - хранение данных (например, сайтов) пользователей, то
для каталога /home нужно выделить львиную долю дискового пространства.
Например, если у вас жесткий диск размером 1 Тб, то для самой системы
более чем достаточно 15 Гб дискового пространства (всего 1.5% от емкости
жесткого диска), а для каталога /home нужно выделить оставшиеся почти
98% (почти - потому что понадобится еще место под раздел подкачки).
Если же у нас корпоративный почтовик или сервер баз данных, или эле­
ментарно прокси-сервер (или же корпоративный сервер, который сочетает
в себе все эти функции), тогда основное дисковое пространство нужно вы­
делить под точку монтирования /var. Именно в каталоге /var хранятся файлы
базы данных, кэш прокси-сервера Squid, почтовые ящики и т.д.
Недостаток автоматической разметки диска в том, что она не предполагает
установку назначения компьютера. Если можно было бы выбрать назначе­
ние компьютера, а уже потом выполнять саму разметку, все было бы совсем
иначе.

Примечание для домашних пользователей. Если вы про­


изводите установку Linux на компьютер с уже установленной
Windows, обязательно выполните резервное копирование всех


важных данных! Иначе знакомство с Linux начнется для вас с

-----------------------------------------------------------------------------------·
1 _ �;ша 1. Ус, ановка Л!iitra (jnux на ко,111ыо1 ер

потери данных. Linux нельзя установить на имеющийся раздел.


Нужно сначала уменьшить размер этого раздела, а затем на
освободившемся месте создать Linuх-разделы. Для изменения
размера раздела рекомендуется использовать сторонние прило­
жения вроде Acronis, а не штатный инсталлятор Linux - чтобы
не было больно за потерянные данные.

1.4.2. Введение в точку монтирования

Точка монтирования - это каталог корневой системы, через который


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

• / - корневая файловая система, именно к подкаталогам этой файловой


системы и осуществляется монтирование.
• /home - здесь хранятся пользовательские файлы.
• /mnt - обычно этот каталог используется для монтирования с целью до­
ступа к данным, находящимся на другом разделе.
• /usr - сюда обычно устанавливается программное обеспечение (за ис­
ключением системного набора программ, который устанавливается в ка­
талоги /Ьin и /sЬin).
• /tmp - каталог для временных файлов.
• /var - здесь хранится переменная информация. К такой относят базы
данных, почту, журналы и т.д.

Подробно о назначении каталогов и монтировании мы поговорим позднее.


А пока вам нужно знать следующее. Можно установить Linux на один боль­
шой раздел. Скажем, у вас есть жесткий диск (имя устройства /dev/sda), вы
на нем создаете всего два раздела - /dev/sdal и /dev/sda2. Первый будет
занимать большую часть дискового пространства, а второй будет размером

. ..
в несколько гигабайтов и будет использоваться для подкачки (подробнее см.
след. раздел) .


. - --- - ----- ------- - ----- - - - - ---. - - - - - -- -... -. - -- ... --. ---.. -- ---- - .. ---- .--.----
Astra Linux

В этом случае все эти каталоги (/home, /usr, /var) будут находиться на одном
разделе/диске. С одной стороны ничего страшного, но правильнее будет раз­
местить хотя бы каталоги /home и /var на отдельных разделах, а еще лучше
- на отдельных дисках или же организовать RАID-массив. Эти каталоги
содержат самое ценное - пользовательские данные, поэтому если они будут
все находиться на одном жестком диске, и он выйдет со строя, приятного
будет мало.
Идеально иметь три жестких диска. На первом жестком диске будет сама
система и подкачка, на втором - пользовательские данные (каталог /home),
на третьем - каталог /var. Однако, учитывая стоимость ж(,стких дисков, та­
кое расточительство можно себе позволить, только если есть прямая необ­
ходимость. Если пользователи не будут регистрироваться на сервере и тем
более хранить на нем данные, то нет смысла отводить отдельный жесткий
диск под каталог /home. Пусть он находится физически на том же диске, что
и сама операционная система.
А вот каталог /var желательно разместить на отдельном жестком диске. Если
диск всего один, то хотя бы на отдельном разделе.
Даже если жесткий диск один, все равно имеет смысл создавать отдельные
разделы под системные точки монтирования. Ведь это позволяет на каж­
дом разделе использовать свою файловую систему. Для корневой файловой
системы, например, можно использовать файловую систему ReiserFS.
Изюминка этой файловой системы в том, что в одном блоке может быть
несколько небольших файлов. Например, если размер блока равен 4 Кб, то в
нем может поместиться 4 файла по 1 Кб или 2 файла по 2 Кб. Такая файловая
система идеально подходит для корневой /, где много файлов конфигурации
- все они текстовые и многие из них имеют небольшой размер. Так диско­
вое пространство будет расходоваться экономнее.
А вот для каталога /var, где нужна высокая производительность, лучше ис­
пользовать XFS. Это высокопроизводительная файловая система, рассчи­
танная на большие носители и большие размеры файлов. В общем, если на­
думаете развернуть Oracle-cepвep - это правильный выбор.
Все сказанное ранее - хорошо для сервера. Для домашнего компьютера или
для рабочей станции можно использовать два раздела - один для корневой
файловой системы (которая будет содержать и данные, и программы), а вто­
рой - для подкачки.


............................ ····-......···-······ .. -· ...... -................. --······
Глава 1. Ус,ановка Лstra Linux на ком11ыо1ср

1.4.3. Подкачка

В отличие от Windows, Linux использует не файлы, ,а разделы подкачки. В


принципе, если размера раздела подкачки будет недостаточно, то можно соз­
дать и файл подкачки, но правильнее создавать именно раздел - так произ­
водительность будет выше.
Теперь о размере раздела подкачки. Если оперативной памяти достаточно
(например, 8 Гб или больше), тогда раздела подкачки в 8 Гб будет вполне
достаточно (размер раздела подкачки равен размеру ОЗУ).
Если оперативной памяти мало, например, 4 Гб или меньше, тогда размер
раздела подкачки должен в 2 раза превышать размер оперативной памя­
ти, то есть 8 Гб будет достаточно. Увеличивать раздел подкачки больше
не имеет смысла - ведь производительность от этого выше не станет.
Назначение раздела подкачки - продолжение работы системы любой це­
ной. Когда заканчивается оперативная память, сервер должен продолжить
работу, хоть и за счет потери производительности (жестким дискам далеко
до производительности оперативной памяти). При небольшом объеме ОЗУ
лучший тюнинг производительности -:- дополнительный модуль опера­
тивной памяти.
Когда оперативной памяти много, иногда возникает соблазн вообще отка­
заться от раздела подкачки. Этого не нужно делать. Если оперативной па­
мяти не хватит, возможны неприятные ситуации. При современных объемах
жесткого диска потеря 8-16 Гб дискового пространства (под раздел подкач­
ки) никак не отразится на работе всего сервера. Конечно, как уже было от­
мечено, в процессе работы системы можно создать и файл подкачки, но его
производительность, как показывает практика, ниже, чем производитель­
ность раздела подкачки.
· На домашнем компьютере, особенно если у вас SSD небольшого размера
(128-256 Гб) и достаточно оперативной памяти (скажем, 16 Гб) - такие
конфигурации не редкость на современных ноутбуках - можно вообще от­
казаться от создания раздела подкачки. Если памяти будет недостаточно -
создать файл подкачки. За счет размещения на SSD он будет работать от­
носительно быстро. Это лучше, чем выделить, например, 8 Гб для раздела
подкачки, а он вообще не будет использоваться.


. - ... - ... - - -. - - ... - -.. - -.... -.. - ........ - -.. -- ... - ...- -....... -.... - -.. - - ... - .... - ...
Astra Linux

1.4.4. Как правильно разбивать жесткий диск?


Правильная разметка жесткого диска выглядит так:

• Для самой системы (точка монтирования!) будет достаточно всего 15 Гб


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

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


диска уже в процессе работы сервера, а это чревато только одним -
простоем. Потом вам придется выбирать - или не спать какую-то ночь, или
же получать недовольные звонки от пользователей и/или начальства - если
придется перенастраивать сервер в рабочее время.
Установщик в Astra Linux такой же, как в Debian. DeЬian неплохой
дистрибутив, но у него самый неудобный для разметки диска установщик.
Наверное, над ним работали профессионалы по самым неудобным GUI. И у
них это получилось!
Операционная система
общего назначения
Релм3 �орiл»

Р••м•т�са АМС1(08

Г.,оrра..,.а усrанов1ем моw.ет провести вас череэ процесс разметки диска fnpeдnaraя разн1о1е стандартные схемы} на
раздеnw, либо это мrц�но сделать вручную. Если в�.t�рать исnоль"Jование инструмента управления ра:,меткой, у вас всё
равно будет воэмо.нос.ть nоэ•е посмотреть и подправить ре1у11ьтат.

Если еw6рать использование инструнента упр.-впеtнtя разметкой асего диска, то p.anee вас попросят укаэан, нуанwй
ДltCIC.
Нетод разнеткн:

i Авто • использовать весь диск и настроить LVM


Авто - исnоnьзоеать весь дис.к с 1а1,ктньм nрео6раэование"4 на LVM
Вручну1О

1 Верну,ьс, 11 Г\)одо,mпь 1

Рис. 1.4. РtпМетка в Astra Linux

------------------------------------------------------------------------------------·

(ASTRд*LINUX"J l .1ава 1. Ус I а11овю1 Лst,·a L,iпux ш1 �-о,шыо I ер

Хорошо, если вы настраиваете персональный компьютер, на котором не бу­


дет никаких других операционных систем. Тогда можно выбрать вариант
Авто- использовать весь диск и не заморачиваться (рис. 1.4).
Операционная систе"'а
общего наэ1-1ачения
Релмз "'Opin"

Р•••т•• рско,
перед ванн сntКок н.Jсrроеннш раздело• 11 6'Jt точек нонrиро�,ання, 8'16ернrе раздел, что6'1 из№ннть его н.ктрсilкн
(тнп failnostЯI сист•� точку нонтнро•ання н тек д.пее), свDООдное несто, чro6JJ создать нoвl,,tl разд.ел. мн
ycrpoicrso, что6и соJ:дато на нlи ноау• таблицу р11�дни1•.

Автоматическая раэ1о1етка
настроить тона iSCSI

Отменить иэненения разделов


Закончить paэi-teтky н записать изненения на диск

Вернуться I j �одоnаить 1
�. Снинок экрана J \ Слравка J J Слравка

Рис. 1.5. Выберите жесткий диск и нажмите кнопку "Продолжить"

В противном случае выбираем Вручную. Далее выбираем ваш жесткий диск


и нажимаем кнопку Продолжить (рис. 1.5).
Операционная система
общего назначения
Реnи2 •Орiл»

Р11метк1 ,utCKOI

81.1 еw)ралн разМt!тку вcer(I АИСJ(а, Есnн вw сейчас np0A0ПJiHTe, то 6yAet создана нова,� таблица раздеnов и sce
су•еству._ие раздалw будут уничто•енw.

�имечание; nрн •еnаинн вw сно•ете от№нить эти изменения.


СОЗАаТь нDBfto nyaytll таблмцу разяепов на :1roN устройстее?
; О Нет

;@�

•. ....
Рис. 1. 6. Новая таблица разделов

- -. -- ... -- . ·- - .. -- --·- - ... - ...-- . ·-- -· ---.. -- .. - -- . -- - ... - -· ---..-- -· - --..-- ... -
Astra Linux (ASTRд*LINUX"J

Создайте новую таблицу разделов (рис. 1.6). Затем выделите свободное


место (как показано на рис. 1.7) и снова нажмите кнопку Продолжить.
* Операционная система

(j�!��!Ш!� общего назначения


Релиз -Орёл»

Ра,мепа AMCIC'Olt

Перед важ список настроеннШ разделов t1t 1,1к rочек нонтировання. &юернт• раздел, что6w нзненнr;. ero настройки
(тип ;аНЛовоН снсrе� точку №нтировэния и так дал*е), сео6одное несто, что6w создать новui раздел, нпн
ycrpoilcrвo. чrо6&1 соэдато на нlн новую rа6пнцу рааделов,

Автоматическая разметка
настройка программного RAIO
насrроi1ка менеджера логических тонов tLVM)
настроить за1,14тное преобразование дпя тонов
настроить тома iSCSI

! v SCSIЗЗ (0,0,0) {sda). З2.2 GB VМware, VМware Virtual s

Отменить изменения разделов


Закончить разметку и записан, мэменения на диск

Рис. 1. 7. Выберите свободное место и нажмите кнопку "Продолжить"


Операционная система
общего назначения
Релм2 осОрёл»

Р•аметка амс-коа

что делаrо со сsо6одн/JН прасrрансrвон:

Автоматически разметить свобоАное место


Поканть rеометрюо дмска (CIНIS)

1 Снино, экрана I j р к
Сn ае а il Справка

Рис. 1.8. Меню Разметка диска

В появившемся меню (рис. 1.8) выберите команду Создать новый раздел


и снова нажмите сами знаете какую кнопку. Нужно будет ввести размер

----··--··························-·······································-·········

@тнlwтх] Глава 1. Ус1а11овка Astra Linux на ком11ьютср

раздела (рис. 1.9), выбрать его тип (первичный/логический), расположение


(начало/конец), далее появится возможность установить другие параметры
раздела (рис. 1.1О). Вы можете изменить точку монтирования, параметры
монтирования, метку и т.д. Параметр Использовать как позволяет изме­
нить файловую систему раздела.
Операционная система
общего назначения
Релиз "Qpёn,-

Ра:tмеп:а АМСКО&

Мilксинапьн"1 размер дпя этого раздеnа равен 32.2GB.

на замет�,:у: чтобы задать максинальнlаМ размер но.-.но ввесп1 ·max·. а та1011е но•но задавать процентное значение
(наnр14нер, "20��•}, которое считается от максннаnьноrо размера.
Нов� разНt!р р;вдма

Зoj2GB

Вернуться ) j �одо/18ить ]

Рис. 1.9. Размер создавае.мого раздела

Операционная систеJ.Аа
общего назначения
Рели2 �орёл"

Вы кзменяете раздел kl на устро�lстве SCSIЭЗ {0,0,0) (sda}. На этан разделе не наНдено файловых сис:тен.
НdстрсНкн раздма:

, Точ"а монтированиl'I
' Гlаранетр�1 нонтирован11я detau!1s
Метка отсутствует
Зарезервированные 6лок11. 5'¼
06wчное нсnоnьзованн@. СТЗНАЗРТ
Метка ·эагрvэочн�.IИ" '"'"
УАаnить раздел
настроИка раэАеnа закончена

f Снимок экрана J сnраека · ( Cnpaaic:a

•.. . ...
Рис. 1.10. Настройка раздела

. .............. . . ......... ...... ... ................ ............... .. .... .. ....


Astra Linux (ASTRд*LINUX"]

Изменение происходит путем выделения нужного параметра и нажатия


кнопки Продолжить. Когда все будет готово, используйте команду
Настройка раздела закончена. Аналогичным образом создайте раздел
подкачки (рис. 1.11).

Операцl'IОнная система
общего назначения
Роnмэ «Opi.n•

Ра1мtтк1 AMCKOI

[рннцнп приненаниR зтоrо раздепв:

i J.урнаnируемая ♦айловая снстена Ext4

; J.урналируеная ♦айловая сметена ЕхtЗ


: Файловая сметена Ех12
! lурналируеная ♦аИЛовая система ьtrfs
lурнаnируеная ♦айловая система JFS
; lурналируемая ♦айловая система XFS
i ФаWlовая система FAT16
1 ФаКЛовая система FAT32

] ♦иэичесм:ий том w,я за••нного преобразования


] ♦иэический том wн:1 AAID
· ♦иэический там АПЯ LVM

["'"""""" . ..
f Снинок экрана !� Crlpaвl(a i ! Справка

Рис. 1.11. Выбор файловой системы для раздела подкачки


Операционная система
общего назначения
Релиз •Орёn»

Рааметка AMCKOI

Перед ванн список нас-rроеннш разделов и их точеl( нонтнровання. 8"'16ернте рвздеп, чrо6" нзненнть ero настройки
(тип файповой снстены, точку нонтнроsання н так далее), свободно� несто, чтоfiи создато нos.-i раэдм, нпи
устройство, чтоб" создать на нён нову111 таблицу рв3делов.

Автоматическая раэнетка
настройка проrраннного RAID
Настройка ненед..ера логических тонов tLVM)
настроить эа"итное преобразование дпя тонов
настроить тона iSCSI

v SCSIЗЗ (О,О,О) isda) - 32.2 GBVMware, vмware VirtuaJ S


•1 первичн. ао.2 GB f ext.4

отменить изненения разделов


Закончить разметку и записать мзненения на диск

Рис. 1.12. Готовая разметка

....................................................................................

1ASTRд"'LtNux·1 l.1ава 1. �c1:1111шкa:\stra [,inux ш1 кщ1111,ю1ср

Когда все будет готово, используйте команду Закончить разметку и запи­


сать изменения на диск. На следующем экране нужно согласиться с форма­
тированием разделов (рис. 1.13). Средство разметки диска очень неудобное,
но и к нему можно привыкнуть.

Операционная система
общего назначения
Релиз "Qpin"

P88N8TK8 AJtCK08
- ----.
'
Еслк в1�,1 npoAOЛI.Иre, то м:,нененмя, перечисленнwе HQe, бrАУТ заnмсанw на д.нс.ки. �и .11е вы мом:ете сделать все
ИIМ11Н8НИЯ sручну�о.
l
1
на этих ус:тройствах измененw табпмцw разделов:
SC5133 (0.0,О) (sda)

следуl08,Ие ра:аделы 6удут от♦орнатированы:


раздел f1 на устройстве s.csiзэ (0,О.О) (вdа) как ext-4
раздел 15 на устройстве SC�33 (0,0,0) (sda) как nодк
запнсать нзнененнR на диск?

j �одопаить

Рис. 1.13. Подтвер:ждаем изменения

1.5. Установка пароля администратора

Раньше при установке Linux предлагалось создать пароль пользователя root


- пользователя с максимальными правами и создать обычного пользова­
теля. Сейчас же дистрибутивы отошли от использования пользователя root
по соображениям безопасности, а эта учетная запись часто оказывается
заблокированной. Делается это по понятной причине - имя root знают
все, поэтому злоумышленнику нужно подобрать только один параметр
- пароль, а если он не будет знать имя пользователя, то придется угадывать
еще и логин, что усложняет задачу.
Современные дистрибутивы предлагают создать так называемого админи­
стративного пользователя - пользователя, которому разрешено выполнять
команду sudo для получения максимальных полномочий. Это и безопасно, и
удобно для самого пользователя - ему нужно помнить один пароль, а не два


(пщrьзователя root и обычного пользователя).

.....................................................................................
Astra Linux

При создании административного пользователя (рис. 1.14) вы задаете имя


пользователя и его пароль. Astra Linux не позволяет использовать пустые
пароли - пароль должен быть минимум 8 символов и содержать хотя бы
буквы с цифрами.

Операционная система
общего назначения
Релиз с.:Орiл-.

.
ф
Настроlк1 учlтнw:с: а1nмс1А пол-.1011тtn1А II n1poneй
'

Неправит,н.М пароль
61,n введен пустой naponь или naponь менее • си><1оnов, что заnре,ено,Введите корректнь&1 naponь,

Хоро■ий пароль nреАставnяет-- из себя смесь букв, ци♦р и знаков nреnинания, и Аоn11ен nериоАически меняться.
введите пароль дпя нового адниннстратора:

!))оверка правильности ввода осу1,естмяется nутём повторного ввода пароля и сравнения результатов.
Введите пароль е•ё раз:

Вернуться i/ �одола.ить !

Рис. 1.14. Простые пароли в Astra Linux использовать нельзя

1.6. Параметры программного обеспечения

В Astra Linux позволяют выбрать наборы программного обеспечения (рис.


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

............ .. .. . .... ......... ......................------···--....--·-----·----·-··



Глава 1. Установка Astra Linux на компьютер

Операционная система
общего назначения
Релмз с,Qрёл»

Bw6op программного о6ес.nечtни"

В даннl,М �,юиент установлена только основа систеМI.I. Ис:хо,ця иэ ва11их потребностей, можете •вьt�рать оцин и боnее иэ
готовы\ на6оров программного обеспечения.
В.Юериrе у<.rанавпнваеное праrранинае о6есп�ченне

� Базовые средства
� Рабочщ� стоп Fly
�! Приnо•ения дnя работы с сенсорн�.1м экраном
� Иrpt.1
Et] Средства работы в Интернет
� О♦исные средства
i [] СУБЦ
О Средства удаnенноrо доступа SSl-t
'[:::] Средства Виртуат�эаци11
!О Средства разработки 11 отла,цки
�! Средства Мультимедиа

[ Г\рОАОЛJIНПЬ 1

Рис. 1.15. Доступные по умолчанию наборы ПО

1.7. Установка загрузчика

В Astra Linux нужно еще выбрать, куда устанавливать загрузчик Linux.


Обычно его нужно установить в /dev/sda. Но если у вас есть уже другая
операционная система и вы хотите загружать Linux не с помощью родного
загрузчика GRUB2, а посредством стороннего загрузчика, тогда нужно или
установить загрузчик в другое место, или же не устанавливать его вовсе.
По окончании установки компьютер перезагрузится, и у пользователя
появится возможность войти в систему. В следующей главе мы поговорим о
входе в систему и о завершении работы .

•.
.............................................. ... ............... .... .. .. .. . . . . ..
Astra Linux

Операционная система
общего назначения
Ре.nиэ 8\Орёл»
Установка смст•мноrо ааrруsчика �RUB на •lсткиll диск

"'ИIIЛО epel-tR научить тоnько что устанооnенную систе"4у эаrруматься.- ЦлR ного на загрузочное устройство будет
установлен систежьlЙ загруэчик GAUB, Обычно он устанавливается в главную загрузочную запись {МВА, Master Вооt
Aecord) nepвoro 111.есткоrо Аиска. r;,.,и 1:елании моано установить GAUB в любое д,ругое нес то на диске, либо на другой
диск, либо вао6•е на дискету.
Устройсп10 д,пR уt;тановкн сш;rенноrо загрузчика:

Указать устроikтво вручную

вернуться ! ! r;,.,оАоnаить

Рис. 1.16. Выбор устройства для установки загрузчика

... •
. . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . .. -. . . .... -....... - -... - ..... -. - - ............... .
Глава 2.

Вход в систему
Astra l,inux

В этой небольшой главе мы рассмотрим вход в систему, основные элемен­


ты графического интерфейса, а также правильное завершение работы в
системе.

2.1. Вход в консоль и переключение между ними


Вход в систему в Linux ничем не отличается от входа в систему в любой опе­
рационной системе. Нужно ввести имя пользователя и пароль. Вход может
быть как в текстовом, так и в графическом режиме. На сервере графический
интерфейс, как правило, не устанавливается, чтобы не расходовать драго­
ценные системные ресурсы на никому не нужный графический интерфейс.
На рис. 2.1 изображен вход в Astra Linux. На рис. 2.2 изображен графический
вход в Astra Linux.

-- Рис. 2.1. Вход в систему (Astra Linux)

- --- - --- - - -- - -- -- - - -- - - -- -- - -- -- -- - - - - - - - - - - - - -- - - -.. - -- .. --- - . -- - - -- - - - -- - . --- - ..


Глава 2. Вхо11 в сисrем�

Рис. 2.2. Графический вход (Astra Linux)

Давайте разберемся, что есть что. Самая первая строка (рис. 2.1) - название
и версия дистрибутива. Далее выводится имя терминала, на котором вы
сейчас находитесь (ttyl). Некоторые другие дистрибутивы еще сообщают
версию ядра и архитектуру системы. Здесь разработчики посчитали лишним
вывод этой информации.
Далее нужно ввести логин (в нашем случае root) и пароль. Обратите внима­
ние, что пароль не отображается при вводе, не отображаются даже звездоч­
ки. В графическом режиме вместо введенных символов могут отображаться
звездочки или точки.
После входа в систему вы увидите или приглашение_ командной строки, или
графический интерфейс. В первом случае приглашение будет иметь вид #
(если вы вошли как root) или$ (если вы вошли как обычный пользователь).
Перед приглашением командной строки выводится время и дата последнего
входа в систему, а также терминал, на котором был осуществлен вход (в
нашем случае - ttyl). Значение :О означает, что последний вход был в гра­

•.
фическом режиме.

. - - ... - ..... - . - .. ·- - ....... - -.. - - -- .......... - - . - . - . -- - -..... -- - - --- -- - - - - - . - . .. ...


Astra Linux 1ASТRд*LINUX"J

Строка You have mail означает, что у вас есть новые сообщения электронной
почты. Для их чтения нужно или использовать какую-то почтовую програм­
му, настроенную на чтение системных сообщений e-mail, или же команду
mail.
Для переключения между терминалами используются комбинации клавиш
Alt+Fl ... Alt+F6. Комбинация клавиш Alt+F7 переключит вас из консоли в
графический режим, если система Х11 запущена.
Находясь в графическом режиме, вы можете нажать комбинацию клавиш
Ctrl+Alt +Fn, где п - это число от 1 до 6 для переключения на нужную вам
консоль. Функционал экрана входа в систему отличается в зависимости от
дистрибутива - здесь все на усмотрение разработчиков.

Рис. 2.3. Выбор типа сеанса (Astra Linux)

Рис. 2.4. Меню входа в систему (Astra Linux)

В Astra Linux можно выбрать тип сессии (рис. 2.3), а также открыть меню
(рис. 2.4), в котором будут полезные команды, такие как переключение на

.................................................................. , ................ .
Г:�ава 2. Вхон в сие, СМ)

консоль (на случай, если вы не знаете ничего о комбинации Ctrl+Alt+Fl),


вызов экранной клавиатуры, перезапуск Х-сервера и команда выключения
системы.

2.2. Основные элементы графического


интерфейса

Вы вошли в систему, но что делать дальше? Для бывшего Windоws­


пользователя слегка непривычно. Далее мы рассмотрим основные элементы
интерфейса пользователя Astra Linux.
Интерфейс Astra Linux пыт ались максимально заточить под Windows.
Панель задач снизу, меню в стиле Пуск, только открывается окно не кнопкой
с логотипом Windows, а кнопкой с лога Astra (рис. 2.5). Бывшие Windоws­
пользователи оценят такое решение - для них такой интерфейс будет при­
вычнее интерфейса UЬuntu.·

Рис. 2.5. Рабочий стол и глав11ое ме11ю Astra Linux

Рассмотрим содержимое панели задач. Первая кнопка открывает главное


меню, изображенное на рис. 2.6. Вторая кнопка используется для переклю­
чения между окнами - когда вам нужно быстро найти запущенное окно
(рис. 2.6).
Лstra l,inux

Рис. 2.6. Переключение Аtежду окнами

► Оо<>б'"�"""'
,., � i;o..-��.,,��
-..(§§ ,,

Рис. 2. 7. Файловый менеджер

...
Третья кнопка открывает файловый менеджер (рис. 2.7). Далее следует
переключатель рабочих столов. Каждый рабочий стол - это отдельное про­


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

. ----------------------.. ----------- -------------------------------- -- - --- . ---- ...,


Глава 2. Вхо;1 в с11сIсм�

позволяют эффективно организовать рабочее пространство, когда запущен­


ных окон много. Для перемещения уже открытого окна на другой рабочий
стол щелкните правой кнопкой мыши по заголовку окна и выберите меню
Рабочий стол, далее выберите номер рабочего стола (рис. 2.8).

!Юеид V rn @,

► Видео
'8 Документы
• Загрузки
"е- Изоб
ражени
я
с. Музыка,
•• Общедоступные
Рабочие СiОЛЫ

'р Му3Ыl(а t:J Рабочий стол t


,111 Общедоступные ·1; Шаблоны
Рабочие СТОЛЫ
� Рабочий стол 1
16 Шаблоны
rSJ Рабочий стол 1

• Ко рзина
> &;!, Наиопи,ели
Файловая система

Рис. 2.8. Пере.11tещение окна на другой рабочий стол

Снизу справа отображаются системные значки - менеджера сети, средства


проверки обновлений, менеджера внешних устройств хранения, регулятора
громкости, переключателя раскладки клавиатуры и средства вывода даты и
времени. Все эти значки - интерактивные, то есть вы можете щелкнуть по
значку менеджера сети, чтобы отключиться от текущего соединения. Если
щелкнуть по нему правой кнопкой мыши, появится команда Изменить
соединения - для управления соединениями. Нам понравилась команда
Включить поддержку сети, которая включает/выключает поддержку сети.
Она может понадобиться, если Wi-Fi соединение неожиданно "отвалится"
- не перезагружать же компьютер из-за этого?
Щелчок по регулятору громкости открывает микшер громкости, позволяю­
щий регулировать громкость для динамиков, микрофонов, и отдельный ре­
гулятор предусмотрен для звуков уведомлений (рис. 2.9).

•.
-.. - - -.. - -.. - - .. - - ... - - .. - - -. - - -.. - -... - -.. - - -. - - - .. - - .. - - - .. - - .. -.- -.... - .. - ..... ...
Astra Linux

-�
� Q�,,..,,.,_,..,., .. /10•,_..,_,

�,�==- =.::� ,._�....-


u,,,,, -�

.... ~·-
l'Q_,


Р(1...-;

�=�
,�, ,п,,,о,;,

CТSAl)II """'"

1
j 1
Рис. 2. 9. Регулятор громкости

Много полезных утилит вы найдете в программных группах Утилиты и


Системные. Так, здесь вы найдете:

• Терминал Fly - средство для ввода команд Linux.


• Политика безопасности - здесь можно добавлять других пользовате­
лей Linux и изменять пароль уже имеющихся.
• Менеджеров пакетов Synaptic - используется для установки программ­
ного устройства. Довольно удобный менеджер, и жаль, что в последних
версиях Ubuntu от него отказались.
• Менеджер устройств - позволяет просматривать имеющиеся в системе
устройства.
• Редактор разделов Gparted - графический редактор разметки, который
может использоваться для разметки жесткого диска, например, при под­
ключении нового жесткого диска.
• Запись ISO образа на USB носитель - название этой утилиты вполне
описывает ее назначение.
• Менеджер файлов МС - запускает двухпанельный менеджер файлов
Midnight Commander, очень популярный у Linuх-пользователей.
ГJ1ава 2. Вход в сие I ему

Команда Завершение работы открывает меню, в котором будут различные


варианты завершения работы - выключение, перезагрузка, сон, блокиров­
ка, выход, гибернация. Последний режим позволяет сохранить состояние
компьютера. При следующей загрузке состояние компьютера будет восста­
новлено. Режим гибернации похож на режим сна, но поскольку состояние
оперативной памяти будет сохранено на жестком диске, вы можете выклю­
чить питание компьютера, что никак не повлияет на состояние системы, в
отличие от режима сна. Не все компьютеры поддерживают режим гибер­
нации, также для перехода в этот режим нужно, чтобы на жестком диске
было достаточно свободного места - ведь нужно сохранить состояние опе­
ративной памяти. Если в вашем компьютере установлено 8 Гб оперативной
памяти, то на жестком диске должно быть как минимум 8 Гб свободного
пространства для перехода в режим гибернации.
Откройте главное меню и выберите команду Панель управления. Откроет­
ся панель управления системой (рис. 2.1 О).


"-- (,..,__
mF • -
r_...,_,..,,,.
-
, �--
-
,.,...,,,,�
•-4,Л,.,


.tn-•-- О
1
. :.::�:::::.':�:::;:.:.. ' ....., (
1 �-. {

Рис. 2.10. Панель управления

Раздел Оформление Fly позволяет изменить оформление рабочего стола -


выбрать другие обои, настроить блокировку экрана, выбрать тему оформле­
ния, различные графические эффекты.


....................................................................................
Лstra Linux

.___,,Odlc>f-• ",Cnfllto.·W"Y' :,О,,,н

..:_J,.,,,�»"""'�"1"-"'�...,c,,,,,,,.

Рис. 2.11. Изменение оформления

Раздел Настройка монитора позволяет выбрать разрешение монитора (рис.


2.12).

•4E:J11_...
""'· -е-�
l1--­
. ; :1 !с:1'"·
•<:» -
1!!)

(:t ,�--

,.__ �...
�.. V С,,.�:""'�Н.
[1'"""""__,,,....... .,.� ........

Рис. 2.12. Выбор разрешения монитора

В разделе Безопасность вы найдете утилиту Политика безопасности,


позволяющую управлять учетными записями пользователями. Утилита
Изменить пароль позволяет сменить пароль текущего пользователя.

....................................................................................

Гт1ва 2. Вход в систему

В разделе Система много чего интересного. Здесь вы найдете следующие


утилиты:

• Автозапуск - позволяет управлять автозапуском различных приложе­


ний GNОМЕ.
• Планировщик заданий - позволяет просматривать и управлять задача­
ми cron, что очень удобно и не имеет аналогов в других дистрибутивах.
• Загрузчик GRUB2 - управляет параметрами загрузчика GRUB2 без
необходимости редактирования его файла конфигурации вручную.
• Система инициализации - позволяет управлять системными служ­
бами.

,, " """"""""°"""
,·9�np,,.rw......

�� 1449

,t n,..._poo.•"8-"...:I О

��"-".;.::::..:;:,:-:,�,,., ----
Рис. 2.13. Раздел "Система"

2.3. Автоматический вход в систему

Если вы не страдаете паранойей, существует возможность настройки авто­


матического входа в систему. При этом система не будет запрашивать па­
роль, а будет обеспечивать вход выбранного пользователя в систему сразу
после загрузки. Для пользователя домашнего компьютера, который работает


в гордом одиночестве, - это идеальный вариант. Конечно, если этому поль­

. .....
зователю нечего скрывать от других членов семьи:)

. ........... .. . .. . . . .. ..... .. . .... ....... .. ...... ..... .. ........ ....... .. .. ...


Astra Linux

Для настройки автоматического входа в Astra Linux выполните следующие


действия:

1. Откройте Панель управления.


2. Перейдите в раздел Система.
3. Вызовите утилиту Вход в систему.
4. Перейдите на вкладку Дополнительно, включите параметр Разрешить
автоматический вход в систему.
5. Выберите пользователя, автоматический вход в систему которого нужно
обеспечить.
6. Нажмите кнопку Да.
7. Перезагрузите систему.

•.c,E::Jr:""-
, :: fo,...

.. �
. ���
P�t
�,�о::
,...,,.....,.;
, �,м/
'
1>•'"'·

o....,,,_,_,:;,i;;.,34•<>otт....r""",,.,_ ..__�
о,4_........)'.........�-•--

d:.n_,._.....,o.,....,.il С11
:19'tм,..,.,./J,IX"f'1""'$A"-t><""
··""" • ...,.,...,,,.,,,.,..,.. .-.г...,.....

Рис. 2.14. Настройка автоматического входа в Astra Linux

.... . .... ............... ....... ...... -- ........ -... - ........ -........ - --·---·----- .

Глава 3.

Сразу после установки

*
ASTRALINUX
Astra Linux

Есть некоторые вещи, которые нужно настроить сразу после установки


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

3.1. Проверяем и устанавливаем обновления

Очень важно поддерживать систему в актуальном состоянии. Если вы не


выбрали установку обновлений при установке системы или не вы устанав­
ливали систему, самое время проверить наличие обновлений.
В Astra Linнx щелкните по значку средства обновлений , откроется окно со
списком пакетов, требующих обновления. Нажмите Да, чтобы произвести
обновление системы.

.... •
- - . - . - ... - - .. - - ............... .......... - - - . .. - - . - - . . - . . . - -.- - ........... -.... -.. .
[ .1ава J. Сра3� 110с.1е �с1а1ювю1

выnоnммr" обwомение?

; Пакеты, �оторые будут об!-jоsпены

iorel: ;кpt<-щppon:,1md64 (0.142-8.lstra2 •>0.143-Зastra1)


· orel: &pi-support-Ь.Se:•md&4 {0.142-8ostra2 •> 0.143-3,шr,щ

!orel: a!t-mtp.mount:amd64 {3.7./Jastr.11 ..-:,. 3.�astfa1}


!orei:ark:amd64(4:19.t)4.t-Ooщral •).4:19.12.0-1astra2)
) orel: astra-nochmod1иnodule-common;amd64 (4.15.3-1.AStra-4 •> 4.15.3-2.ашаS}

; orel: astra-na<;hmodx-module-generk-mt>t•:amd64 (4. fS.З-! ..Jstr-4.,. 4.153-2.astrilS)


orel: as1ra-n0<hmod>t-1nodul!-hardмed-meta:amdб4 (4.1S.3-1,c15traA .,. 4.tS.3-2.astra5}
[orel: astra-rюchmod:,,:-modu�me-t.J:amdб4 {4.1S.]-1.:ntr<J-4..
,. 4.153-2.amaS}
!crt'I: ilstr.нafepolicy.amd64{1.0.83+b1 •> 1.О.38•сlб}
· ore!: asнa-scrtpt�amd6'1 (0.3 •> 0.51
· orel: .iStJil·ve�п:amd64 (2.14.22 •> 8.1.2•v2.12.29}

;orel: chrom1um:amd64 (Jб.0.3809.100-lastr•З w> 80.0.3987.S7-lastra6}


1 ore!: chrom1um-common:amd64(76,03809.100-1 astrаз .,> 80.0.3987.87-1 astrа6}
i l}fel: <hromium-l!On:amd6417бд3809.100-1.t5tra3 •;,, !Ю.О 3987.87· 1.вtr.16)

=� �:����}�•�
j o•el: compt0!""!.amd64 (6.2-astr.12 •> 6.2-astr.iб)
'or@I: connm;ш:amd64 {1.33-1astra6 •> 1.ЗЗ-З•deЬ9u1 •ci20ZOC1,41.4172l •astra2}

; oret rups:amd5.412.2.1-8astril7-> 2.2.!·8ilstr.i11J


orel: cups- Ьsd:amd64{2.2 8a tra
l !- s 7

Рис. 3.1. Обновление системы в Astra Linux

Если вы предпочитаете командную строку, то откройте терминал и введите


команду (для полного обновления системы):

sudo apt update && sudo apt full-upgrade

3.2. Настраиваем почтовый клиент

В Astra Linux команда вызова почтового клиента находится в программной


группе Сеть. Запустите почтовый клиент и просто введите ваш e-mail и па­
роль от почтового ящика. Почтовый клиент ThunderЬird умный и сам уста­
новит остальные параметры почтового сервиса (SMTP, IMAP, порты и т.д.).
Некоторые пользователи предпочитают использовать веб-интерфейс в брау­
зере, а не почтовую программу. В этом случае можно смело удалить кнопку
вызова почтового клиента, чтобы она даром не занимала пространство на
панели задач. Для этого щелкните по ней правой кнопкой мыши и выберите
команду Удалить из избранного. Вы освободите пространство для одной


полезной для вас кнопки!

....................................................................................
.\st,·a L,inux 1ASTRд*LINUX")

з��"•Р-�......� f\<>YT� ;,g4d, -..', Гpynnt.1 ><o,ix11,.. .:� f;IIOn'I И,,._..... t<('IIIOC1"�Й.
М�п-.111

Рис. 3.2. Почтовый агент Thunderhird в Astra Linux

3.3. Установите ваш любимый браузер

По умолчанию в Linux используется браузер Firefox. Это очень хороший


браузер, но он нравится далеко не всем. Установить Chrome можно путем
загрузки его пакета с официального сайта и его установки. Рассмотрим весь
процесс подробнее.
Откройте Firefox и перейди.те по ссылке:
https:l/www.google.com/intl/ru/chrome
Далее:

1. Нажмите кнопку Скачать Chrome.


2. Выберите DЕВ-пакет.
3. В появившемся окне выберите Сохранить файл.
4. В окне браузера, когда файл будет скачан, выберите команду Показать
все загрузки.

...
5. В окне менеджера загрузок нажмите значок папки напротив загруженно­
го DЕВ-файла, чтобы перейти в папку Домашняя папка/Загрузки, или

-·'
откройте файловый менеджер и перейдите в эту папку самостоятельно.

--
. - - - - - - - - - - - -- - - - - - - - -- - - - - - - - -- - - -- - -- - - - - - - - - - -- - - - - - - - - - - - - ... - -- --- - -- --
Глава 3. Сразу после установки

6. Щелкните правой кнопкой мыши и выберите команду Открыть в тер­


минале Введите команду sudo dpkg -i *.deb (убедитесь, что в каталоге
Загрузки у вас нет других dеЬ-файлов, поскольку эта команда устанав­
ливает все dеЬ-файлы из текущей папки, что может быть нежелательно).
7. Введите пароль своего пользователя и дождитесь завершения установки.
Пакет довольно большой, поэтому его установка может занять несколько
минут.
8. Осталось дело за малым - использовать Chrome.

3.4. Установка проигрывателя VLC

VLC - культовый медиапроигрыватель, поддерживающий множество са­


мых разных медиаформатов. В других дистрибутивах его нужно устанавли­
вать самостоятельно.
Пользователям Astra Linux повезло больше: VLC уже установлен по умол­
чанию, поэтому все, что нужно, - запустить его из программной группы
Мультимедиа.

. ...
Рис. 3.3. Проигрыватель VLC


........................................................................... ... -
.\stгa L,in11x

3.5. Устан·овка wine для запуска Windоws­


приложений

Подробно о запуске Windоws-приложений в Linux мы поговорим в дальней­


шем, а пока установите Wine - средство, обеспечивающее запуск Windоws­
приложений. Для его установки введите команду:

$ sudo apt install wine winetricks

3.6. Установка дополнительных архиваторов

Поддержка дополнительных форматов архивов никогда не бывает лишней.


Для установки дополнительных архиваторов введите команду:

$ sudo apt install rar unrar p7zip-full p7zip-rar

3.7. Установите полезные утилиты

Установите двухпанельный файловый менеджер Midnight Commander (рабо­


тает только в консоли) и менеджер пакетов Synaptic, который облегчит поиск
нужного пакета при установке программного обеспечения:

sudo apt install mc


sudo apt install synaptic


.................................................................................... ,
Глава 4.

Основы командной
строки

*
ASTRA LINUX
.\stra Linux (дsТR.А ,, ;

Коман.дн.ая строка - неотъемлемая часть Linux. Посредством командной


строки осуществляется выполнение команд Linux. Эффективно сможет ра­
ботать с Linux только тот, кто освоил принципы работы в командной строке.

4.1. Ввод команд

Ввод команд осуществляется в приложении Терминал. Это эмулятор


консоли Linux, позволяющий вводить команды. Можно переключиться из
графического режима в консоль (нажав Ctrl+Alt+Fl) и вводить команды не­
посредственно в консоли Linux. Но для большинства пользователей будет
удобнее работа с эмулятором терминала в графическом режиме. Приложе­
ние Термин.ал Fly изображено на рис. 4.1.
Для ввода команды нужно ввести ее в приглашение командной строки и
нажать Enter. После чего вы увидите результат выполнения команды. Обыч­
но приглашение командной строки имеет вид:

пользователь@компьютер:текущий_каталог<$1#>

-----------------------------------------------------------------------------------·

Глава 4. Основы командной строк11

Символ$ обозначает, что вводимая команда будет выполняться с привилеги­


ями обычного пользователя. Если команда выполняется с привилегиями су­
перпользователя root, то символ приrnашения командной строки меняется на #.

Фаi:!л Правка НапройкА Cnp.1al(a

Рис. 4.1. Приложение Терминш, Fly

4.2. Автодополнение командной строки


Linux содержит множество команд. Если вы забыли точное название коман­
ды или просто хотите ускорить ее ввод, вы можете использовать автодопол­
нение командной строки. Для этого введите первые буквы названия команды
и нажмите ТаЬ. Далее система или автоматически дополнит команду, или
выведет список доступных вариантов, если доступно несколько вариантов
по введенной команде.
Аналогично, автодополнение может использоваться для имен файлов и
каталогов. Например, вы хотите перейти в каталог applications/xnfЬdh73/
puЫic_html. Вместо того чтобы вводить этот длинный путь (и помнить его!),

'. ...
вводите команду так:

cd а <нажмите ТаЬ> / х <нажмите ТаЬ> / р <нажмите ТаЬ>

- . - - . -- - .. - - . - - - - - -- - - - - - - - - - - - - - - - - - - -- - - - - - . - - - - - - - - - - - - - - - - - - - - - - - - - . - - . - --
,\stп1 l.i,нix

В конечном итоге вместо ввода 33 символов пути вам нужно будет ввести 5 !

4.3. Перенаправление ввода/вывода

Рассмотрим следующую команду:

cat very_long_file.txt I less

Здесь мы пытаемся просмотреть очень длинный файл very_long_file.txt.


Поскольку он очень длинный и не помещается на одном экране, мы пере­
направили вывод первой части команды (cat very_long_file.txt) на стандарт­
ный вывод команды less, которая обеспечивает удобный просмотр длинных
файлов.
Синтаксис следующий:

команда 1 команда 2

Особых ограничений не существует, и вы можете передать вывод второй ко­


манды на ввод третьей и т.д.:

команда 1 команда 2 команда 3

С помощью такого перенаправления можно автоматизировать некоторые ко­


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

echo у I rm file.old

Очень часто перенаправление ввода/вывода используется в таком контек­


сте, в котором использовали его мы: большой вывод перенаправляется на
программу просмотра (less) или на программу-фильтр, такую как grep.
Кроме перенаправления вывода программы на ввод другой программы, его


можно перенаправить в файл, например:

-----------------------------------------------------------------------------------·
1 ,1ава 4. Ос1111н1,11,ошш,111оii с1рою1

ps -А > processes.txt

Если файл processes.txt не существует, он будет создан. Если существует -


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

ps -А >> processes.txt

В этом случае, если файл не существует, то он будет создан, а если существу­


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

4.4. Справочная система тап

В Linux справочная система всегда под рукой. Например, вы забыли параме­


тры команды df, просто введите команду:

man df

Откроется страница руководства (в большинстве случаев-на русском язы­


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

4.5. Команды для работы с файлами и


каталогами
4.5.1. Команды для работы с файлами
В каждой операционной системе есть команды для работы с файлами и ка­
талогами. Linux -не исключение. Рассмотрим стандартные команды Linux

....
для работы с файлами (см. табл. 4.1).


. . . ... . . . ... .... .. . . . . . . -........... - -.. - -.. - - -.. - -... - - - . - -.. - -.... - . -... - . -.. ·-
Astra Linux

Таблица 4.1. Стандартные команды Linux для работы с файлами

Команда Описание

Выводит текстовый файл. Файлы могут быть доволь-


cat файл но длинными, поэтому лучше использовать ее в паре
с командой less, например, cat /etc/services l less

Подобна команде cat, но выводит файл в обратном


порядке. Данная команда удобна для чтения журна-
tac файл
лов, в которых самые свежие сообщения заносятся в
конец файла, например, tac /var/log/messages l less

Копирует файл! в файл2. Если второй файл суще-


ер файл} файл2 ствует, программа спросит вас, нужно ли его переза-
писать
Используется для перемещения файла! в файл2.
mv файл} файл2
Можно использовать для переи,менования файлов

rm файл Удаляет файл

touch файл Используется для создания нового пустого файла

Быстрый поиск файла. Позже мы рассмотрим про-


locate файл
цесс поиска подробнее

Производит быстрый поиск программы (исполнимо-


го файла). Если программа находится в пути РАТН,
whic/1 исполнш1ый_файл
то which выведет каталог, в котором находится
программа

В таблице 4.1 представлены основные команды, которые используются для


создания (touch), копирования (ер), перемещения (mv) и удаления (rm) фай­
лов, а также несколько дополнительных команд.
Рассмотрим несколько примеров:

$ dmesg > kernel.messages


$ cat kernel.messages I less
$ ер kernel.messages krn.msg
$ rm kernel.messages·
l .1ава 4. Ос11овы кощш,щоii с, рок�1

Первая команда выводит загрузочные сообщения ядра в файл kemel.


messages. Вторая выводит содержимое этого файла на экран, а команда less
организует удобный постраничный просмотр этого файла. Далее команда ер
копирует файл kemel.messages в файл krn.msg, а последняя команда удаляет
наш исходный файл kemel.messages. В принципе, вместо последних двух ко­
манд можно было использовать одну команду mv:

mv kernel.messages krn.msg

При указании имени файла вы можете использовать маски *и?. Как обыч­
но, символ * заменяет любую последовательность символов, а ? - один
символ. Например:

rm *.tmp
rm /tmp/*
ер *.txt /media/ext-usb
ер ???.txt /media/ext-usb

Первая команда удаляет все файлы, заканчивающиеся на ".tmp", в текущем


каталоге. Вторая - удаляет все файлы из каталога /tmp. Третья копирует все
файлы с "расширением" .txt из текущего каталога в каталог /media/ext-usb.
Четвертая команда копирует все файлы, имя которых состоит из трех любых
символов и заканчивается на ".txt", например, abc.txt, в каталог /media/ext­
usb.

Примечание. Как вы уже догадались, к каталогу /media/ext-usb


можно подмонтировать внешний USВ-диск, и тогда копируемые
файлы физически окажутся на внешнем жестком диске. Подроб­
нее о монтировании мы поговорим в следующих главах.

Примечание. Обратите внимание, что в таблице 4.1 команды


представлены без параметров. Хотя дополнительные пара­
метры есть у каждой команды. Вы не обязаны помнить все пара­
метры, для этого есть справочная система тап. Вам нужно пом­
нить только названия команд, а параметры вы всегда сможете
"подсмотреть" в тап.

'
·-------·····----·-···--··-····--··---··--··---··--··--··---··-------··--·-···-·---88
Astra l.i11u, �

Мы не рассмотрели команды редактирования текстовых файлов. Они не


являются стандартными (кроме программы vi, которой пользоваться очень
неудобно), но в вашей системе по умолчанию могут быть установлены сле­
дующие текстовые редакторы:

• nano - удобный текстовый редактор;


• joe - небольшой и удобный текстовый редактор;
• pico - текстовый редактор, устанавливаемый вместе с почтовым клиен­
том рше;
• mcedit - текстовый редактор, устанавливаемый вместе с файловым ме­
неджером mc.

Если у вас нет этих редакторов, вы можете установить их. Например, устано­
вите mc - вы получите и файловый менеджер, и текстовый редактор сразу:

sudo apt install mc

4.5.2. Команды для работы с каталогами

Аналогично командам для работы с файлами, команды для работы с катало­


гами представлены в таблице 4.2.

Таблица 4.2. Стандартные команды Linux для paбomt,t с каталогами

Команда Описание

cd каталог Изменение каталога

ls каталог Выводит содержимое каталога

rmdir каталог Удаляет пустой каталог

rm -r каталог Рекурсивное удаление непустого каталога

...
mkdir каталог Создает каталог

.. . .... ..
"" "" "" .. ...
"" """ -- - --
" "" """" ... " --. " "" "" " "

- . - - .. - - - - - - - - - - - .. - - - . - - - . - - .
I .1ава 4. Ос1ншы 1,o,ia1ц1юii с I рою1

Команду ер можно использовать и для копирования


ер каталог] каталог2 каталогов. В данном случае ер копирует каталог] в
каталог2

Команду mv можно использовать и для перемещения


mv каталог 1 каталог2 каталогов. В данном случае mv перемещает каталог] в
каталог2

Обратите внимание, что команда rmdir не может удалить непустой каталог,


поэтому если не хотите удалять сначала файлы и подкаталоги из удаляемого
каталога, то лучше использовать команду rm -r каталог. Например:

$ mkdir /home/bagira/test
$ touch /home/bagira/test/test-file
$ rm -r /home/bagira/test

Как и в случае с командой rm, вы можете задать параметр -r для команд ер


и mv. В этом случае операция копирования или перемещения будет выпол­
няться рекурсивно.
Очень важной операцией является просмотр содержимого каталога, для ко­
торого используется команда ls. Поэтому сейчас сделаем исключение для
этой команды и рассмотрим ее параметры (табл. 4.3). А общий формат вы­
зова этой команды таков:

1s [параметры] [каталог]

Таблица 4.3. Параметры команды ls

Параметр Описание

-С Выводит список файлов в колонках с вертикальной сортировкой

Для каждого каталога добавлять суффикс'/', а для каждого испол-


-F
няемого файла -'*', а для каждого FIFО-канала -'1'

Рекурсивный вывод, то есть команда /s будет выводить не только


-R
содержимое каталога, но и подкаталогов ·


·-------·-------------------------·--------·------------·------------·-------------8118
Astra Linux �

-а Показывать скрытые файлы

Показывать иноды для каждого файла (будет показан серийный


-i
номер файла)

"Длинный" формат вывода, в котором отображается тип файла,


права доступа, количество ссылок на файл, имя владельца, имя
группы, размер файла, метка времени создания файла и имя файла.
-!
В колонке типа файла могут быть следующие значения: d (ката-
лог), Ь (блочное устройство), с (символьное устройство), 1 (симво-
лическая ссылка), р (FIFО-канал), s (сокет)

-r Сортировка в обратном порядке

В таблице 4.3 приведены не все параметры команды ls, _а только самые ос­
новные.
При задании имени каталога можно использовать следующие специальные
имена:

• . - обозначает текущий каталог.


• .. - обозначает родительский каталог.
• ~ - домашний каталог пользователя, например, если вы вошли под поль­
зователем bagira, то путь ~/file.txt равноценен /home/Ьagira/file.txt.

4.6. Команды системного администратора

Существуют команды, которые нужно знать каждому системному адми­


нистратору. В этой главе рассматривается необходимый минимум таких
команд. Нужно отметить, что команд системного администратора гораздо
больше в Linux, по сути, в каждой главе мы рассматриваем те или иные ко­
манды администратора. В этой главе мы рассмотрим некоторые базовые ко­
манды. Возможно, они не пригодятся вам прямо сейчас, но вы еще не раз
вернетесь к этой главе в будущем.

&1--····-·····--·---··--·············-····-·······--··-···--·······--···-········-···

(ASTRд*LINUX"] 1.1,ша 4. Ос,ювы 1,oмa11,111oii с1рою1

4.6.1. Команды для работы с устройствами и драйверами

В таблице 4.4 приведены некоторые команды, которые помогут вам обнару­


жить аппаратную проблему - проблему с устройством либо с его драйве­
ром.

Таблица 4.4. Команды, предоставляющие информ.ацию об устройствах

Команда Описание

Очень важная команда, сообщающая версию ядра.


uname -а Очень важно, чтобы устанавливаемые модули были
откомпилированы под вашу версию ядра

Выводит информацию об устройствах. По умолча-


lsdev нию эта команда не установлена, нужно установить
пакет procinfo

lshal Выводит параметры всех устройств

Выводят соответственно список РСI-устройств,


lspci, lsusb, lshw
USВ-устройств и список оборудования компьютера

lsmod Выводит список загруженных модулей ядра

dmidecode Отображает информацию о BIOS компьютера

cat /proc/cupinfo Выводит информацию о процессоре

cat /proc/meminfo Отображает информацию о памяти

cat /proc/mounts Показывает точки монтирования

cat /proc/net/dev Выводит сетевые интерфейсы и статистику по ним

cat /proc/version Похожа на uname, выводит версию ядра

cat /proc/interrupts Отображает информацию по прерываниям

•. ..
cat /proc/swaps Выводит информацию о файлах подкачки

. .. . . .. . ... . . .. ..... . .... .... . . .. . ... . .... ... .. . . ........... . ... . . . .. .. . . ... .. . . .
.\stra l.iпux

4.6.2. Команды настройки сетевых интерфейсов

Подробно настройка сети будет рассматриваться в следующей главе, а пока


рассмотрим таблицу 4.5, в которой представлен короткий список команд, ко­
торые вам могут пригодиться при настройке сети.

Таблица 4.5. Некоторые команды настройки сети

Команда Описание

Просмотр и изменение таблицы марш-


route
рутизации
Просмотр сообщений ядра, которые
dmesg 1 less
выводятся ядром при загрузке системы
Выводит информацию обо всех бес-
iwconfig
проводных интерфейсах

iwlist scan Поиск беспроводных сетей

Обновляет IР-адрес и другую сетевую


dhclient wlanO информацию беспроводного интер-
фейса wlanO

Просмотреть события беспроводной


iwevent
сети

Перезапуск всех сетевых служб (рабо-


sudo /etc/init.d/dbus restart
тает не во всех дистрибутивах)

sudo systemctl restart <служба> Перезапуск службы. Например, sudo


systemctl restart networking перезапу-
или service <служба> restart екает сеть

4.6.3. Программы тестирования и настройки жесткого диска

Команды для тестирования и настройки жесткого диска, подобно ранее при­

.... •
веденным командам, также представлены в виде таблицы - табл. 4.6 .

..- ....................... ........... - -...... -.......... - ...... - .... -........ -.. .


! лава 4. Основы KOl\taНJtttoй с, роки

Таблица 4. 6. Команды для тестирования и настройки жесткого диска

Команда Описание

Осуществляет проверку жесткого диска


badЫocks -v <имя_устройства> на наличие "плохих" блоков. Параметр
-v включает подробный отчет.
Тестирование производительности и
настройка жесткого диска. Например,
параметр -t может протестировать про-
hdparrn изводительность (hdparrn -t /dev/
sda), а параметр -Е установить скорость
привода CD/DVD:
hdparrn -Е 2 /dev/srO

hddternp Отображает температуру жесткого диска

Тестирует производительность жесткого


bonnie
диска

Тестирование процессора (стресс-тест


cpuburn
процессора)

screentest Тестирование и настройка монитора

SМАRТ-мониторинг. Нужно, чтобы ваши


srnartrnontools
жесткие диски поддерживали S.M.A.R.T

4. 7. Команды обработки текста


4.7.1. Редактор sed

Команда sed - мощный потоковый редактор, и ему можно было посвятить


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


.....................................................................................
.\stra [,iпux IASTRд\1Nux·]

• Заменить строку "stringl" на "string2" в файле report.txt, результат выве­


сти на стандартное устройство вывода:

sed 's/stringal/stringa2/g' report.txt

• Вывести пятую строку файла report.txt:

sed -n 'Sp;Sq' report.txt

• Удалить пустые строки из файла:

sed '/л$/d' report.txt

• Удалить строку "stringl" из текста, не изменяя всего остального:

sed -е 's/stringl//g' report.txt

• Удалить пустые символы в конце каждой строки:

sed -е 's/ *$//' report.txt

• Удалить пустые строки и комментарии из файла:

sed '/ *#/d; / л $/d' report.txt

• Преобразовать символы из нижнего регистра в верхний:

echo 'test' 1 tr ' [: lower:] ' ' [: upper:] '

• Удалить первую строку из файла:

sed -е 'ld' report.txt

4.7.2. Подсчет количества слов/символов

Команда wc используется:


• Для подсчета слов в текстовом файле:

.....................................................................................
{ASTRA.LINux·) 1.,ава 4. Ос11овы кошш.шоii с1 роки

wc /var/log/messages
• Для подсчета количества строк (если задан параметр -[):
wc -1 /var/log/messages
• Для подсчета количества символов (параметр -с):
wc -с /var/log/messages

4.7.3. Сравнение файлов

Команда стр используется для сравнения двух файлов. Если файлы иден­
тичны, то стр вообще никак не реагирует. А вот если файлы отличаются,
то стр выводит номер строки и номер символа в строке, откуда начинается
различие.
Команда стр более универсальна, поскольку она может использоваться для
сравнения как текстовых, так и двоичных файлов. А вот команда diff и ее
аналоги умеют сравнивать только текстовые файлы.
Формат вызова команды следующий:

cmp [параметры] файлl файл2

Параметры команды cmp указаны в табл. 4.7.

Таблица 4. 7. Пара.метры команды стр

Параметр Описание

-с Вывод отличающихся символов

-i п Игнорировать первые n символов

-! Вывод позиций всех отличий, а не только первого


Не выводить информацию на экран, при этом код возврата будет
следующим:
1

-s О - файлы одинаковые;
1-файлы отличаются;
2 - ошибка при открытии одного из файлов


....................................................................................
Astra Linux

4.7.4. Разбивка текста на колонки

Команда column используется для разбивки текста на несколько столбцов.


Текст может быть прочитан как из файла, так и со стандартного ввода, если
файл не указан.
Формат вызова команды:

column [параметры] [файл]

Параметры команды column приведены в табл. 4.8.

Таблица 4.8. Параметры команды column

Параметр Описание

-сп Задает количество столбцов (число п)

Указанный символ будет использоваться в качестве разделителя


-s символ
столбцов

Текст будет форматироваться как таблицы. По умолчанию раз-


-t делителем полей считается пробел, но с помощью параметра -s
можно задать другой разделитель

-х Сначала будут заполняться столбцы, а потом строки

4.7.5. Команды dijfи dijj3


Команда используется для сравнения двух файлов. Формат вызова програм­
мы dijf.

diff [параметры] файлl файл2

В выводе программы отличающиеся строки помечаются символами > и <:

• Строка из первого файла помечается символом <;


• Строка из второго файла - символом >.


Самые полезные параметры программы dif.fприведены в табл. 4.9.

....................................................................................
!�1ава 4. Ос11овы кома11,111оii с1рою1

Таблица 4.9. Параметры команды dijf

Параметр Описание

-а Сравнение всех файлов, в том числе бинарных

-Ь Программа будет игнорировать пробельные символы в конце строки

-В Игнорирует пустые строки

Применяется для создания сценария для редактора ed, который



будет использоваться для превращения первого файла во второй

-w Игнорирует пробельные символы

-у Вывод в два столбца


Используется для сравнения файлов в подкаталогах. Вместо пер-
-r вого файла указывается первый каталог, вместо второго файла -
соответственно второй каталог

Команда difj3 похожа на diff, только используется для сравнения трех фай­
лов. Формат вызова команды таков:

diffЗ [параметры] файлl файл2 файлЗ

Программа выводит следующую информацию:

• === - все три файла разные;


• ===1 - первый файл отличается от второго и третьего;
• ===2 - второй файл отличается от первого и третьего;
• ==3 - третий файл отличается от первого и второго.

Параметры команды difj3 указаны в таблице 4.10.

Таблица 4.10. Параметры команды dijf3

Параметр Описание
Сравнивать файлы как текстовые, даже если они являются бинар-

ными

........ ..... . ............................................ ···-..······· ........... ...


Лstra IJnux (ASTRд*LINUX')

Создание сценария для редактора ed, который показывает в ква-



дратных скобках все отличия между файлами

Создает сценарий для ed, который помещает все отличия между



файлами файл2 и файлЗ в файл файлl (будьте осторожны!)

Добавить команды w (сохранить файл) и q (выйти) в конец сцена-


-i
рияеd

Создание сценария редактора ed, который помещает отличия меж-



ду файлами в файл файл 1

-Х То же, что и -х, но отличия выделяются

Создает сценарий ed, который помещает все различия между фай-


-3
лами файл 1 и файлЗ в файл 1

4.7.6. Команда grep


Предположим, что у нас есть файл какой-то большой файл, и мы хотим най­
ти в нем все упоминания строки hello. Сделать это можно так:

cat file.txt I grep hello

Команда cat file.txt передаст содержимое файла file.txt на стандартный ввод


команды grep, которая, в свою очередь, выделит строки, содержащие строку
hello.

4.7.7. Замена символов табуляции пробелами

Команда expand заменяет в указанных файлах символы табуляции на соот­


ветствующее количество пробелов. Команде можно передать лишь один па­
раметр -i, означающий, что замена должна быть только в начале строки.
Формат вызова команды:

expand [-i] файлы


811------. ------.-.---..---. --...---.-----.--.--------------.-----. -..---... --.--...-.
(ASTRд*LINUX"] 1:1ава 4. Основы i-.:1шa11,щoii с, рою1

4.7.8. Форматирование текста


Командаfтt форматирует текст, выравнивает его по правой границе и удаля­
ет символы новой строки. Синтаксис вызова команды:

fmt [параметры] файлы

Параметры командыfтt приведены в табл. 4.11.

Таблица 4.11. Параметры команды fmt

Параметр Описание

-с Не форматировать первые две строки

Форматировать только строки, начинающиеся с указанного пре-


-р префикс
фикса

-s Не объединять строки

-t Начинать параграф с красной строки

Задает максимальную длину строки в n символов (по умолчанию


-wn
72)

4.7.9. Команды постраничного вывода more и less


Большой текстовый файл намного удобнее просматривать с помощью ко­
манд less или more. Программа less удобнее, чем more, если она есть в вашей
системе:

tac /var/log/messages I grep ррр I less

4.7.10. Команды head и tail: вывод первых и последних строк


файла

Команда head выводит первые десять строк файла, а tail - последние де­


сять. Количество строк может регулироваться с помощью параметра -п .

·------------------------------------------------------------------------------------
Astra [,inux

Пример использования:

head -n 10 /var/log/messages
tail -n 15 /var/log/messages

4.7.11. Команда split

Используется для разделения файлов на части, По умолчанию создаются


части размером в 1 ООО строк. Изменить размер можно, указав количество
строк, например:

split -200 файлl

В данном случае файл будет разбит на части по 200 строк в каждой (кроме,
возможно, последней части, где может быть меньше строк).
Команду можно также использовать для разделения файлов на части по раз­
меру информации, а не по количеству строк, например, с помощью параме­
тра -Ь можно указать количество символов в каждой части. Примеры вызова
команды:

split -ЫООЬ файл


split -ЫООk файл
split -ЫООm файл

Первая команда разделит файл на части по 100 байтов каждая, вторая - на


части по 100 Кбайт каждая, третья - по 100 Мбайт каждая.

4.7.12. Команда unexpand

Заменяет последовательные пробелы символами табуляции. По умолчанию


8 пробелов заменяются одним символом табуляции. Количество пробелов
можно задать с помощью параметра -t п (где п - количество пробелов).
Синтаксис вызова:

unexpand [параметры] файл

--- •
- - - - -- . - - - - ..... - ... - - ... - ..... - . - - -... - - - - . - - - - - -. - - - . - - .. ·- - - . -.... - - . ·-. ·- - ....
Глава 5.

Локальная сеть
Лstra [,inux

Следующий материал этой книги начнется с настройки сети. Будет рас­


смотрено, как настроить локальную Ethemet и беспроводную Wi-Fi-ceть, как
установить VРN-соединение. А уже после этого мы рассмотрим установку
программного обеспечения, популярные программы и все остальное. Без
сети сейчас никак - даже программу не установишь, поэтому приступим.

5.1. Физическая настройка сети Ethernet

Существует мно:го сетевых технологий, но в этой книге мы будем рассматри­


вать настройку локальной сети, построенной на технологии Fast Ethemet.
Однако мы рассмотрим ее полностью - от обжатия кабеля до конфигуриро­
вания сети в Linux.
Несмотря на наличие уже стандарта GigaЬit Ethemet ( 1 ООО Мбит/с), стандарт
Fast Ethemet (100 Мбит/с) все еще актуален, и его скорости вполне хватает
для обеспечения работы локальной сети. А стандарт GigaЬit Ethemet пока
используется в качестве магистрали.
Прежде всего, вам нужно убедиться, что у вас есть сетевой адаптер, поддер­
живающий технологию Fast Ethemet. Большинство современных компьюте­

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

. -- ----- ---- -- --- --- -- --- --- ----- ---- ---. -- -------- -- --- - --- . -- -- - --- - - -- - - -- :. _,
1.,ава 5 .•lока.1ы1аs1 се,,,

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

• Сетевые адаптеры - с ними мы уже разобрались.


• Коммутатор (switch)- его можно купить в любом компьютерном мага­
зине. Вместо него сойдет машрутизатор (router), который, как правило,
обладает 4-8 портами для подключения локальных компьютеров- этого
вполне достаточно для построения небольшой SОНО-сети (Small Office
Ноте Office).
• Витая пара пятой категории- спрашивайте именно такой тип кабеля 1 •
• Коннекторы RJ-45 - таких коннекторов вам нужно будет в два раза
больше, чем число компьютеров, поскольку кабель нужно будет обжать с
двух концов.
• Инструмент для обжимки витой пары - хороший инструмент стоит
относительно дорого (примерно как коммутатор), а плохой лучше не по­
купать. Если не хотите выкладываться, возьмите у кого-нибудь на пару
дней.

Теперь приступим к самому процессу обжимки. Внутри кабеля будут 4 ви­


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

Таблица 5.1. Обжимка витой пары


Контакт Цвет провода
1 Бело-оранжевый
2 Оранжевый
3 Зелено-белый
4 Синий
Для GigaЬit Ethernet нужна витая пара 6-й категории.

·--------------------------------------------------------------------------·-····---
Лstra (,inux

5 Сине-белый
6 Зеленый
7 Бело-коричневый
8 Коричневый

Обжимать кабель нужно с двух сторон. Один конец подключается к кон­


центратору (или коммутатору), а второй - к сетевому адаптеру. Если вы
неправильно (или слабо) обожмете кабель, то ваша сеть работать не будет
или же будет работать только на скорости 1 О Мбит/с.
Проверить, правильно ли вы обжали кабель, очень просто: обратите внима­
ние на коммутатор. Возле каждого порта будет два индикатора. Если горят
оба, значит, все нормально. Если же горит только один из них, значит, дан­
ный порт работает в режиме 1 О Мбит/с. А если вообще не горит ни один из
индикаторов, значит, вам нужно переобжать кабель.

5.2. Настройка сети с помощью графического


конфигуратора

В каждом дистрибутиве Linux есть графические конфигураторы. Конечно,


на сервере далеко не всегда устанавливается графический интерфейс,
поэтому такие конфигураторы будут недоступны, однако не сказать о них
тоже нельзя. Сначала мы рассмотрим графические конфигураторы, а затем
рассмотрим настройку сети в консоли - с помощью конфигурационных
файлов.
Прежде чем приступить к настройке сети, ради справедливости нужно отме­
тить, что в большинстве случаев настраивать ничего не придется - во всех
современных сетях есть DНСР-сервер, который и настраивает все осталь­
ные компьютеры. Настройка сети может понадобиться разве что на самом
DНСР-сервере, но это только в том случае, когда вы настраиваете сеть с
нуля. Опять-таки, если вы подключили свои домашние компьютеры к марш­
рутизатору, то в качестве DНСР-сервера будет выступать сам маршрутиза­
тор, и вам в большинстве случаев вообще не придется ничего настраивать.
В Astra Linux настройка осуществляется следующим образом. Щелкните


правой кнопкой мыши на значке сетевого соединения и выберите команду

....................................................................................
Глава 5. Лока.1ьная се1ь

Изменить соединения (рис. 5.1 ). В появившемся окне выберите сетевое


соединение и нажмите кнопку с изображением шестеренки (рис. 5.2).

J в�лючить уведомления

Сведения о со-единении
Изменить соединения .•.

Рис. 5.1. Вызов конфигуратора сети в Astra Linux

Bi1Фi!-1UI·! ki11PJИliZMIII\Jit!·IDiiiH\15iitilEIW!i■
..,. ftПern•t:

Рис. 5.2. Конфигуратор сети

Далее нужно перейти на вкладку Параметры 1Pv4 и установить параметры


сети, как это было сделано ранее в UЬнntu. IР-адреса DNS-cepвepoв также
указываются через запятые. Для применения настроек нажмите кнопку

. ...
Сохранить.

••
................... - -- - - ----- --........ ··- . ...........

-- ................. -- - - -·
.\stra [jnux

'м.ккасети шлюэ

Search domafns

CJ "Требовать адре,ицию IPv4 А/1Я этоrо соеди1-1еt-1ия

Рис. 5.3. Пара.метры 1Pv4

В 99% случаев вам не нужно редактировать параметры Еthеmеt-соединения,


поскольку настройка данного соединения осуществляется по протоколу
DHCP автоматически. Конечно, в некоторых случаях, например, когда вам
нужно по тем или иным причинам клонировать МАС-адрес устройства или
у вас нет DНСР-сервера и нужно определить конфигурацию интерфейса
вручную, придется редактировать параметры проводного соединения. Так­
же настройка интерфейса вручную может потребоваться на компьютере, ко­
торый используется в качестве DНСР-сервера.
На вкладке Ethernet можно (рис. 5.4):

• Выбрать физическую сетевую плату, которая будет использоваться для


этого соединения (список Device);
• Изменить МАС-адрес соединения (Cloned МАС address);
• Задать MTU соединения.

... •
--------·---··--·-------------·----··-----------·-·-·-----·-···-----·······--·····
(ASTRA.LINux·J 1·_1ава 5 .•lока.1ьшн1 сс11,

Рис. 5.4. Вкладка Ethernet в Astra Linux

5.3. Команда ffconfig


Команда ifconfig используется для настройки и отображения параметров се­
тевого интерфейса. Если ввести команду ifconfig без параметров, то мы по­
лучим список всех активных интерфейсов, например:

еnsЗЗ Link encap:Ethernet HWaddr OO:OC:29:C2:0D:D1


inet addr:192.168.52.154 Bcast:192.168.52.255 Mask:255.255.255.0
inetб addr: fe80::20c:29ff:fec2:ddl/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:425 errors:O dropped:0 overruns:0 frame:O
ТХ packets:406 errors:O dropped:0 overruns:O carrier:0
collisions:O txqueuelen:1000
RX bytes:41540 (40.5 КЬ) ТХ bytes:39618 (38.6 КЬ)

lo Link encap:Local Loopback


inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/12 8 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:96 errors:O dropped:O overruns:O frame:O
ТХ packets:96 errors:O dropped:0 overruns:O carrier:0

,
collisions:O txqueuelen:0
RX bytes:5760 (5.6 КЬ) ТХ bytes:5760 (5.6 КЬ)

................................................................................ ..
Astra Linux

Примечание. Даже если сетевые интерфейсы не настроены, в


выводе ifconfig должен быть интерфейс lo. Если его нет, служба
network не запущена. Для ее запуска введите команду от поль­
зователя root: service network start.

Разберемся, что есть что. У нас есть два сетевых интерфейса - ens33
(Ethemet-aдaптep) и lo (интерфейс обратной петли). Второй используется
для тестирования работы сети и всегда имеет IР-адрес 127.0.0.1. Также он
может использоваться для обращения к локальному компьютеру. Например,
если на вашем компьютере установлен MySQL-cepвep, то в РНР-сценариях
можно смело указывать адрес 127.0.0.1 или localhost, чтобы указать, что вы
обращаетесь к MySQL-cepвepy, запушенному на этом компьютере.
Рассмотрим поля вывода ifconfig:

• HWaddr - содержит аппаратный МАС-адрес (в нашем случае это


00:0C:29:C2:0D:D 1);
• inet addr - содержит 1Рv4-адрес интерфейса (192.168.52.154);
• inetб addr - содержит IРvб-адрес интерфейса;
• Bcast - адрес для широковещательной передачи;
• Mask- маска сети;
• MTU - значение MTU (Maximum transmission unit);
• collisions - счетчик коллизий, если количество коллизий больше О, с ва­
шей сетью творится что-то неладное. Как правило, в современных ком­
мутируемых сетях коллизии отсутствуют вообще;
• RXpackets - количество принятых пакетов;
• ТХ packets - количество переданных пакетов;
• RX bytes - количество принятых байтов;
• ТХ bytes - количество переданных байтов.

Получить список всех интерфейсов, а не только активных, можно с помо­


щью параметра -а:

....
sudo ifconfig -а


... .......... ... ....... .. . . ... .... .. . ... .... .. ..... ... ...... .................... .
1 I,1в,1 .:; .101>:а. 11,ш1s1 се 11,

С помощью команды ifconfig можно деактивировать (down) и активировать


(up) любой интерфейс:

sudo ifconfig еnsЗЗ down


sudo ifconfig еnsЗЗ up

Иногда такой "перезапуск" интерфейса помогает наладить его работу. Осо­


бенно это полезно для "подвисших" беспроводных интерфейсов (wlan*).
С помощью ifconfig можно назначить IР-адрес и другие сетевые параметры
интерфейса, например:

sudo ifconfig еnsЗЗ down


sudo ifconfig еnsЗЗ 192.168.1.1 up

Сначала мы деактивируем интерфейс, затем назначаем новый IР-адрес и


"поднимаем" (параметр ир) интерфейс. Можно эту последовательность
действий выполнить и за три команды:

sudo ifconfig еnsЗЗ down


sudo ifconfig еnsЗЗ 192.168.1.1
sudo ifconfig еnsЗЗ up

Аналогичным образом можно назначить маску сети и широковещательный


адрес:

sudo ifconfig eth0 10.0.0.1 netmask 255.255.255.240 broadcast 10.0.0.15

После изменений параметров интерфейса не забудьте его активировать с по­


мощью команды ир:

sudo ifconfig eth0 up

Изменить MTU интерфейса можно так:

•.
sudo ifconfig eth0 down
sudo ifconfig eth0 mtu ХХХХ up

..- -. --- -.. --. -- - - - ---.---. - --- - . - -..--. - -- -......- --. -- - -.......... - ...............
Astra Linux

Самой интересной возможностью ifconfig является перевод интерфейса в


так называемый promiscuous mode. В обычном режиме сетевая карта, если
принимает пакет, который был адресован не ей, его просто отбрасывает. В
promiscuous mode карта будет принимать даже те пакеты, которые не были
ей адресованы. Такая возможность может понадобиться для перехвата тра­
фика:

sudo ifconfig ethO promisc

Перевести карту в обычный режим можно командой:

sudo ifconfig ethO -promisc

Помните, что параметры, заданные с помощью ifconjig, хранятся только до


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

5.4. Имена сетевых интерфейсов в Linux

В Linux у каждого сетевого интерфейса есть свое имя, чтобы администратор


сразу понимал, что это за соединение. Например, у всех РРР-соединений
имя ррр?, где ? - номер соединения: первое соединение называется рррО,
второе - pppl и т.д. Нумерация соединений начинается с нуля. В таблице
5.2 приведены названия часто используемых сетевых интерфейсов.

Таблица 5.2. Имена сетевых интерфейсов в Linux

Название интерфейса Описание

lo Интерфейс обратной петли

eth, он же ens Сетевой интерфейс Ethemet


ррр Соединение РРР (Point-to-Point)

------------ ------. ---· ·· ------- - ···-·· ................··-·


.. .. ·····- .............. .
Г:�ава 5. Ло�-:а:1ьная се, ь

wlan Беспроводной сетевой интерфейс

tr Сетевой интерфейс Token Ring

Сетевой интерфейс PLIP (Peral\el Line IP). Очень ста-


plip
рый интерфейс, вряд ли вы будете с ним иметь дело

Се.тевой интерфейс SLIP (Serial Line IP). Тоже "древ-


sl
ний" интерфейс

fddi Интерфейс к карте FDDI

ах Сетевой интерфейс любительского радио АХ.25

Интерфейсы создаются автоматически ядром для каждого обнаруженного


сетевого устройства. Исключения составляют разве что интерфейсы ррр,
которые создаются во время настройки сети. Например, у вас может быть
РРРоЕ-соединение к провайдеру и сетевая карта eth0. Сетевой интерфейс
eht0 для сетевой карты будет создан автоматически ядром. Но ядро не знает,
как вы будете использовать эту карту - для подключения к локальной сети
или как РРРоЕ-соединение с провайдером, поэтому оно не может создать
интерфейс рррО, прочитав ваши мысли. Поэтому интерфейс рррО будет соз­
дан уже во время настройки РРРоЕ/АDSL-соединения с вашим провайде­
ром. О таких соединениях мы поговорим в дальнейшем.
Все было бы хорошо, если по непонятным причинам в последних верси­
ях ядра интерфейсы не переименовали. Так, старый добрый eth0 теперь
почему-то называется ens33, в некоторых дистрибутивах даже enp3s0. Логи­
ки в таких именах не очень много, да и хочется, чтобы имена интерфейсов
были такие же, как раньше - как-никак 20-летняя традиция. Ради справед­
ливости нужно отметить, что в Astra Linux интерфейс называется как нужно
- eth0 (рис. 5.5).
На самом деле, логика в новых названиях есть, но только с точки зрения
самого компьютера и разработчиков udev. Пользователям и администрато­
рам такая логика не очень понятна. Например, имена, вовлекающие предо­
ставленный BIOS индекс для встроенных в материнскую плату устройств
(ID_NET_NAME_ONBOARD), выглядят так - enol. Имена адаптеров,
подключающихся к шине PCI Express, будут содержать номер слота (ID-


.
NET_NAME_SLOT), например ensl. Имена, вовлекающие физическое/

. ......... . ............ . ........ . ... . .. .. . ...... ....... ······ ..................... ..


Astra Linux

географическое расположение коннектора (1D_NET_NAME_РАТН), выгля­


дят еще сложнее - enp2s0. Ну и самые "страшные" - это имена с МАС­
адресами интерфейсов (ID_NET_NAME_MAC). Пример такого имени:
enx78e7dlea46da.

ФdtiA npae«a нacrpoйkd cnpa&l(a

Рис. 5.5. Вывод ifcon.fig в Astra Linux

Конечно, можно оставить все как есть - все будет прекрасно работать. Но
если вам привычнее обычные имена, тогда есть несколько способов вернуть
все, как было раньше.
Первый способ заключается в редактировании файла /etc/udev/
rules.d/70-my-network.rules (или 70-persistent-net.rules). Если такого файла
у вас нет, значит, его нужно создать. Примерное содержимое файла следу­
ющее:

# PCI device (r8169)


SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx",
NAМE="eth0"

# USB device (usb)


SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="yy:yy:yy:yy:yy:yy",

......
NAМE="wlan0"

....... ... ... .... ...... .. ... ..... .... -. - ................. .................. .
,.
(ASTRд*LINUX") 1 1,1на.:; • l11�-а.11.шн1 Cl'II,

Здесь хх нужно заменить МАС-адресом вашей сетевой карты, а уу - МАС­


адресом вашего беспроводного адаптера.
Есть и второй способ - передать ядру параметр net.ifnames=0. О том, как
это сделать, будет рассказано в следующих главах - не будем забегать
вперед.

5.5. Общие конфигурационные файлы

Наверняка вам интересно, куда конфигураторы сохраняют введенные вами


настройки? Об этом мы обязательно поговорим, тем более что файлы конфи­
гурации сети отличаются в зависимости от используемого дистрибутива. Но
сначала мы рассмотрим общие файлы конфигурации, имеющие отношение
к сети. Эти файлы есть во всех дистрибутивах Linux, и их назначение оди­
наково.

Файл /etclhosts

Когда еще не бьшо системы разрешения доменных имен (DNS), в этом фай­
ле прописывались IР-адреса узлов и соответствующие им имена узлов. Эти
файлы тиражировались от компьютера к компьютеру. Если в сеть добавлял­
ся новый компьютер, изменения нужно было внести в файлы /etc/hosts на
всех компьютерах. Сегодня этот файл практически не используется, и в нем
содержится только IР-адрес узла localhost - 127.0.0.1 и аналогичные 1Рv6-
адреса. Формат записей этого файла следующий:

IР-адрес Имя

Например:

127.0.0.1 localhost

Файлы /etc/hosts.allow и /etc/hosts.deny


Содержат IР-адреса узлов, которым разрешен (hosts.allow) или запрещен

•.
(hosts.deny) доступ к сервисам данного узла. Опять-таки - это устаревшие

- - - - - - - - -- - - - - - - - - - - - - - - - - - -- .. - - - - - - - - - - - .. - - - - - - - . - - - - - - -- - - - - - - - - - . - - - ..........
Astra Linux

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


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

Файл /etc/host.conf

Содержит параметры разрешения доменных имен, которые указываются ди­


рективой order. Так, order hosts, bind означает, что сначала поиск IР­
адреса по доменному имени будет произведен в файле /etc/hosts, а затем - с
помощью DNS-cepвepa. Если для вас это существенно, можете изменить по­
рядок на bind, hosts, ведь файл hosts уже никем давно не используется и
искать там нечего.
Директива mul ti on в этом файле означает, что одному доменному имени
могут со'ответствовать несколько IР-адресов.

Файл /etc/hostname

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

Файл /etc/motd

Содержит сообщение дня, которое может использоваться некоторыми сете­


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

Файл /etc/resolv.conf

Обычно в этом файле содержатся параметры резолвера доменных имен.

..
Директива search задает список доменов, в которых будет произведен поиск


доменного имени, если оно введено не полностью. Например, пусть дирек­
тива searcli определена так:

. .......... -............ -. -....... -....... - -........ -....... - ....- ....-...... ·- --.


(ASTRд*LINUX"J l�iaвa 5. Локальная се1ь

search org org.ru net

Вы вводите доменное имя не полностью (например, в браузере) - dkws.


Тогда резолвер попытается сначала разрешить доменное имя dkws.org, по­
том - dkws.org.ru, а уж потом, если ни один из первых·двух вариантов не
был разрешен, в IР-адрес - dkws.net.
Директива nameserver позволяет определить IР-адрес сервера DNS. В одной
директиве можно указать только один сервер. Всего в файле конфигурации
может быть определено до четырех серверов имен:

narneserver 8.8.8.8
narneserver 8.8.4.4

Пример файла конфигурации /etc/resolv.conf приведен в листинге 5 .1.

Листинг 5.1. Файл /etc/resolv.conf

search dkws.org.ru

narneserver 8.8.8.8
narneserver �.8:4.4

Файл /etc/services

Все мы знаем, что за сетевыми службами закрепляются определенные но­


мера портов. Например, службе рорЗ соответствует порт 11O,ftp - порт 21.
Эти соответствия и определяются в файле /etc/services. В большинстве слу­
чаев вам не придется редактировать этот файл. Скорее, вы будете его исполь­
зовать в качестве информационного, чтобы знать, какой порт соответствует
какой службе.

Файл /etc/protocols
Тоже сугубо информационный файл (его можно редактировать, но вряд ли


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

·-···--··--··---··--··----·----······················----------·---··--··--·----·----
Astra Linux

псевдонимы и комментарии, а также ссылки на RFС-документы. Полезный


файл, если вы хотите разобраться по очереди во всех сетевых протоколах.

Файл /etc/networklinterfaces: конфигурация сети в Astra Linux

Основной конфигурационный файл сети в Astra Linux называется /etc/


network/interfaces. Он содержит параметры сетевых интерфейсов, если не
используется Network Manager. Вот пример описания интерфейса ethl со
статическим IР-адресом:

iface ethl inet static


address 192.168.1.2 # IР-адрес
netmask 255.255.255.0 # Маска сети
gateway 192.168.1.1 # Шлюз

Думаю, все ясно. Если интерфейс настраивается по DHCP, его конфигурация


будет выглядеть так:

auto ethO
iface ethO inet dhcp

Каталог /etc/NetworkManager/system-connections: конфигурация


сети в Ubuntu

В Ubuntu параметры сетевого интерфейса хранятся в каталоге /etc/Network­


Manager/system-connections. В этом каталоге находятся несколько файлов,
имена этих файлов соответствуют названиям соединений в NetworkМanager.
Например, в файле 'Проводное соединение l .nmconnection' находятся пара­
метры первого проводного соединения (лист. 5.2).

Листинг 5.2. Пример настройки интерфейса со статическим


IР-адресом

...
[802-3-ethernet]
duplex =full

[connection]

- ---------- ... ------ - ----- - ------------- ---- - . --------. -



-- -- - - ---- - -- ------ - - . . -·
Глава 5. Локаль11ая сеrь

id= Проводное соединение 1


uuid= 00779167-0a51-44ad-a2b3-b5765a65b496
type= 802-3-ethernet
timestamp=l419337229

[ipvб]
method= auto
ip6-privacy= 2

[ipv4]
method=manual
dns = B.8.8.8;
addressesl= l92.168.l.101;24;192.168.l.l;

Как видите, протокол 1Pv4 настраивается вручную (method=manual). Был


задан DNS-cepвep (8.8.8.8), а также IР-адрес узла (192.168.1.101), маска сети
(24 - соответствует 255.255.255.0), а также адрес шлюза - 192.168.1.1.
Если нужно добавить еще один IР-адрес, просто добавьте строку addressesN:

addresses2=192.168.l.102;24;192.168.l.l;

Для настройки интерфейса по DHCP измените параметр method:

[ipv4]
method=auto

Если вы изменили параметры интерфейса, контролируемого Network


Manager, и не через интерфейс NM, а вручную, тогда нужно перезапустить
Network Manager:

# service network-manager restart

На этом все. В следующей главе будет рассмотрена конфигурация беспро­


водной сети.
� .. ® �

.. ASTRA LI N UX
Глава 6.

Беспроводная Wi-Fi сеть


\st.-:1 l.i1111x

Беспроводные сети быстро завоевали популярность. Оно и понятно -


быстро, просто, дешево. Судите сами: не нужно прокладывать кабели, об­
жимать их. Все, что нужно, - купить "коробочку" (самые дешевые сейчас
можно встретить чуть дороже 1ООО рублей) и включить ее. Можно даже не
настраивать, а использовать те пароли, которые указаны на самой "коробоч­
ке". В итоге начальное "разворачивание" сети у вас займет 5 минут - на
выбор, размещение Wi-Fi-маршрутизатора и его включение, и еще по 1 ми­
нуте на настройку каждого узла, который будет подключаться к беспровод­
ной сети. Это потом уже вам захочется улучшить прием, выбрав другой ка­
нал, поменять пароли по умолчанию и т.д. Если у вас к беспроводной сети
подключается 5 устройств, то на первоначальную настройку всей сети будет
потрачено 10-15 минут.
Давно прошли те времена, когда настройка беспроводной сети в Linux напо­
минала шаманские заклинания и пляски с бубном вокруг компьютера. Сей­
час все происходит так же, как и в случае с "нормальными" операционными
системами - выбрал сеть, ввел пароль и работаешь.

,
Мы рассмотрим, как подключиться к Wi-Fi с помощью графического ин­
терфейса и как проделать то же самое в консоли. Такой "лайфхак" может

...................................................................................
Глава 6. Беспроводная Wi-Fi се,ъ

понадобиться вам при администрировании сервера без графического интер­


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

6.1. Настройка беспроводной сети с помощью


графического интерфейса

Мы будем считать, что беспроводной адаптер подключен к компьютеру и


включен. Если у вас стационарный компьютер, убедитесь, что вы подключи­
ли WiFi-aдaптep к USВ-порту. Также убедитесь, что он работает - на самих
адаптерах иногда есть переключатели, позволяющие включать/выключать
их. Если адаптер работает, индикатор на нем светится.
С ноутбуками может быть все немного сложнее. Адаптер, как правило,
встроен в ноутбук, но может быть выключен. Обычно включение/выклю­
чение адаптера происходит посредством комбинации клавиш Fn+Fx, где Fn
- это клавиша Fn (находится, как правило, справа от левого Ctrl), а Fx -
одна из функциональных клавиш (Fl - Fl2). Над такой клавишей обычно
есть изображение беспроводной сети или самолета. Так, на ноутбуках НР
на клавише F 12 есть изображение самолета, нажатие комбинации Fn+F 12
переводит ноутбук в режим полета, когда Wi-Fi выключается, повторное на­
жатие переключает ноутбук в обычный режим - в нем Wi-Fi доступен. На
некоторых ноутбуках могут быть аппаратные переключатели (выполненные
в виде переключателя или кнопки) для включения/выключения Wi-Fi. Если
не разберетесь, обратитесь к документации по ноутбуку..
Нужно отметить, что в Astra Linux подключение к Wi-Fi удобнее, чем в
UЬuntu. Щелкните по значку NetworkМanager, и вы сразу получите список
сетей. Если нужной сети нет в списке, используйте меню Еще сети, а для
подключения к скрытой сети - команду Подключиться к скрытой сети
Wi-Fi.
Далее нужно ввести только пароль для подключения к сети и дождаться са­
мого подключения.

•·-· ·-..................................----..... ------.....-----------...........·CI


Astra Linux

Еще�ети

Соединения VPN

Рис. 6.1. Выбор сети

Рис. 6.2. Ввод пароля

-------------------···--······--··------------··-·-------------:-···---------------·
1·,�ава 6. Беспроводная Wi-Fi се1ь

Примечание. Обычно Wi-Fi-ceти требуют пароль для подключе­


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

6.2. Настройка беспроводного соединения в


командной строке (WЕР-п1ифрование)

Первое, что нужно сделать, - посмотреть, какие сетевые адаптеры имеются


у нас на компьютере:

sudo ifconfig -а

Вывод будет содержать имена и подробное описание всех сетевых интер­


фейсов, которые удалось обнаружить утилите ifconfig. Если не был обнару­
жен желаемый, то причина заключается только в одном - нет драйверов
для него и не включена поддержка этого интерфейса в ядре Linux. Обычно
беспроводной интерфейс называется wlanO. Запустим его:

sudo ifconfig wlanO up

Опция ир говорит команде ifconfig запустить для работы ("поднять") сетевое


устройство.
Теперь нам надо сканировать эфир вокруг себя на наличие доступных
беспроводных сетей:

sudo iwlist wlanO scan

Здесь wlanO - имя нашего адаптера, scan - режим сканирования сетей.

•.------------------.------.----------------....... -.-............ --.......-. ----. -81


Результатом работы iwlist будет детальный отчет, из которого на данном
этапе нас интересует только одна строчка: ESSID:"Some_Name". Значение
параметра ESSID ("Some_Name") - это имя беспроводной точки доступа.
Теперь мы знаем, к какой конкретно Wi-Fi-ceти мы будем подключаться.
Выполняем подключение:

sudo iwconfig wlanO essid Имя сети key Пароль

Здесь все просто: мы указываем имя адаптера, SSID сети и пароль для
подключения к ней.
Команда iwconfig по умолчанию использует для ключа шифрования данные
в шестнадцатеричном виде НЕХ. Если вы хотите указать ключ в виде
простого текста (ASCII), вам необходимо использовать опцию s.
Например, так:

sudo iwconfig wlanO essid Some Name key s:Wireless_Key

Соединение установлено.
Последний шаг- получаем от dhcp-cepвepa Wi-Fi-точки IР-адрес:

sudo dhclient wlanO

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


Можно упростить процесс установки соединения, написав скрипт подклю­
чения, в котором мы объединим все эти команды в одно целое:

#!/Ыn/bash
ifconfig wlanO up
iwconfig wlanO essid Some Name key s:Wireless_Key
sleep 10
dhclient wlanO

Здесь мы добавили еще одну команду s/eep с параметром 1 О секунд. Это ре­
комендуется делать перед получением IР-адреса для надежности установки
соединения.

.....................................................................................
Глава 6. Бсс11ровощ1ая \\'i-l<"i ссн,

Сохраняем этот файл под каким-либо именем (например, wireless_up) и де­


лаем его исполняемым командой:

sudo chmod u+x wireless up

Переносим wireless_ир по пути /usr/local/Ьin, чтобы сделать его глобально


видимым всей системой.
Теперь вам достаточно набрать в командной строке:

sudo wireless_up

... и соединение будет установлено.

6.3. Соединение с точкой доступа по WРА­


шифрованию

Соединение с таким шифрованием поддерживает только утилита


wpa_supplicant, поэтому она нам понадобится. Опять-таки, предполагаем,
что мы знаем ключ (пароль) шифрования этой точки доступа.
Генерируем пароль на основе этого ключа с помощью утилиты wpa_
passphrase, которая входит в состав пакета wpa_supplicant. Дело в том, что
пароль, который мы будем использовать далее, должен быть в виде шестнад­
цатеричного числа:

sudo wpa_passphrase ssid password

Утилита выдаст сгенерированную строку psk, которую мы вставим в конфи­


гурационный файл wpa_supplicant.conf

Network={
ssid=SSID

•.
psk=PSK}

.. .. .... ... ...... . ······ ......................................................... ...


Astra Jjnux 1ASTRA'LINUX"]

Это очень упрощенный файл конфигурации, но он будет работать. Возмож­


но, вам потребуется добавить в шапку этого файла еще одну строку:

ctrl interface = DIR=/var/run/wpa supplicant GROUP=wheel

для предоставления необходимых прав доступа.


Поднимаем" интерфейс wlanO:

sudo ifconfig wlan0 up

Указываем, к какой точке мы хотим подключиться:

sudo iwconfig wlan0 essid ssid

Запускаем утилиту wpa_supplicant на установку соединения:

sudo wpa_supplicant -В -Dwext -i wlan0 -с /etc/wpa supplicant.conf

Разберемся, какие параметры мы указали:

• -В- запускать команду wpa_supp/icant в фоновом режиме;


• -Dwext - говорим утилите wpa_supplicant использовать драйвер wext
для интерфейса wlanO;
• -i-задаем настраиваемый сетевой интерфейс (wlanO в нашем случае);
• -с-указываем путь к конфигурационному файлу wpa_supplicant.conf

Проверяем, что соединение установлено:

sudo iwconfig wlan0

На выводе увидим подробную информацию об интерфейсе wlanO.

,
Получаем локальный IР-адрес:

..................................................................................
1ASTRд*LINUX") 1.,ава 6. Бсс11рово.111ая \\"i-l<'i се11,

sudo dhclient wlanO

Упрощаем процесс, создав в файле /etc/network/interfaces запись следующе­


го вида:

a uto wlanO
i face wlanO inet dhcp
pre-up wpa_supplicant -Bw -Dwext -i wlanO -с /etc/wpa_supplicant.conf
post-down killall -q wpa_su·pplicant

В зависимости от дистрибутива Linux, существует множество способов


настройки Wi-Fi-соединений. Приведенные примеры позволяют настроить
соединение практически в любой Linux-cиcтeмe. Главное, чтобы сам
беспроводной адаптер поддерживался в Linux на уровне драйверов .

•.
. . . . . . . . . . . .. . ... . ... . . ..... -- . ·-... - -.. - - -.......... ·- ...-... -- ........ - ...... . ...
� .. ®

ASTRA LINUX .о1


Глава 7.

VРN-соединение
Astra (,inux (ASTRд*LINUX"j

7.1. Зачем нужн-а VPN


VPN (Virtual Private Network) - очень популярная в последнее время тех­
нология. Технология довольно многогранная и может использоваться для
самых разных целей. Основная ее задача - шифрование трафика, передава­
емого по VРN-соединению. Пользователи используют VPN для достижения
одной из целей - обеспечение анонимности и/или обход блокировки ре­
сурса, получение безопасного доступа к сети предприятия из небезопасной
сети.
Бывает так, что контролирующие органы закрывают доступ к тем или иным
ресурсам, которые пользователь хочет получить. Законность и моральную
сторону этих вопросов рассматрива�:ь не будем, тем более что иногда ресур­
сы закрываются по политическим причинам. Вовсе не означает, что если
ресурс заблокирован, то сразу на нем продают наркотики, оружие и детскую
порнографию. Недавно запретили доступ, например, к Facebook сугубо по
политическим причинам и тем самым способствовали совершенствованию
технических навыков большей части населения - даже обычная домохозяй­


ка знает, что такое VPN и как его использовать для подключения к Facebook.

11!8--------... -........ --. --...... ---....----.....---. ------.......................-..


l .1,ша 7. \'Р:\-сос.11111с1111с

Вторая распространенная причина - подключение к офисной сети для пе­


редачи документов, составляющих коммерческую тайну. Поскольку не всег­
да сеть, через которую проходит соединение с офисом, безопасна (например,
это може.т быть сеть отеля, ресторана, аэропорта), то доверять такому соеди­
нению нельзя и поэтому настраивают передачу данных по зашифрованному
VРN-соединению. Так можно быть уверенным, что важные документы не
будут перехвачены.

7.2. Настройка VРN-подключения в Astra Linux


Настроить VРN-соединение можно так:

1. Из меню Network Manager выберите команду Соединения VPN, Доба­


вить VРN-соединение (рис. 7.1).
2. Появится окно, в котором нужно или выбрать пункт OpenVPN для руч­
ной настройки, или выбрать Импортировать сохраненную конфигура­
цию VPN для использования сгенерированного при настройке учетной
записи файла.
3. При ручной настройке вам нужно указать IР-адрес или имя VPN-cepвepa,
а также сертификаты и пароль пользователя (рис. 7.2). Нажав кнопку
Дополнительно, вы сможете задать дополнительные параметры, напри­
мер порт соединения, если используется нестандартный.
4. Нажмите кнопку Сохранить для создания соединения. Оно появится в
меню Network Manager, и его можно будет выбрать для установки
соединения.


Рис. 7.1. Меню Network Manager

·----------------------------------------------------------------------------------11111
Astra [,i11ux (ASTRд*LINUX')

Выберите тип VPN дпя использования в новом соединении,


Е.сли необходимый тип о тсутствует в списке. то возможн о, не
установлен необходимый VРN•МОдУЛ&а

Рис. 7.2. Выберите Ореп VPN


. � � -
;:.. Изменение VРN-соединение 1 _ □ х

Conne<tIOn name

Шлюз:

АутентификацИJ1
Тип:

СА certifitate

Пользователь certifkate ! (Нет)

Show password

: � Дополнительно..•
�-"�------

Рис. 7.3. Параметры VРN-соединения

.....................................................................................

l .1ава 7. \'l''\-cщ•.11111l'1111c

О ИUЮ/'lьюва,ь нкrандарrны� инrервал nе�огл.:кования: fJ - +

О Ислольюеа1ь Д1111данных сжатт! LZO :.3<f,:;p::.�,-1: т


О Исло11ьэоеа1Ъ соединение ТСР.
[J Задать тиn tжртуапьного устройсТВ-1:

О Исnольэо&аТь нктандартный максимапьный ра:шер элемента n�дачи (MTU)::: "15')1> - +

О ИrоольЭОеать нктандарП!ый р.13мерфрммента UOP: l:ax) - +


CJ ограничить максимз.nьный р.11.мер сеrмент.t ТСР (MSS) тунмем
[] Выбир.1:н, у,uле нные хОt"Ты СЛ)'Ч.tйно
О Сетевой инп�йс tun IPvб
r,:J Периодичность nроверочных nal(@тoe (ping); Jt> +

О Принимать nОА(lинные na;t:.eJы < nюбоrо .1др«.1 (float)


С] МаксимальнОi! число маршрутов: - +

Рис. 7.4. Дополнительные пара.метры соединения

.
... -... ----� ---------------. ---. ---..------.... --... ---.---. -.------------- : -. ----ID
� .. ® �

...
ASTRA LI N UX
DSL-соединение
Astra l,inux
....... - .... - ............. ---------------
�штх]

8.1. Несколько слов о ПSL-доступе

Технология DSL (Digital Subscriber Line) является очень популярной в


последнее время, поскольку сочетает в себе надежность, невысокую стои­
мость и высокую скорость соединения.
Существует различные варианты предоставления DSL-доступа конечному
пользователю. Самый распространенный из них - пользователю предо­
ставляется DSL-модем, который, с одной стороны, подключается к Ethemet­
aдaптepy, а с другой - к телефонной линии через специальный АDSL­
сплиттер (чтобы была возможность принимать обычные звонки).
Второй вариант немного проще - к компьютеру пользователя подведен
лишь Еthеmеt-кабель, ведущий к оборудованию провайдера, а само обору­
дование пользователь даже и не видит.
В обоих случаях нужно настроить РРРоЕ-соединение. Протокол РРРоЕ (РРР
over Ethemet) подразумевает передачу кадров протокола РРР по Еthеrnеt­
линии. В этой главе будет рассмотрена настройка РРРоЕ-клиента, а рас­


смотрение настройки РРРоЕ-сервера выходит за рамки этой книги.

....................................................................................
(дsтяд'\1Nuх·1 1 .1ава Х. DSl,-coc.1111н·111н·

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

8.2. Настройка DSLIPPPoE в Astra Linux

В Astra Linux используется приложение nm-connection-editor - редактор


соединений Network Manager. Соединение РРРоЕ (DSL) настраивается сле­
дующим образом:

1. Нажмите комбинацию клавиш Alt + F2 и введите команду nm-connection­


editor.

2. В окне Сетевые соединения (рис. 8.1) нажмите кнопку+.

3. Выберите тип соединения - DSL/PPPoE и нажмите кнопку Создать (рис.


8.2).
4. В появившемся окне (рис. 8.3) введите имя пользователя и пароль. В
поле Service ничего вводить не нужно. Обязательно выберите Parent
interface - это родительский интерфейс, по которому будут проходить
РРРоЕ-пакеты. Поскольку у нас РРРоЕ - это РРР over Ethernet, то нужно
выбрать сетевой интерфейс Ethernet, к которому подключен DSL-модем.
Если у вас одна сетевая карта, выберите ethO.

5. Перейдите на вкладку Основные.

6. Если вы хотите, чтобы соединение было доступно всем пользователям,


включите флажок Все пользователи могут подключаться к этой сети
на вкладке Основные.

7. Если вы хотите, чтобы соединение устанавливалось автоматически, вклю­


чите флажок Connect automatically with priority и выберите приоритет
соединения. Да, локализация Astra Linux оставляет желать лучшего, хотя
позиционируется он как отечественный дистрибутив.

•. ---------------.---. ---.. ---.---..---.---..--..-.......-..-...·-.-............... tD


.\str·a l.i1111x

8. На вкладке Параметр РРР ничего интересного. Можно разве что отклю­


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

9. На вкладке Параметры 1Pv4 можно указать статический IР-адрес соеди­


нения. Обычно соединения настраиваются по протоколу РРРоЕ, но если
у вашего провайдера другие мысли на этот счет, можно выбрать значе­
ние Вручную из списка Method и указать IР-адрес, маску сети и шлюз
по умолчанию, а также серверы DNS и домены поиска (рис. 8.4).

10. Если у вас несколько DSL-подключений к разным провайдерам, тогда


введите название соединения в верхней части экрана. В противном слу­
чае его можно оставить без изменений.

11. Нажмите кнопку Сохранить


:,rn сетеаыfl соединения _ а х

После дне-е щпольювание "

Проводное соединение 1
► Wikfi

Рис. 8.1. Сетевые соединения


- tl "
им, Последнее исrюльзование- ,.

Проводное соединение 1
► Wi-fi

Q Выберите тип соедИнениJI


V Выберите тиn создаваемого соединения.

Если при создании VРN<оединения, оно не отображается в


сnио:.е, во:1можно, не устаноапен соответствующий модУль \/PN.

DSUPPPOE

о,менить

Рис. 8.2. Выбор типа соединения

.....................................................................................
/ASTRд*LINUX.] l .1ана Х. l)Sl,-coc.11111c111tt'

...,,
�fPP (JPQW:,�. Па,Е:�� -�•.
"'-

ethO • ! l� daim interface

РРР interface

Username: Ьаg11·а

Password

О Показывать пароль

Рис. 8.3. Основные параметры РРРоЕ-соединения

Доnолнмте.nьны@ С'Татмчес.kИе адреса

Шлю, Доб.Jsюь

Удалить

Additional ONS serve�

AdditIOnгl se.1rth domains

Рис. 8.4. Параметры IPv4


································································-·················-1111
Astra l,inux
··········----------------------
(Asтм*
uiwx]

8.3. Программа pppoeconj: настройка DSL­


соединения на сервере без графического
интерфейса

В дистрибутивах DeЬian, а также во многих других, основанных на DeЬian,


имеется утилита pppoeconf, которая представляет собой псевдографический
конфигуратор РРРоЕ-соединения.
Единственный неприятный момент, связанный с использованием этого кон­
фигуратора, - то, что по умолчанию он не установлен. Для его установки
введите команду:

sudo apt install pppoeconf

Не беспокойтесь! Даже если у вас в данный момент нет графического ин­


терфейса ( вы его не устанавливали, поскольку настраиваете сервер, следо­
вательно, вы не можете запустить NetworkМanager для настройки DSL) и
нет соединения с Интернетом (поскольку у вас DSL-подключение, которое
вам нечем пока что настроить), программа все равно будет установлена. Она
имеется на установочном DVD-диске DeЬian и будет загружена с его репо­
зитария.
После установки программы выполните команду:

# pppoeconf

Рис. 8.5. Найдено только одно Etliernet-ycmpoйcmвo


Запустите конфигуратор, который или предложит выбрать Еthеmеt-интерфейс
для РРРоЕ-доступа, или сообщит, что найдено только одно устройство (рис.

llli'································••7•·················-····························
(АSТRд*LINUX"] 1. 1ава Х. l)SJ,-cor.11111t•1111r

8.5). Далее конфигуратор начнет поиск активных РРРоЕ-концентраторов че­


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

Рис. 8.6. Выберите Yes

После этого нужно ввести имя пользователя и пароль, необходимые для под­
ключения к вашему Интернет-провайдеру.
Сервер может сконфигурировать систему клиента, в том числе назначить ей
IР-адреса DNS-cepвepoв. Нужно ли автоматически внести эти IР-адреса в
/etc/resolv.conf? Думаю, не нужно отказываться от этой возможности (рис.
8.7).

Рис. 8. 7. Внести IР-адреса DNS-cepвepoв в /etc/resolv.conj?

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


. ....... ... .. ........ .. ....... ············· ....................................... ..
Лstra l,inux

Рис. 8.8. Опять выберите Yes


1

Предпоследний вопрос - нужно ли устанавливать соединение при загрузке


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

# pon dsl-provider

Разорвать соединение можно командой poff:

# poff dsl-provider

8.4. Программа pppoe-setup

В некоторых дистрибутивах нет конфигуратора pppoeconf. Зато имеется


конфигуратор pppoe-setup, который находится в пакете rp-pppoe. По умол­
чанию этот пакет отсутствует и его нужно установить:


sudo apt install rp-pppoe

1111 · --. ---. -----.--. --------.--------.----.---.---..--.----.---..---.-------------. -.


I :,ава Х. DSl,-соединен11е

Далее запустите конфигуратор pppoe-setup. Здесь нет даже псевдографи­


ческого интерфейса. Конфигуратор просто задает вам ряд вопросов, на ко­
торые вы должны ответить. Далее будет приведен вывод конфигуратора, а
ответы на вопросы будут выделены жирным (то, что вы должны ответить),
мои комментарии - курсивом.

sudo pppoe-setup

Welcome to the РРРоЕ client setup. First, I will run some checks on
your system to make sure the РРРоЕ client is installed properly...

LOGIN NАМЕ

Enter your Login Name (default root): <введите ваш лоrин>

INTERFACE

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

Enter the Ethernet interface connected to the РРРоЕ modem


For Solaris, this is likely to Ье something like /dev/hme0.
For Linux, it will Ье ethX, where 'Х' is а number.
(default eth0): ethO

Если ответить по, соединение будет доступно постоянно. Если указать


количество секунд простоя, то по их истечении соединение будет разорвано.

Do you want the link to come up on demand, or stay up continuously?


If you want it to come up on demand, enter the idle time in seconds
after which the link should Ье dropped. If you want the link to
stay up permanently, enter 'no' (two letters, lower-case.)
NOTE: Demand-activated links do not interact well with dynamic IP
addresses. You may have some proЫems with demand-activated links.
Enter the demand value (default no): no

DNS

Далее нужно ввести IР-адреса первичного и вторичного DNS-cepвepoв.

Please enter the IP address of your ISP's primary DNS server.


If your ISP claims that 'the server will provide dynamic DNS addresses',
enter 'server' (all lower-case) here.
If you just press enter, I will assume you know what you are
doing and not modify your DNS setup.
Enter the DNS information here: 8.8.8.8

, _-------------------................................--.. --... --.---.. --..---. ---tlLI


Astra l,inux --------------------------------
Please enter the IP address of your ISP's secondary DNS server.
If you just press eriter, I will assume there is only one DNS server.
Enter the secondary DNS server address here: 8.8.4.4

PASSWORD

Введите пароль для соединения и повторите ввод.

Please enter your Password: <ваш пароль>


Please re-enter your Password: <ваш пароль>

USERCTRL

Можно или нет обычному пользователю запускать и останавливать DSL-соединение?


На сервере имеет смысл запретить это, поэтому выбираем по. А на обычной
рабочей станции для настройки РРРоЕ вы вряд ли будете использовать этот
конфигуратор.

Please enter 'yes' (three letters, lower-case.) if you want to allow


normal user to start or stop DSL connection (default yes): no

FIREWALLING

Please choose the firewall rules to use. Note that these rules are
very basic. You are strongly encouraged to use а more sophisticated
firewall setup; however, these will provide basic security. If you
are running any servers оп your machine, you must choose 'NONE' and
set up firewalling yourself. Otherwise, the firewall rules will deny
access to all standard servers like Web, e-mail, ftp, etc. If you
are using SSH, the rules will Ыосk outgoing SSH connections which
allocate а privileged source port.

The firewall choices are:


О - NONE: This script will not set any firewall rules. You are responsiЫe
for ensuring the security of your machine. You are STRONGLY
recommended to use some kind of firewall rules.
1 - STANDALONE: Appropriate for а basic stand-alone web-surfing workstation
2 - МASQUERADE: Appropriate for а machine acting as an Internet gateway
for а LAN

Укажите тип брандмауэра, просто введите пока О, чтобы конфигуратор не


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

Choose а type of firewall (0-2): О

Start this connection at boot time


Устанавливать ли соединение при загрузке системы?

111!1-·· ......... ·······.. -···............. ·-...·····--..····-··· ...................... .



(ASTRt°L1Nux·1 l .1,ша Х. l>Sl.-coc.1111tl'lllll'

Do you want to start this connection at boot time?


Please enter по or yes (default по) :yes

Сводка по указанным вами данным

** Summary of what you entered **

Ethernet Interface: eth0


User name: userl0l
Activate-on-demand: No
Primary DNS: 8.8.8.8
Secondary DNS: 8.8.4.4
Firewalling: NONE
User Control: попе

Сохранить изменения?

Accept these settings and adjust configuration files (y/n)? у


Adjusting /etc/sysconfig/network-scripts/ifcfg-ppp0
Adjusting /etc/resolv.conf
(But first backing it up to /etc/resolv.conf.bak)
Adjusting /etc/ppp/chap-secrets and /etc/ppp/pap-secrets
(But first backing it up to /etc/ppp/chap-secrets.bak)
(But first backing it up to /etc/ppp/pap-secrets.bak)

Congratulations, it should Ье all set up!

Туре '/sbin/ifup рррО' to bring up your xDSL link and '/sbin/ifdown рррО'
to bring it down.
Туре '/sЬin/pppoe-status /etc/sysconfig/network-scripts/ifcfg-ppp0'
to see the link status.

Внимательно прочитайте все, что сообщит вам конфигуратор после сохра­


нения настроек. Он сообщает, что вся конфигурация будет, записана в файл /
etc/sysconfig/network-scripts/ifcfg-pppO. Также будет изменен файл /etc/resolv.
conf - в него будет внесена информация DNS, а старая версия этого файла
будет называться /etc/resolv.conf.bak.
Имя пользователя и пароль будут добавлены в файлы /etc/ppp/chap-secrets
и /etc/ppp/pap-secrets (методы аутентификации СНАР и РАР используются
наиболее часто).
Чтобы вручную установить РРРоЕ-подключение, введите команду:

sudo /sbin/ifup рррО


Astra Linux @mtuмux')
--------------------------------
fiгewall setup: howeveг, tl1ese wiJI provjde basic security. lf you
are гunniпg any servers оп your масhiпе, you nist choose 'NONE' a11d
set up fiгewalling yoнгself. Otheгwise, t11e firewall Г\tles will deny
access to all standaгd serveгs like \Jeb, e-мail, ftp, etc. lf you
с,ге using SSti, the rules wi 11 Ыосk outgoi11g SSH co11nectio11s wJ1ich
аllocate а pгivileged source рогt.

Тhе fiгewal1 c}юices аге:


0 - NONE: 'I11is script will not set any firewall rules. You аге гesponsiЫe
for ensuгing the secuгity of your мachine. You are SТRONGLY
recomrrended to use some kiпd of fire1..1all гules.
1 - STANDALONE: Appropгiate for а basic st<шd-alone &.1eb-suгfing ...orkstation
2 - r1-"-ISQUERADE: Appropriate fог а macJ1ine acting as an lnternet gatet.1ay
rог d LAN
Choose а type of fiгewall (0-2): 0

Start this connection at Ъооt t ime

Do you 1«шt to staгt tl1is coпnectiоп аt boot t irte?


Please епtег no or yes (defau]t по):

- Sнпmагу of what you enteгed

Etl1ernet lnteгface: eth0


Useг наmе: useг101
Activate-oп-deмand: tto
Primaгy DNS: 8.8.8.В
Secondary DNS: 8.8.8 .1
Fiгewalling: ttONE
LJscr Con·tro1 : no
Accept these settings and adjust configнгation fi les (y/n)? у
Adjнstiнg /etc/syscoпfig/nett.Юrk-scгipts/ifcfg-ppp0
Adjusting /etc/resolv.conf
(But first ha.ckiнg it up to /etc/resolv.conf .Ъаk)
Adjнst iнg /etc/ppp/chap-secrets and /etc/ppp/pa1J-secrets
(Bu·t fiгst backing it up to /etc/ppp/chap-secrets.bak)
(But first Ъacki,1g it up to /etc/ppp/pap-secгets.bak)

Coнgгatultttions, it slюuld Ье all set up!

Туре '/sЬin/ifнp ррр0' to hri1·ч1 up your xDSL liнk and '/sЬin/ifdown ррр0'
to bring it down.
Туре '/sЬiп/pppoe-status /etc/syscoнfig/network-scripts/ifcfg-ppp0'
to see the link status,

(rootfHocalhost -не

Рис. 8.9. Процесс настройки РРРоЕ с помощью pppoe-setup

Чтобы вручную разорвать РРРоЕ-подключение, используется другая команда:

/sbin/ifdown рррО

Просмотреть состояние вашего соединения можно с помощью команд:

/sbin/pppoe-status
/etc/sysconfig/network-scripts/ifcfg-pppO

111!1---. ---..---·---·---..---·---..---.---·.---.---··--··-------· ----..-------.----·-. •


Глава 9.

Установка программ в
Astra Linux
Astra l-inux

9.1. Способы установки программ

Существует три способа установки пр огр амм: компиляция из исходных


кодов, из пакетов, из снапов.
Первый способ устарел и сейчас используется очень редко - когда нет
другого способа установить ту или иную программу на свой компьютер.
Выглядит все это так: вы сначала устанавливаете программное обеспечение
разработчика (заголовочные файлы, компилятор gcc, библиотеки, различ­
ные утилиты вроде make и т.д. ), затем загружаете и распаковываете архив с
исходными кодами программы. Запускаете компиляцию и ждете, пока про­
грамма будет "собрана" из исходников. Даже если все пройдет гладко и вам
не придется адаптировать исходные коды (что требует определенных зна­
ний) под свою систему, процесс компиляции занимает много времени. Уда­
лить "установленную" таким образом программу можно только вручную.
Сегодня все мыслимое и немыслимое программное обеспечение поставля­
ется в уже откомпилированном виде. Самостоятельная сборка (компиляция)
программного обеспечения имеет смысл только в случаях, если вам нужно
установить программу, но для вашей архитектуры 1 /дистрибутива нет пакета
или же вы хотите получить самую послещ-1юю версию программы - когда

..
разработчики еще не успели создать пакет для вашего дистрибутива.

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

. . . - ... -... - -... -.. -- -... - .. ·- -... - . - - - - - . - - -.. - - . - - .. - - - - - - - -. - - -· .. - -.. - -.. - - --.
IJ1ава 9. Ус, а11овка 11por рамм в Astra Linux

Второй способ -установка из пакета - гораздо проще. Вы получаете пакет


с программой и устанавливаете его. Пакет содержит уже откомпилирован­
ную программу и необходимые для работы этой программы файлы, напри­
мер, файлы конфигурации, страницы руководства и др. При удалении пакета
вся эта информация будет централизованно удалена, и вам не придется ис­
следовать каждый каталог системы и вручную удалять остатки программы.
Максимум, что может пойти не так при установке пакета, - это нарушение
зависимостей. Об этом мы поговорим далее в этой главе. Забегая наперед,
скажу, что обычно для удовлетворения зависимостей нужно удалить или
установить какие-то другие пакеты. Это несложно, и в некоторых случаях
система сама справляется с поставленной задачей. Установка программы из
пакета занимает считанные секунды, в крайнем случае - минуты, большая
часть времени уходит на загрузку самого пакета из Интернета.
Получить пакет можно как вручную, собственноручно скачав его из сайта
разработчика, так и воспользоваться менеджером установки пакетов, кото­
рый сам скачает пакет из репозитария и установит его.
Третий способ, снапы - относительно недавний. Как уже было отмече-.
но, при установке пакета могут понадобиться дополнительные пакеты. Как
правило, это пакеты с какими-то библиотеками. Иногда происходит так, что
нужная библиотека отсутствует в вашем дистрибутиве как таковая или кон­
фликтует с имеющейся версией библиотеки. Особенно часто такое происхо­
дит, если вы пытаетесь установить пакет не из репозитария своего дистри­
бутива, а скачанный с сайта разработчика. Чтобы избавиться от подобных
танцев с бубном, были придуманы снапы.
Снап содержит свою программу и все необходимые для ее работы библио­
теки. При этом программа, установленная со. снапа, будет использовать не
системную версию библиотеки, а ту версию, которая шла со снапом. В ре­
зультате программа будет выполняться корректно, и ее установка никак не
отразится на других программах, поскольку процесс установки никак не
затрагивает имеющиеся в системе библиотеки. О снапах мы еще поговорим
отдельно в этой главе.

9.2. Типы пакетов и их содержимое


Существует два формата пакетов - DEB (расширение .deb) и RPM (.rpm).
Первые используются в DеЬiаn-совместимых дистрибутивах - Ubuntu,

•. ----. -------------. -------. ---. ---..---.. --.. ----. ---.----.. ----------------------ID


Astra Linux, Mint и др. Второй тип используется в RеdНаt-совместимых -
RНEL, Fedora, CentOS, openSUSE и т.д.
Astra Linux (ASTRд*L1Nux·1

Независимо от формата пакетов в самом пакете, кроме устанавливаемой


программы и вспомогательных файлов, содержится различная служебная
информация: информация о разработчике, о версии программного продукта,
информация о зависимостях и конфликтах, пути для установки (указывают,
куда должны быть скопированы файлы, имеющиеся в пакете, в процессе его
установки).
Отдельного разговора заслуживает информация о зависимостях и конфлик­
тах. Некоторые пакеты для своей работы требуют установки дополнитель­
ных пакетов. Например, пакет fly-admin-dm требует для своей работы мно­
жества других пакетов - kio, libcб, fly-data, fly-dm и т.д. Говорят, что пакет
fly-admin-dm зависит от пакетов kio, libcб, fly-data, fly-dm и т.д. В свою
очередь эти пакеты могут зависеть от других пакетов. При установке па­
кета fly-admin-dm менеджер пакетов выполнит разрешение зависимости, то
есть установит все пакеты, от которых зависит наш пакет, и все пакеты, от
которого зависят другие устанавливаемые пакеты. Может получиться, что
для установки одной небольшой программы будет установлено очень много
других пакетов, от которых зависит эта программа. Но ничего не поделаешь
- если программа вам нужна, то придется пойти на это. Как вариант -
найти аналогичную программу.
Некоторые программы могут находиться в системе только в единственном
экземпляре. Например, почтовый агент может быть установлен только один,
иначе между ними произойдет конфликт. Поэтому пакет А может конфлик­
товать с пакетом Б. Если у вас установлен А, а вы пытаетесь установить Б,
менеджер пакетов сообщит о конфликте и предложит или отказаться от уста­
новки, или перед установкой пакета Б удалить пакет А.

9.3. Источники пакетов

Список источников пакетов в порядке убывания их популярности:


• Репозитарии - каждый дистрибутив работает с собственным репози-
тарием (хранилищем) пакетов. Да, для установки программного обеспе­
чения вам понадобится доступ к Интернету, но это самый современный
способ установки. Репозитарии позволяют эффективно управлять обнов­

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

- --- - - -- ---- - - - -- ---- - - - -- ---- - - -- - - - ... - -.. --... -.. ---... -. - - ---. --. - - - . - - - - . - _,
1 ASТRA.LINux·1 l .1ава 9. Ус I а1юв�-:а 11ро1 ра,ш в Astra Liпux

• Установочный диск - ранее дистрибутивы Linux распространялись на


DVD-дисках (некоторые - на одном, некоторые - на нескольких). На
DVD, кроме самой системы, была и львиная доля программного обеспе­
чения, которая только может понадобиться пользователю. Все программ­
ное обеспечение при установке системы не устанавливалось, но была
возможность установки с инсталляционного носителя после установ­
ки. Когда доступ к Интернету был медленным и дорогим, пользователи
предпочитали устанавливать пакеты с DVD-диска. Преимущество этого
способа в том, что не нужно загружать пакеты с удаленного сервера, что
экономило время и деньги. Сейчас же доступ к Интернету в большин­
стве случаев высокоскоростной (даже 1 О Мбит/с считается высокоско­
ростным) и безлимитный, поэтому чаще всего на DVD-диске содержится
только самое необходимое программное обеспечение, а все остальное
загружается из Интернета. К тому же ПО с DVD наверняка устареет к
моменту его установки, а из репозитария будет загружена более новая
версия - пакеты в репозитариях периодически обновляются.
• Сайт разработчика программного обеспечения - иногда программ­
ное обеспечение не включено в состав репозитария дистрибутива. Это
может произойти по разным причинам. Например, программное обе­
спечение является проприетарным (коммерческим) или же просто узко­
специализированным и его не стали включать в состав дистрибутива. В
этом случае вам нужно самостоятельно скачать пакеты и установить их.
В некоторых случаях разработчики предоставляют доступ к собственным
репозитариям, из которых можно загрузить все необходимые пакеты.

9.4. Менеджеры пакетов

Изначально в RedНat и DeЬian использовались программы rpm и dpkg. Сей­


час обе эти программы все еще входят в состав дистрибутивов, но использо­
вать их крайне не рекомендуется. Дело в том, что эти программы ничего не
"знают" о зависимостях между пакетами. Если для работы пакета А нужен
пакет Б, то программа даже толком не сообщит о том, какой пакет нужен для
установки пакета А. Она сообщит о том, что для установки пакета А нужна,
например, библиотека liЬ40, а в каком DЕВ-пакете находится эта библиотека
и откуда ее нужно заполучить - вам придется догадаться самому.

•. -·.--...--·.--...--..--...--.. -... ----.--.·--.. --..·-.... -.... -..--...--... -.. ----ID


\stra l,i1111,

Также программы rpm и dpkg ничего не знают о репозитариях, поэтому удел


этого менеджера - установка пакета из локального источника. Желательно,
чтобы для работы устанавливаемого пакета не требовались другие пакеты
- ведь о зависимостях эти программы, как уже было отмечено, ничего не
знают. В репозитариях содержится информация обо всем дереве зависимо­
стей. Например, пакет А может зависеть от пакета Б, пакет Б - от пакетов
В, Г и Д. Менеджеры пакетов, такие как apt, установят все необходимые
пакеты в необходимом порядке, чего не дождешься от программ rpm и dpkg.
Именно поэтому для управления пакетами рекомендуется использовать ме­
неджеры пакетов. Вот неполный список возможностей таких программ:

• Поиск пакетов в репозитариях;


• Установка пакетов из репозитариев;
• Установка/удаление пакетов с разрешением зависимостей и конфликтов;
• Обновление пакетов.

Принцип работы менеджера пакетов простой. Представим, что вы устанав­


ливаете пакет А. Менеджер производит поиск вашего пакета по списку всех
установленных репозитариев. В одном из репозитариев ваш пакет точно бу­
дет, в противном случае менеджер сообщит о том, что пакет не найден. Да­
лее менеджер смотрит на список зависимостей и если есть пакеты, от которых
зависит наш пакет А, то они также загружаются и устанавливаются - до
установки пакета А. Затем производится загрузка и установка самого паке­
та А.
Установка программного обеспечения в Linux требует прав root. Поэтому
нужно сначала запускать любые команды управления программным обеспе­
чением через команду sudo. Например:

sudo apt install mc

В дистрибутивах DeЬian, Ubuntu, Astra Linux и других, которые основаны на


DeЬian, используется менеджер пакетов apt. В других дистрибутивах могут
использоваться другие менеджеры, например, в Fedora используется dnf, в
CentOS и старых версиях Fedora - yum. В openSUSE используется свой ме­

....
неджер пакетов zypper.

•.
- - - - -- - - - - - - - - - - - - - - - - - .. - - - ... - .. - - ... - .... . - . ..... .. - - - . -- . --- - - - - - - -- . - --- - - -
1Jl;IBa 9. Ус1 ановка IIро1 рамм в Astra l.inux

Далее будет рассмотрен менеджер пакетов apt. При установке пакетов apt
разрешает зависимости. Вы просто указываете, какой пакет вы хотите уста­
новить, а что будет происходить дальше - уже не ваша забота. Вас инте­
ресует конечный результат. Лишь бы требуемый пакет был в репозитариях.

Примечание. В старых версиях Debian и Ubuntu использовалась


команда apt-get вместо apt. Основные параметры (см. табл. 9.1)
у этих двух команд такие же, нет смысла рассматривать уста­
ревшую версию менеджера пакетов. Если вам нужно работать
со старой версией, обратитесь к странице руководства (man apt­
get).

Список репозитариев хранится в файле /etc/apt/sources.list. Содержимое это­


го файла показано на рис. 9.1.

Рис. 9.1. Файл sources.list

Вы вряд ли будете вручную редактировать этот файл. Исключения могут


составить лишь ситуации, когда вы добавляете сторонний репозитарий, со­
держащий какую-то программу, чтобы установить ее впоследствии с помо­
щью apt. В отличие от UЬuntu, в Astra Linux есть всего один основной репо­

. ...
зитарий и одно зеркало на Яндексе, что существенно упрощает управление

•.
репозитариями.

. . -· ... -- .. -................ ·-... -- ... -. ----..... --....-... ·- ... --. ---· .. -... -
Astra l-inux 1 ASTRA.LINux·1

Формат вызова команды apt следующий:

sudo apt [опции] команды [пакет]

В качестве примера приведу команду установки пакета mc:

sudo apt install mc

Обратите внимание, что я запускаю команду от имени root. Если запустить


команду apt через команду sudo (sudo apt install synaptic), нужно, чтобы
пользователь, который запускает sudo, был внесен в файл /etc/sudoers.
По умолчанию пользователь, которого вы создаете при установке DeЬian, не
вносится в этот файл, поэтому нужно или получать права root командой su,
или добавить пользователя в файл /etc/sudoers.
Основные команды apt приведены в таблице 9.1.

Таблица 9.1. Основные команды менеджера пакетов apt

Команда Описание

install <список Устанавливает пакеты из списка. Элементы списка раз-


пакетов> деляются пробелами

remove <список Удаляет пакеты из списка. Элементы списка разделя-


пакетов> ются пробелами 1

Удаляет не только пакеты, но их конфигурационные


файлы. Это означает, что если вы установили какую-
нибудь программу, настроили ее, а потом ·удалили ко-
purge <список мандой apt remove, то конфигурационный файл этой
пакетов> программы останется в системе. Если вы теперь уста-
ловите эту программу снова, то можно будет использо-
вать предыдущий конфигурационный файл, так как он
не был удален

check Поиск нарушенных зависимостей

ID---------------------------------------------------------------------------------· •
l .1ава L)_ Ус I а1ювка 11ро1 ра,1м в Astra Li1шx

Очищает локальное хранилище полученных пакетов.


При установке пакеты из репозитария загружаются в
каталог var/cache/apt/archive. При интенсивной уста­
clean новке программного обеспечения в этом каталоге на­
капливается довольно много пакетов, поэтому очистка
хранилища помогает сэкономить дисковое простран­
ство

upgrade [список Обновляет указанные пакеты, если пакеты не заданы,


пакетов] обновляет все пакеты, требующие обновления

full-upgrade Обновляет всю систему

Синхронизирует внутреннюю базу данных о пакетах


update с источниками пакетов, которые описаны в /etc/apt/
sources.list

Когда вы устанавливаете пакет, то часто устанавлива­


ются дополнительные пакеты, являющиеся его зависи­
мостями. Если теперь вы удалите этот пакет, то зави­
autoremove
симости останутся в системе. Команда apt autoremove
удаляет эти зависимости, но только те, которые не
нужны другим установленным пакетам

Выводит список пакетов, соответствующих какому-то


критерию. Примеры приведены далее.
Вывести список установленных в системе пакетов:
apt list --installed
Вывести список пакетов, которые требуют обновления
list
(у которых вышла новая версия):
apt list --upgradaЬ!e
Вывести список всех пакетов, доступных для вашей
системы:
apt list --all-versions


show <пакет> Выводит информацию о пакете

. . - - . - . - ... - -.. ---- . -......... -.. - -... - -- . - -... - -.. -......... -............... - ... ...
Данная команда выполняет поиск указанного слова в
search <слово> названии пакетов и в описании пакетов. Поддержива-
ются регулярные выражения

Открывает файл /etc/apt/sources.list в текстовом редак-


торе для редактирования, после сохранения изменений
и закрытия редактора выполняет проверку файла на
edit-sources
предмет ошибок. В случае наличия ошибок выводит
предложение на повторное редактирование файла, что-
бы исправить их

9.5. Графические средства установки программ

Установка программ из пакетов имеет свои недостатки. Самый главный из


них - вам нужно знать имя пакета, в котором находится нужная вам
программа. Если вы следуете какому-то руководству, то особых проблем нет
- открыл терминал, ввел команду установки нужного пакета и все. Когда
вы знаете имя пакета или команду установки, все хорошо. Но если таких по­
знаний у вас нет, тогда вам нужно или найти имя пакета в Интернете, или же
воспользоваться графическими средствами для установки программ.

J:ti9-ds-�de-,,
f�{..еrообод1<ь1й1 3М-d5-Ь,;;5e.jJl:>s
Hyt<:onyr,:т1�WJ<U>1ЙJ .12ps бNU ,12р5 • 'Aflyt/11ng tu Pu�tflpl' tort�rte! Jrnl pн�tty•P,lfllff
м�инисrрщю1uнм� а,оемw щ,;,t ro tМ11p�rt Afi! corr.p,щьtt_y m sh.arIO UC.•• ,ю,,;,уvеn.юм
АА!.а�">1m,�жр,:,11.1и1<-1с1,1сrемы
f..1.1',o .:;.1кмь1� dis.p� inl,;,r""'1"°'1 0<1 J.CPJ �t'!i
&.i6Ji,,,пt'IIM tool 10 9e<1er,1.i.-laiнr k...,, l!Wn!.s_
,~N·•----�·---
Ае-сеп c:ontrol li1t ut"ilitifl

f'e1y11t.TiTlolfIOilGK.I

Ар>mн�

141Н9 mo-.ero11('1>1('1<... 1698)'(1'�-- О с (IUJ..ti-0!.0 д,1,11 �__,wюw,_.., Oд1"1:J'4,l.lle,.,иll

Рис. 9.2. Менеджер пакетов Synaptic


ID-..---.---....-. ---...---...-.....-.-..-.-.....--...--...-....---.-... -.--.--.. --. •
Глава 9. Установка программ в Astra Linux

В состав дистрибутива Astra Linux входит, на наш взгляд, один из самых


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

444tйii:ifJi.Я+,,\A4 #§ ewe+ '** ·•


�::l�•blse
0 J�'} d�ti��-de,.,
0 JR�-d� t,3w-�t>:.

АД,..:,,;м.sрир<.>1,.,.,.,�·с�+сте,...,, О ,1t,
A,1.,..,.1.,np.ч:><�i.J,,и�u,(r�...�•I III a:t
5�J;.,д;,..о<.,;:>;,
;;,,('\�>'IJT.,�o<

511t11><·J:""''-µ.!3P<l�'l�J Полr­
s"бмшт_.. - р,нр..б,-,,�,. Ш<>• GNU .:.21
EК!l'v1G•r.>1(1<-pup.I0G"'I@(><<'· nк�de:,

1-,;;;t,;щ.ai�. ,;Jps �:.,11еа ,,· ,1 te·,� :,; ,,,,�::,.:,,;н ,an�N'<<"' t,л t�..1"t$
t<) ;.щ�erl;..! d<.*.>9�щ,ns ,t ,, .>t!''! ta !�t 'f<J� uw � iv1 3r,y �'"d о! f�on
t<'l!{d'1,\'<1';dUJt>'ltft•dHCOdlf,д9�·, . .1v,i,;,.-.; te-x,,k,

14J\!I п,1��н,и е сnщ.:�. 1!>9S-yr•.:.и;:,'11<i-><O. о, ow,obl:;;,t,,1.,, О,:.т, у<:�;;,,ю&><.и!об"оаr-�..иР, с д,,11удdм,_,,.,.

[0&1-
Рис. 9.3. Отмечаем для изменений

Установленные пакеты отмечаются зеленым квадратиком. У неустановлен­


ных квадратик неокрашенный. Чтобы установить пакет, щелкните на нем
правой кнопкой мыши и выберите команду Отметить для установки (рис.
9.3). Значок пакета будет изменен на квадратик с желтой стрелкой. Можете
выбрать другие пакеты, которые вы хотите установить. Когда будете готовы,
нажмите кнопку Применить для установки пакетов (рис. 9.4).
Менеджер пакетов покажет, какой размер будет загружен из· Интернета и
сколько пакетов будет установлено. Дождитесь установки пакета (рис. 9.6).

•..............-.......................······· ......... ·-..-. -......--............· ID


После этого вы можете использовать установленную программу.
Astra l�irшx

,,

� Доб•вить в очередь нюбходммые мsменения1

1/IJJ' �"=�-n-rp.irн�дpyr�n«erw.r.1ю,:o
.._оо.од,u.10 .....nоп"мт1,.fАЩ,ьщ.,@ММtпw�

.. Дn'ly{"'d>IOIIO(..

"'"""
t.mi:,2
GNU .t2ps - 'Anything to Р

....
-.:1,ff
tiNU а2р� <.C<>ver� fif,,s ,nt<:> Ро
r-..c:i'd<'lla..itlo,mat.u,ualfytwcp.1,9
iUH('-.1>,d,r,gp..g,,,,head;;-,,,,щtiu�
dat� r,1,J ft.l>'e'\t'Ct �upp!ied l\<!-Юer�
:,�w�U aspr�:!y pнnt.11'9 fw aWIO<!

I-Ы.!illк:Шiy. a2psst.1r.t-dasate1tttoJ..----------'---...;..---'
!о JIOl"t'•iU'! <.lele<}Jt.w;,;; 11 •� '-'� to l!ityr,;., .,,.., !� for а,1у kJl!d r.>ffil,i-;.
:<>i!:can.Jlscd,g.,.,\mdnuaipi!gM.d,,ifile-,,;.1<!')<,r,(o .•.•

Рис. 9.4. Разрешение зависимостей

!""а$и!р\ Pн,grarn<!'long U119u..Jo


3119-d,s-Ьм.�


fty
�-s--t,-1_�,,
fl)-{>,е<!Ю6одны;i1 m-d--t>il5#--iit.s
,О �- Вн@сти сл•дующи@ И:JM@Hf!HИ.lt?
ft:,{tonyrcт11:;..:»m<il)
-- nрон,р;,т� rrn«:QК i,.w,--.1. �.11. rем, �� оwм 6у1JУТ вwn011-of.

• Дn>1у,::танотм
•Бе1ИЗМ-><IIЙ

S..,б,1и,;»11t<И(Uf1!1>..,...,)
GNU ot2ps - 'Anything to Ре
Б116,11Ю•�._., (1-<1' смободнt<ill
6"611нон•1,и - р,щ�."lООт�а
Б•16nмоа1<., - p•i;i.1001«� 1un1 G!>iU alos <O<W<t:t>. f�.il'>- �it�Pc�• 1t.р,а�коео1>ис•wма
Библн,н�кv. - 1'-'-1;:l<iOO'l�a \>И• r,•<e delault f01mat us.u�llyiWO о �"�•�tiудrтобш!еп•м1,1

■' P?!i#i-Щ ::�1;:�:::t::�:��::�.:


Е>16.т,оа�" - ст;,!)�� ! s,.;,roun�;J\9 D"!J'!''- hмd��W\1:h 4"°""'�н.;-�.,та6удеt\((НМUМ�
4?17 !<8 будет IЮЮ.118:ЮUж:t
0
!1'0-�& �об�од..мо <ЮА)"•"...,

j l-<l'!{Dщ;,fly.йp,1t;,,t""1asal"xt
ПP'!-l'lf'"

i :;::�::::�:;;.:��:�",,"',"",.-.,-,.-�1'"0...-
______________.

Рис. 9.5. Применение изменений

На вкладке Состояние, Установленные находится список уже установлен­


ных программ. Напротив каждой программы есть кнопка Удалить, исполь­
зующаяся для удаления программы.

.......... -···· ....... -- ................................. ·--· ....... .... -····· ..... .



Глава 9. Установка программ в Astra Li11ux

Иэменения nрименены

C0Jr.laJ�li@iiiiPil8il1· ;g;;;::_.._

i#ЕШМФ!&ЧШН&,1
Рис. 9.6. Пакетустаиовлен

-·· *ММ "'


н.,_,.,п..,Jе;,,.>i'1ь•! lill d2,,
ШJ, i-- Ш-Dii\iii.m
У.:н,ме..1екн..,•1вру,..,;ую)
.к1
R! •.,:,p�;,.:i.,,.,forma!.;<,n ,:;-, АСР! с-�К4\.
У,,,1н,;зале,41,.,,е(r.:,,�.и1.. ,,ом";ID 1,p,-,,.,pm·>'t и;1,pi�•,:,•kн1111<ngrr,.,ny.\(.P\ ,:;,,,...,.,t,
Yп�"OeJ'!"l'l•t,<t' !!X'i,Ф81''1<tм"r. · g .Jcp,-s,;;,r,,:;,,i .t,,,c;<> я:,,р•.� !,:;,, �.,n,il,ng Ь.1� ,о.СР<�ffit1 �,,�r- .-� (>,f' p,:,w,:, h<>'S<'}.""!

�dd .11nd re.move uie.rs amJ 9ro�ps

11,� ,>.jC�.>,J� щc\t,cj"� t;.,., ,;,ddu,..,, �n<J ct.c'"""'. ,.\,,.,..,,..,,.,,_\� k, ""�•­


' ,md1er,ю�•"9'-'"''s

,\с;1,неr �,,,! 1h<:..-,s"""P""�"•�tt \ЛО ,1щ1 &!i)-,,,->'c>.><S. t>Pilt� � 'щm"


!
,... tor;:<..-v{ .. -\)_Jг<;_.,· ..m,' ·,.., ..\.. k.<,.·y

, 702 n3�e�� • criиr.�"- 1102 уп,,,,_,.,.�,.� О< Qщ>'!Э><i!,и =Jд,,� У<:'""""в�wоо,...,!1.�� ..,..�. ') .,,_�,. удт,�""'"

C0Ji-lФ181 �.--.:...;....Чiilr.iCllr.,.ilМII
Рис. 9. 7. Установлет1ые программы

9.6. Оu1ибка при выполнении apt: Unahle to


acquire the dpkg lock lva1"/lihldpkg/lock
К сожалению, время от времени при работе с Linux возникают различные

. ...
ошибки. Одна из наиболее часто встречающихся звучит так: Не удалось

. -· .... ---.. ---· ... ·- ·-.. -· .. - . --- .. ··--.. ··--- .. -. ·------· .. -··. ·--· ...... -·--·
Astra Linux

получить доступ к файлу блокировки lvar/liЬ/dpkg/lock-frontend - ореп (11:


Ресурс вре.меюю недоступен). Ошибка возникает при попытке установить
пакет в UЬuntu с помощью команды apt install.
Сообщение об ошибке может немного отличаться в зависимости от различ­
ных условий. Например, могут появляться следующие ошибки:

Е: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily


unavailaЫe)
Е: UnaЫe to lock the administration directory (/var/liЬ/dpkg/), is
another process using it?
Е: Could not get lock /var/liЬ/apt/lists/lock - open (11: Resource
temporarily unavailaЫe)
Е: UnaЫe to lock directory /var/liЬ/apt/lists/
Е: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily
unavailaЫe)
Е: UnaЫe to lock the administration directory (/var/lib/dpkg/), is another
process using it?

Данные ошибки появляются, когда программа apt не может получить


доступ к файлу блокировки /var/liЬ/dpkg/lock*. Этот файл используется, что­
бы запретить одновременное выполнение операций, связанных с управле­
нием пакетами в системе, так как при одновременном изменении данных о
пакетах будет нарушена целостность "пакетной базы".
Обычно существуют две основные причины появления описанных оши­
бок:

1. В данный момент уже выполняется экземпляр программы apt;


2. Предыдущий вызов apt завершился некорректно.

Сначала нужно проверить, не запущен ли уже другой экземпляр программы


apt. Выполним следующую команду, чтобы проверить, есть ли apt в списке
запущенных процессов:

ps aux I grep -i apt

Вывод может быть таким:


mark 8425 О.О О.О 79516 3752 pts/1 S+ 10:31 0:00 sudo apt install inkscape
mark 8456 О.О О.О 38892 944 pts/0 S+ 10:32 0:00 grep --color=auto -i apt

1D. --. -. -..-------..--..---.. --.-----. -... --...--.. ---. -.... --... ---..... ---. --.....
� Глава 9. Установка программ в Astra Linux

В первой строке мы видим, что уже есть работающий экземпляр программы


apt, который имеет PID (идентификатор) 8425. Вторая строка относится к
нашей команде grep, которую мы запустили с аргументом apt, поэтому она
вывела саму себя. Итак, нас интересует только первая строка.
Если вы уверены, что не запускали программу apt сами, или она не запуще­
на в фоновом режиме, например, выполняется автоматическое обновление
системы, то нужно принудительно завершить ее выполнение. Для этого вос­
пользуемся командой kill -9. Команде нужно указать числовой идентифика­
тор процесса. В нашем случае это 8425:

sudo kill -9 8425

После выполнения данной команды процесс с идентификатором 8425 завер­


шится.
Если первый способ вам не помог, то нужно удалить все файлы блокировки.
Для этого выполняем команды:

sudo rm /var/liЬ/apt/lists/lock
sudo rm /v�r/cache/apt/archives/lock
sudo rm /var/liЬ/dpkg/lock
sudo rm /var/liЬ/dpkg/lock-frontend

Если при выполнении каких-нибудь из этих команд появится сообщение:


rm: невозможно удалить '/var/ .. /lock': Нет такого файла или
каталога, это нормально, не обращайте на него внимания.
После этого нужно выполнить переконфигурацию пакетов:

sudo dpkg --configure -а

В следующей главе мы поговорим о популярных программах, которые, воз­


можно, вам захочется установить.


.....................................................................................
� .. ®

ASTRA LI N UX
Глава 10.

Популярные программы
Astra (jnux

10.1. Офисные пакеты


Когда-то в Linux было многообразие офисных пакетов. Со временем все эти
пакеты были вытеснены одним - LibreOffice, в котором содержатся все
необходимые аналоги программ из MS Office:

• Текст LibreOffice (LibreOffice Writer) - текстовый процессор, аналог


MS Word.
• Таблица LibreOffice (LibreOffice Calc) - электронная таблица, аналог
MS Excel.
• Презентация LibreOffice (LibreOffice Impress) - презентации, аналог
MS PowerPoint.
• Рисунок LibreOffice (LibreOffice Draw) - векторный графический ре-
дактор для создания блок-схем и диаграмм, аналог MS Visio.
• База данных (LibreOffice Base) - база данных, аналог MS Access.

Данные программы не просто выполняют те же функции, что и программы


из пакета MS Office, но и поддерживают форматы MS Office. Да, интерфейс
программ несколько специфичен (напоминает старые версии MS Office), но
при желании можно разобраться. К тому же есть версия LibreOffice для
Windows. Офисный пакет полностью бесплатный; поэтому есть неплохая
возможность сэкономить, если установить его еще и на Windows-мaшины .

ID························-···-·····-································-····-·······-·
Гшва I О. Поr1).1яр11ые 11ро1 рам\lы

� • � • 11'i1 - !'J <::1 Q I r. ,; · ' J, • -: ·' q_ А , 11'! ; !:,! 1h I'fl ; 1'> � • О • � !;" Q [1 ffil ' Ч 81 1 - ♦ - /
· nilю11i,,й Ж К � S- А Р,0 L 'J',. • А �, "; � :;; • ,;; • � ;!! ;1 • :,:
.. 8W)anyrovтм�f.,4.�pu,&,t)O"fМ
. Ц.� ЧN-:---:-·'""-
""'-
, .-�'-. ,-.---
. -. .,.......,--

Рис. 10.1. Текстовый процессор LibreO.ffice Writer

Если же какого-то функционала MS Office будет не хватать, тогда не забы­


вайте об онлайн-версии Office 365, которую можно использовать прямо в
браузере.

10.2. Графические текстовые редакторы

Для редактирования обычного текста (без форматирования), например, сце­


нариев командной оболочки или конфигурационных файлов, можно обой­
тись стандартным текстовым редактором Kate. Для редактирования файлов
конфигурации нужны права root, поэтому запускать редактор нужно из тер­
минала так:

sudo kate <имя_файла>

Штатный текстовый редактор обладает возможностью поиска и замены тек­


ста, нумерует строки (Вид, Границы, Номера строк), показывает позицию
курсора. Для редактирования текстовых файлов конфигурации - то, что
нужно.

•. . . .. . . .. . . . . . . . . . . . . . . . .. . . . . .. . . .. . . . . . . . .. . . . . . . . .. . . . . . . . . . . . .. . . . . .. . . . . . . . . . tlil
Astra Linux

Сер&�к настро;,к� C11�5J(;I

, ----
-: : ,-ас --, ,, -,-
:i

i -,�\-�;-g: --
. -� -,
hоШ а..

&: • The folJ.,...1ng 1.1111!''$. are a,.,-1r.ib!1, tcr l"vO c<1palll" hс-,нс;
::! ]сн::а!hа,., 1p!i-loc<1lhD:,;.t 1p!i-Jcopt,;1<:k
:
ff02::1 1pб-.1lln"de,:;
ff02:::21pб-allrt><.:te,·'$.

8ПАВКА От("J)'Т11,,1 4 .,, Ulf.-S ..., NQfflla/ "

Рис. 10.2. Текстовый редактор kate

Если возможностей этого редактора вам окажется мало, используя Synaptic,


вы всегда сможете установить редактор Atom (рис. 10.3). Это профессио­
нальный текстовый редактор для программистов, и благодаря системе пла­
гинов его возможности практически безграничны (рис. 10.4).

ФHiitйФФ41-iШ'i&fWMt41 тiМ ; ·Мiiii н ем;чМММltf1мм1н еммичма ·Wi


с l\iJ

■ ■
е,е
_ ,с Пм<)"t Ус-.1><❖11.-'-•"- � f'JX;,,ц;"�" е,,р,;1('1

fjмmмtfЦ@§DJ;D!lilillllRr.=�--MC='lillliiillili.WIМt!
!IIIII lffl"Pt\i,'!!!!l'@, ,lf!!''"!
��� - -1C:J i!ИlfliilFIЫ""llil'!
- : :-:11!::�- - !:IЧIC-::1,�- !!i(!J;ff��!!Jr,; �wiiil!t'!Щ:,"1-- -•
: !m!lllll.'lli!f!Мl'IIIIIB
, El!:il�l.'J)�
l l'J
-:C l:-!11
gro11

■ ,мj,к,11-P'Wft1HfiWЩ#1 3'MM?P &Ш
=dxity •,1�Lrr,:,,..,i:,•з1(1;,,.,,.,.,,1,c0</<!,!(>'

!��tPO!<;-y,;,u'.;,m,1,;,<s,;�1;•"·н1m
0 t,,1,.,,,f11h

о .1<:!"<>Ч«<(;•k•1,-,.,,-d,,o,-{<1,1t.,J

0 ,ж,"11�h-1 <0,:t,,м,,,:,o,;,,k•1•�ted>rortp'.;g.•щ


Aton:1te11tt

MJI, Чl!!-6-f #1&

Рис. 10.3. Устаповка текстового редактораАtот

....................................................................................

(ASTRд*LINUX"J Г1ава I О. По11�.шр11ые 11ро1 ра�шы

Рис. 10.4. Текстовый редактор Atom

10.3. Консольные текстовые редакторы

Работая в графическом режиме, вам вряд ли захочется использовать консоль­


ные текстовые редакторы . Но при администрировании виртуального сервера
выбора у вас не будет.
Виртуальные серверы Linux не оснащены каким-либо графическим интер­
фейсом, поэтому их администрирование осуществляется через консоль -
или посредством WеЬ-консоли, встроенной в панель управления, или же
по SSH. Часто у администратора возникает потребность отредактировать
какой-то файл конфигурации сервера. Проблем с этим, как правило, никаких
нет - запускаешь предпочитаемый текстовый редактор, открываешь файл,
редактируешь и сохраняешь. Однако редактирование некоторых файлов
конфигурации, в частности /etc/sudoers, осуществляется только посредством
специальных утилит (в данном случае - visudo или crontab - при редакти­
ровании расписания планировщика), которые запускают текстовый редактор
по умолчанию. Таковым редактором является редактор vi, перекочевавший в
современные дистрибутивы Linux с 1970-х годов, и его нельзя назвать удоб­
ным. В этой заметке будут рассмотрены некоторые текстовые редакторы,

. ...
и будет показано, как по умолчанию установить понравившийся редактор,

•.
.. .... -... - -.. -- ... -... - - -.. - -... -.. - -... - .... -.... -.. - - ........... - - ... -.... -
Astra Linux

чтобы он вызывался при редактировании некоторых специальных файлов


конфигурации, которые нельзя редактировать вручную.
Самый удобный - редактор nano (раньше он назывался pico и входил в
состав почтового клиента pine). Редактор nano изображен на рис. 10.5.
Мful:i,·ISФMHl4 N MiiWF т &

Рис. 10.5. Текстовый редактор папо

Внизу (под текстом) есть подсказка по комбинациям клавиш для управле­


ния редактором. Символ лозначает <Ctrl>. То есть для выхода из редактора
нужно нажать комбинацию клавиш <Ctrl>+<X>, а для сохранения текста­
<Сtrl>+<О>.
В пакет mc ( файловый менеджер) входит довольно удобный редактор mcedit,
который запускается при нажатии клавиши <F4> в mc (рис. 10.6). При жела­
нии вы можете запустить редактор отдельно:

mcedit <имя файла>

Классический синий фон, подсказки функциональных клавиш внизу и т.д.


Редактор не менее удобен, чем nano.
Выбор конкретного редактора зависит от ваших личных предпочтений. Но
в любом случае, каждый из представленных редакторов будет удобнее, чем


стандартный vi.

ID-·.......... ········ ...............................................................


!�1ава I О. По11уляриыс 11ро1 ра�п,ы

Рис. 1 О. 6. Редактор mcedit

Некоторые утилиты, например, crontab, visudo, вызывают текстовый редак­


тор по умолчанию для редактирования тех или иных данных. В этом случае
будет вызван vi, который, как было отмечено, неудобен. Чтобы вызывался
нужный вам редактор, его нужно сделать редактором по умолчанию. Для
этого нужно установить переменную окружения EDIТOR:

which nano
/Ьin/nano
export EDITOR=/bin/nano

Первая команда (which пап о) сообщает путь к выбранному редактору. Далее


этот путь нам нужно указать в качестве значения переменной EDITOR.
Вот только помните, что при следующем входе в систему переменная
EDITOR будет установлена по умолчанию. Чтобы этого не произошло, нуж­
но отредактировать файл .bashrc того пользователя, от имени которого буде­
те редактировать конфигурационные файлы. В случае с root это будет файл
/root/.bashrc:


cd ~
nano .ba;shrc

··················································································flD
Astra Linux

В этот файл нужно добавить команду:


export EDITOR=/bin/nano

Мi##iWN¾iltФ, *'' , fif f±Hf5Mft iM

Рис. 10. 7. Меию выбора редактора


М"·ФI ti1§i@#€5 4% ee1tиiSМfMSM№М'ifi MWiWiifiWlfifWMSII 15 М!

Рис. 10.8. При редактироваиии расписаиия (комаида сгопtаЬ -е) открылся папо.


Настройка успешиа

ID-··················································································
Г:�ава 1 О. Популярные nрогра\11\!ы
,,.
[ASTRA LINUX")

Сохраните файл. Теперь нужно выйти из системы (команда exit) и сно­


ва войти (по SSH или через WеЬ-консоль). После этого запустите любую
команду, вызывающую стандартный текстовый редактор, например, sudo
crontab -е. Если вы увидели выбранный вами текстовый редактор, значит,
все прошло нормально (рис. 10.8). В противном случае вы где-то допусти­
ли ошибку. С другой стороны, в Astra Linux при первом запуске crontab
открывается меню выбора редактора, что существенно упрощает процесс
настройки (рис. 10.7).

10.4. Программы для работь1 с Интернетом

Основные программы для работы с Интернетом установлены по умолча­


нию. к ним относятся:

• Браузер Firefox.
• Браузер Chromium (аналог Chrome).
• Почтовый клиент ThunderЬird.
• Мессенджер Psi+ (Jabber).
• Топеnt-клиент qBittorent.

По большому счету основной программой сейчас является браузер. Даже


почтовый клиент уже не нужен, так как доступ к почтовому интерфей­
су осуществляется через веб-интерфейс. Аналогично, посредством веб­
интерфейса осуществляется доступ к популярным мессенджерам:

• Skype-https://www.skype.com/ru/features/skype-weЫ
• W hatsApp-https://web.whatsapp.com/

Мессенджер Psi+ -это Jabber, который не очень распространен, и вы вряд


ли будете его использовать.

10.5. Linuх-аналоги Windows-пpoгpaмм


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

, _. ----------------.. ---. ------------------. --.. --. -----------------.. --..---· --. 8111


Astra Linux @м"wruxJ
но в большинстве случаев есть несколько аналогов. Таблица 1 О. 1 поможет
вам выбрать Linuх-программу на все случаи жизни.

Таблица 10.1. Аналоги Windows-npoгpaмм

Название Windоws-приложения Linuх-аналоги

gThumb
F-Spot
ShotweJ
ACDSee
DigiKam
PhotoQt
GPicView

Acгonis True Image CloneZilla

Adobe Audition Агdош

LibгeOffice Fгaw
Inkscape
Adobe lllustгatoг
sKJ
Хага Xtreme
GIMP
Adobe Photoslюp Кrita
Photivo

Adobe Lightroom DarktaЫe

Open Movie Editor


Adobe Premiere Pro
PiTiVi

Xpdf
Adobe Reader Evince
Google Chrome


llli)-··················································································
1ASTRA.LINux·1 I .1ава I О. ll1111y.1яp11ыr нрогра,шы

Alcohol 120 Furius ISO Mount

AnyDesk Remmina

Apple iCloud for Windows iCloud for Linux

Ardour Ardour

Audacity Ardour

ClamAV
Avira Antivirus Avira AntiVir Personal
Avast Antivirus Linux Home Edition

Blender Blender

CINEMA4D Blender

Inkscape
LibreOffice Draw
Corel Draw
sKl
Xara Xtreme

I-Nex
CPUZ CPU-X
CPU-G

FOFF
CuteFTP FileZilla
gFTP

CyberLink PowerDVD Totem

Furius ISO Mount


Daemon Tools
Etcher


DarktaЫe DarktaЫe

··················································································ID
Astra Linux

DaVinci Resolve Avidemux

Deluge Transmission

Discord Discord

Avira AntiVir Personal


Dr. Web Antivirus Avast Antivirus Linux Home Edition
ClamAV

Dropbox Dropbox

eMule aMule

Avira AntiVir Personal


ESET NOD32 Antivirus Avast Antivirus Linux Home Edition
ClamAV

Etcher Etcher

Boostnote
MyNotex
Evernote
Zim
CherryTree

FileZilla FileZilla

FineReader glmageReader

Xpdf
Foxit Reader E vince
Aesop

Freehand sKl

.... . •
GeoGebra GeoGebra

--- ...... --- ....................... ··-..................... ·····- ---- ····-- . .


1�1ава 1 О. Поп�·.1яр11ые r1рограммы

GOG Steam

Google Chrome Google Chrome

Google Earth
Google Earth
МаrЫе
MPlayer
InterVideo WinDVD
Totem

gThumb
GPicView
IrfanView
· Mirage
Ristretto

LMMS Ardour

Maple, Magma, Mathematica, Matlab Sage

Мауа Blender

Microsoft Access LibreOffice Base

LibreOffice Calc
Microsoft Excel
IВМ Lotus Symphony

Microsoft Office PuЫisher LibreOffice Draw

Microsoft OneNote CherryTree

Evolution
Microsoft Outlook ThunderЬird
Sylpheed
Evolution
Microsoft Outlook Express ThunderЬird
Sylpheed
.............-....... -· ... --..-...--.-... -.--. --. -.--· -. ----.--. -.-------...-.. ---1111
Astra Linux

Gnome Paint
Microsoft Paint
Pinta

IВМ Lotus Symphony


Microsoft PowerPoint
LibreOffice Impress

Microsoft Visio LibreOffice Draw

Code Blocks
К.Develop
Visual Studio Code
NetBeans
Eclipse
Qt Creator

Microsoft Windows Joumal Xoшnal

MP!ayer
Lollypop
Celluloid
Totem
Microsoft Windows Media Player GMusicBrowser
Clementine
Rhythmbox
Audacious
VLC

Open Movie Editor


PiTiVi
Microsoft Windows Movie Maker FlowЬ!ade
Lightworks
Avidemux

1118-------. -------------. --. ·--·-------·-------· --·---.. --. -·---.--·---·---···-··· ...с,


1.,ава I О. По11�.1яр11ыс 11ро1 pa�l\tЫ

MpЗtag EasyTag

МРУ Celluloid

кзь
Nero Brasero
GnomeBaker

emelFM2
DouЫe Commander
Norton Commander
GNOME Commander
Midnight Commander

JuffEd
Notepad++ Medit
Atom

Opera
Opera Google Chrome
Epiphany

Partition Magic GParted

Picasa DigiKam

qBittoпent Transmission

Qt Creator КDevelop

QuarkXPress Scribus

Steadyflow
ReGet
JDownloader

Remote Desktop Connection Remmina

•. ---------------------. -------. ----------------------------------.---. ------------ID


Astra Lin11x

Rufus Etcher

Medit
Screem
Scribes
Scite Bluefish Editor
SciTE
Komodo Edit
Geany

SketchUp Blender

Skype Skype

Slack Discord

SmartFTP Filezilla

SolidWшks FreeCAD

Steam Steam

TeamViewer Remmina

ThunderЬird
The Bat
Claws Mail

4Pane
GNOME Commander
Total Commander Midnight Commander
Кrusader
emelFM2

UltraISO Etcher


ID--. -----------------------------------------------------. -------. --------. --. ----.
/�1ава 1 О. Поnу.1яр11ые программы

Universal USB Installer Etcher

qBittoпent
Deluge
uToпent
Tixati
Transmission

Viber Viber

PiTiVi
VirtualDub Avidemux
Open Movie Editor

Visual Studio Code Visual Studio Code

VLC VLC

Win32 Disk Imager Etcher

Decibel Audio Player


QMMP
Clementine
Totem
WinAMP
Audacious
AlsaPlayer
Sayonara
MPlayer

Wireshark for Windows Wireshark

Inkscape
Xara
XaraXtreme

•. --.... --.. -...,......-....-· --...-............. -.....-...-........-.......-.....-·-111


Astra Linux �

DigiKam
Mirage
XnView GPicView
PhotoQt
gThumb

Zoom Discord

3D Studio Мах Blender


ID········ ......................................................................... .

Глава 11.

Запуск Windоws­
приложений в Astra Linux
Astra Linux 1 ASTRA*LINUX"j

Wine - это программа с открытым исходным кодом, которая позволяет


запускать Windоws-приложения в среде Linux и MacOS. Можно сказать,
что это слой совместимости между операционной системой и Windоws­
программами. Вызовы процедур из библиотек Windows подменяются на
системные вызовы Linux, и с помощью этого появляется возможность вы­
полнять Windows-пpoгpaммы в Linux.
Обратите внимание: Wine - не виртуальная машина, в которую устанавли­
вается Windows (которую, по-хорошему, нужно лицензировать). Это плат­
форма запуска Windоws-приложений, которой не нужна сама Windows!
Соответственно и лицензировать ничего не нужно.
Платформа Wine постоянно развивается, постоянно выходят новые версии,
в которых больше поддерживаемых функций Windows, исправлены многие
ошибки, добавляется поддержка новых возможностей. Стабильные релизы
Wine выходят приблизительно раз в год, полтора. Но корректирующие,
тестовые релизы есть постоянно, даже по несколько раз в месяц.
За последнее время Wine очень сильно продвинулся в плане запуска игр.
Благодаря библиотеке DXVK уже можно играть даже многие современные
игры Windows без потери производительности. Дальше будет рассмотрена

111---------. --..-------..--... -...--..--...--..--..---..--.... -.. --..-.... ---.. -... '


(ASTRA"LINUX") [�1ана 11. За11усt-.: \\ indо\\s-пр11.южс1шй в Astra Linux

установка Wine UЬuntu 20.04. Установим одну из последних версий из офи­


циальных репозитариев, а также воспользуемся РРА.

11.1. Установка из официального репозитария


Для установки из официального репозитария просто введите команду:

sudo apt install wine

Установка займет много времени, поскольку нужно будет загрузить много


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

Рис. 11.1. Установка Wine

11.2. Настройка после установки

Сразу после установки введите команду:


$ winecfg

·······················----------··-----·-·········································-ID
.\stra LJ,шx [ASTRA*LINUX')

Запустится конфигуратор, основное назначение которого - создать слу­


жебные каталоги, в том числе каталог для диска С:, на который будут уста­
навливаться Windows-пpoгpaммы. В окне конфигуратора выберите версию
Windows. По умолчанию используется Windows 7, но учитывая, что совре­
менные программы постепенно отказываются от ее поддержки, рекоменду­
ется выбрать Windows 10/11.

Рис. 11.2. Установка версии Windows

.,,...,....
.,,.� ... -�
••№мl,t �µ.'

Рис. 11.3. Вкладка "Диски"

ID-----------. -----------------------------.--------. -----------------.. ------. ----..


Глава 11. Запуск Windo"·s-r1pш1oжe1111й в Astra Linux

На вкладке Диски содержится список дисков, которые будут доступны


Windоws-приложениям. По умолчанию содержимое диска С: будет нахо­
диться в каталоге~/. wine/drive_с. Остальные параметры можете не изменять
- вернетесь к ним, когда у вас появится такая необходимость.

11.3. Установка и запуск Windows-пpoгpaммы

Далее будет показан процесс установки и запуска Windows-пpoгpaммы. Мы


будем устанавливать популярный двухпанельный файловый менеджер Total
Commander - помимо всего прочего он пригодится вам для просмотра фай­
ловой системы, которую "видят" устанавливаемые Windоws-приложения.
Скачайте установочный 64-битный ехе-файл с официального сайта
(https://www.ghisler.com/). Он будет помещен в каталог Загрузки.
Введите команды:

$ cd ~/Загрузки
$ wine tcmd95lx64

Рис. 11.4. Программа установки Total Commander

Запустится программа установки Total Commander (рис. 11.4). Произведите


установку, как обычно. По завершении установки вы получите соответству-

··················································································-t:II·
Astra l,i11ux 1ASTRA°L1Nux·1

ющее сообщение (рис. 11.5). Ярлык для установленной программы будет по­
мещен на рабочий стол. Если по какой-либо причине этого не произошло,
перейдите в каталог ~/.wine/drive_c - это и есть ваш виртуальный диск С:.
Далее как обычно - нужно перейти в каталог Program Files, далее - в
каталог, соответствующий названию программы (в нашем случае totalcmd),
и запустить программу так:

wine TOTALCMD64.EXE

Рис. 11.5. Установка завершена

«м ·P-',Jlw•
<П-»07.07.2!12208
<П-»07.07.2022 08:4
<П-»07.0 7.2'02208:41 ·· <П-•)07.07.202208:4Э­
<Пм.»07.07. 202208:43 <П-а>О7.07.202 208:4Э--·
<П-•)07.07.202208:44 ··· <П-•)07.07.202208.44 •-

Рис. 11.6. Total Commander запущен в Linux


alt··········--······················-···-··--········-·-·--···-···--········--·--··· •
!11ава 11. Ja11�ci-. \\'indo\\S-11p11:южe1111й в Ast1·a Linux

Запустите программу (рис. 11.6). Далее вы можете пользоваться ею безо вся­


ких ограничений.

11.4. Список игр и других приложений,


работающих через Wine

Что делать, если не получается запустить приложение в Linux?Во-первых,


попробуйте изменить версию Windows.В некоторых случаях это может по­
мочь.Во-вторых, поищите решение на форумах: скорее всего, вы не един­
ственный, кто столкнулся с такой проблемой, и наверняка решение уже есть.
В-третьих, поищите нужные настройки в базе данных приложений.
На официальном сайте Wine ведется база данных программ и игр, кото­
рые можно запустить через Wine: Wine Application Database (AppDB) -
https://appdb.winehq.org.
Для каждого приложения можно получить информацию об особенностях
его установки, запуска и настройки через Wine, о проблемах и багах, с кото­
рыми можно столкнуться.
База данных постоянно пополняется.В ней насчитывается более 27 200 при­
ложений.Вот некоторые из самых популярных программ и игр, работающих
через Wine (конкретную версию уточняйте в базе данных AppDB):

• Adobe Animate
• Adobe Photoshop
• Microsoft Office
• Total Commander
• Lingvo
• 1С: Предприятие
• Гарант
• КонсультантПлюс
• Final Fantasy XI Online
• StarCraft

•.----------------..---------.-----------------------.---.. -.. ---------. --------. --tD


• World of Warcraft
Astra l,iпux

• Warcraft III
• World of Warcraft 8.3.0
• Counter-Strike: Source
• EVE Online
• Half-Life 2
• Magic: The Gathering Online
• The Sims 3
• StarCraft 1.16.1

11.5. Использование отдельных префиксов


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

WINЕРRЕFIХ="/hоmе/имя_пользователя/.winе/" winecfg

Теперь выполняем саму программу и указываем для нее новый префикс:

WINEPREFIX="/home/ имя пользователя /.wine/" wine /путь/к/файлу/sеtuр.ехе


....................................................................................
Глава 12.

Файловая система
\st.-a l.i1111x [ASTRд*LINUX")

12.1. Какие файловые системы поддерживает


Astra Linux

Операционная система Astra Linux поддерживает очень много файловых


систем. Но самое главное - это модульный принцип организации ядра
Linux. Даже если кто-то сегодня создаст файловую систему, о которой еще
вчера никто ничего не знал, то ему достаточно создать модуль ядра и Linux
будет поддерживать его операционную систему.
Родным для Linux является семейство файловых систем ext*. Самая древняя
файловая система Linux называлась ext (сегодня вы вряд ли с ней столкне­
тесь), затем появились ext2, ехtЗ и ext4. Еще в 2010 году ходили слухи о ext5,
но ее так и не создали.
Файловые системы ехtЗ и ext4 являются журналируемыми, то есть они ве­
дут "журналы" своей работы, что позволяет произвести восстановление
информации в случае сбоя. Журналы работают так: перед осуществлением
операции файловая система записывает в журнал эту операцию, а после вы­
полнения операции - удаляет запись из журнала. Если после занесения ин­
формации в журнал произошел сбой (например, отключение электричества),


то после его устранения (подача электричества) файловая система выполнит

ID---------------------------------------------------------------------------------.
(ASTRд*LINUX"J 1 l,ll!a 12 Фaii. lOIНIИ CJIC I C\la

все действия, которые она не успела выполнить. Конечно, это не панацея и


резервные копии никто не отменял. Но все же лучше, чем ничего.
Однако не во всех дистрибутивах ext4 используется по умолчанию. Linux
также поддерживает и другие файловые системы: XFS, ReiserFS, BtrFS, ZFS,
JFS. Вы можете встретить дистрибутивы, в которых по умолчанию исполь­
зуется одна из этих файловых систем. У каждой из этих файловых систем
есть свои отличия:

• JFS (Journaled File System) -64-битная журналируемая файловая систе­


ма созданная IBM, распространяется по лицензии GPL и благодаря этому
факту она оказалась в Linux. Обладает высокой производительностью, но
у нее маленький размер блока (от 512 байт до 4 Кб), поэтому на серве­
ре данных ее можно использовать с большим успехом, но не на рабочих
станциях, на которых производится обработка видео в реальном времени,
так как размер блока для этих задач будет маловат. В отличие от ехtЗ, в
которую поддержка журнала была добавлена (по сути, ехtЗ - это то же
самое, что и ext2, но с журналом), JFS была изначально журналируемой.
Максимальный размер тома -32 Пб, максимальный размер файла - 4 Пб.
• ReiserFS - самая экономная файловая система, поскольку позволяет
хранить в одном блоке несколько файлов. В других файловых системах
файл должен занимать как минимум 1 блок и получается, что если размер
файла меньше размера блока, то 11остаток" просто не используется. Когда
в системе много небольших файлов, дисковое пространство используется
очень нерационально. В ReiserFS все иначе. Если размер блока, скажем,
4 Кб, то в него могут поместиться несколько файлов общим размером 4
Кб, а не только один, например, два файла по 2 Кб. Максимальный размер
тома и файла зависят от версии ReiserFS и разрядности системы.
• XFS - высокопроизводительная (до 7 Гбайт/с) файловая система, раз­
работанная Silicon Graphics. Изначально была рассчитана на большие
размеры накопителей (более 2 Тб) и большие размеры файлов. Очень
хорошо проявила себя при работе с файлами большого размера. Размер
блока у этой файловой системы - от 512 байт до 64 Кбайта. Выделяет
место экстентами (Extent - указатель на начало и число последователь­
ных блоков). В экстентах выделяется место для хранения файлов, а также
экстентами хранятся свободные блоки. Именно эта файловая система ис­
пользуется по умолчанию в современных версиях Fedora Server.
• Btrfs (B-tree FS, "Better FS" или "Butter FS")-файловая система, раз­


работанная специально для Linux и основанная на структурах Б-деревьев.

....................................................................................
(ASTRд*L1Nux·1

Работает по принципу "копирование при записи" (copy-on-write). Создана


компанией Oracle Corporation в 2007 году, распространяется по лицензии
GPL. Изначально планировалась как конкурент популярной файловой
системы ZFS.
• ZFS (Zettabyte F ile System) - файловая система, созданная в Sun
Microsystems для операционной системы Solaris. Позже она появилась и
в Linux. Ее особенность - полный контроль над физическими и логиче­
скими носителями.

Кроме перечисленных выше файловых систем, Linux поддерживает еще и


файловые системы Windows - FAT, FAT32, NTFS. Также поддерживаются
всевозможные сменные носители вроде оптических дисков, флешек, внеш­
них жестких дисков и, соответственно, файловые системы на этих сменных
носителях. На внешних жестких дисках используются файловые системы
FAT32 или NТFS, если вы специально не переформатировали их в файловую
систему Linux. На оптических дисках могут использоваться UDF, ISO 9660,
Joliet и подобные.

12.2. Какую файловую систему выбрать?


Файловых систем довольно много, так какую из них выбрать для вашей
системы? На рабочих станциях и серверах общего назначения я бы исполь­
зовал ext4 или ReiserFS. Последняя особенно хороша, если у вас много мел­
ких файлов - тогда дисковое пространство будет использоваться более ра­
ционально.
На сервере баз данных лучше использовать JFS - тогда прирост производи­
тельности вам гарантирован. А вот XFS для некоторых видов серверов под­
ходит так себе, однако это не помешало разработчикам F edora Server исполь­
зовать эту файловую систему по умолчанию в своем дистрибутиве (начиная
с версии· 22). Видимо, повлияла высокая производительность и ориентация
на большие объемы накопителей и файлов.
Очень неплохой является файловая система ZFS, особенно она хороша при
управлении различными дисковыми устройствами. Вы можете создать пул и
добавить в него несколько дисковых устройств. Этим ZFS чем-то похожа на
LVM - менеджер логических томов, который мы рассмотрим чуть позднее.

..
Не спешите с выбором файловой системы именно сейчас. В конце этой гла­

'
вы вы найдете подробную информацию об ext4. Может, в ней вьi найдете
ответы на все ваши вопросы и остановите свой выбор на ext4.

. . . . . . . . . . . . . . . . . . . . . . . .. . .. . . .. . . . . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . . . . . .. . . .. . .. .
[�1ава 12. Фаii.ювая сис,с,�а

Выбор файловой системы нужно производить даже не на основе характери­


стик самой файловой системы, а исходя из назначения компьютера. Напри­
мер, для рабочей станции с головой хватит ext4. С сервером сложнее-нуж­
но учитывать, какой это будет сервер. Как уже отмечалось, для сервера БД
-JFS, для хостинга (где хранятся файлы других пользователей)-ReiserFS,
если нужно работать с большими объемами данных -XFS.

12.3. Что нужно знать о файловой системе Linux


12.3.1. Имена файлов и каталогов

Нужно помнить следующие правила именования файлов и каталогов в Linux:

• Linux чувствительна к регистру символов, то есть файлы Document.txt и


document.TXT-этo разные документы.
• В Linux нет понятия "расширение" файла. В Windows мы привыкли, что
последние символы после последней точки (обычно от 1 до 4 символов)
называются расширением. В Linux такого понятия нет. Если кто-то и
употребляет термин "расширение" в Linux, то это только для того, чтобы
бывшим Windоws-пользователям (которыми являемся, по сути, все мы)
было понятнее, что имеется в виду.
• Максимальная длина имени файла -254 символа.
• Имя может содержать любые символы (в том числе и кириллицу), кроме
/ \? < > * "1.
• Разделение элементов пути осуществляется с помощью символа /, а не
\, как в Windows. В Windows мы привыкли к путям вида C:\Users\John, в
Linux используется прямой слеш: /home/john.
• Если имя файла начинается с точки, он считается скрытым. Пример:
.htaccess.

12.3.2. Файлы устройств

Уникальность файловой системы Linux в том, что для каждого устройства в


Linux создается собственный файл в каталоге /dev. Загляните в каталог /dev
-в нем вы найдете множество файлов для всех устройств вашей системы.


Вот примеры некоторых файлов устройств:

• •••••••••.••••.••.••. - .•• - •.••••••.•••.••••••••• с· ............................... ...


[дSTRд*LINUX"]

� /dev/sda-первый жесткий диск, как правило, подключенный к первому


SАТА-контроллеру;
• /dev/sdal -первый раздел на первом жестком диске. Нумерация разде-
лов жестких дисков в Linux начинается с 1;
• /dev/mouse -файл устройства мыши;
• /dev/cpu -файл устройства процессора;
• /dev/cdrom -ваш СD/DVD-привод;
• /dev/random -файл устройства-генератора случайных чисел;
• /dev/ttyl - первая консоль (терминал).

Файлы устройств бывают двух типов: символьные, обмен информацией


с которыми осушествляется посимвольно, и блочные, обмен информацией
с которыми осуществляется блоками данных. Пример символьного устрой­
ства - /dev/ttySO - последовательный (СОМ) порт, пример блочного
устройства -/dev/sdal -раздел жесткого диска.

12.3.3. Корневая файловая система и основные подкаталоги


первого уровня

Самое большое отличие, к которому придется вам привыкнуть, - это нали­


чие корневой файловой системы. Вспомните, как Windows управляет жест­
кими дисками. Представим, что у нас есть жесткий диск с двумя логически­
ми дисками (разделами). Первый будет в Windows называться С:, а второй
- D:. У каждого из этих логических дисков будет свой корневой каталог
-С:\ и D:\.
В Linux все иначе. Представьте, что мы разбили жесткий диск /dev/sda на
два раздела (как и в случае с Windows). Первый будет называться /dev/sdal
(Windows бы его назвала С:), а втopoй-/dev/sda2 (в Windows он был бы D:).
Мы установили Linux на первый раздел /dev/sdal. Точка монтирования этого
раздела будет /, что соответствует корневой файловой системе. Второй раз­

...
дел вообще никак не будет отображаться, пока вы его не подмонтируете.
Подмонтировать можно к любому каталогу. Например, вы можете подмон­


тировать раздел /dev/sda2 к каталогу /home, и тогда домашние каталоги паль-

-- -- --
-------- --------- -------------------- ---- ----- --------- - - -- . - - -·. - - . - . - .....
(ASTRд*LINUX") 1 _ 1,ш,1 1 � Фaii. 1011asi с11с I t•,1a

зователей будут храниться физически на друтом разделе. Точка монтирова­


ния - это каталог, через который осуществляется доступ к другому разделу.
Правильнее сказать, даже к друтой файловой системе, которая физически
может находиться на другом разделе, на друтом жестком диске, на внешнем
жестком диске, флешке и т.д.
Корневая файловая система содержит стандартные каталоги. У каждого ка­
талога есть свое предназначение, например, в каталоге /Ьin хранятся стан­
дартные программы, в каталоге /home - домашние каталоги пользователей,
в каталоге /tmp - временные файлы и т.д. Назначение стандартных катало­
гов приведено в таблице 12.1.

Таблица 12.1. Назначение стандартных каталогов корневой файловой


системы Linux

Каталог Описание

/ Каталог корневой файловой системы

/bln Содержит стандартные утилиты (cat, 1s, ер и т.д.)

Содержит конфигурационный файл загрузчика и некото-


/Ьооt
рые модули загрузчика

/dev Содержит файлы устройств

В этом каталоге находятся конфигурационные файлы


/etc
системы и программ

/home Здесь хранятся домашние каталоги пользователей

/lib Содержит библиотеки и модули

В этом каталоге хранятся восстановленные после некор-


Лost+found
ректного размонтирования файловой системы файлы

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


/misc, /opt
Некоторые программы могут устанавливаться в каталог /opt

Некоторые дистрибутивы монтируют сменные устройства


/media


(оптические диски, флешки) к подкаталогам этого каталога

. -................ - - .. -.... -..... - - ..... - -.. -.... -- .. -.... - ... - - . -- -....... - . .... ...
\st1·:.1 l.illll\ (ASTRд*LINUX"]

Содержит точки монтирования. Как правило, здесь хра-


/mnt нятся стационарные точки монтирования, которые обыч-
но описываются в файле /etc/fstab

/proc Каталог псевдофайловой системы procfs

/root Каталог пользователя root

Содержит системные утилиты. Запускать эти утилиты


/sbln
имеет право только пользователь root

/tmp Содержит временные файлы

Может содержать много чего - пользовательские про-


/usr граммы (несистемные программы), документацию, исход-
ные коды ядра и т.д.

Содержит постоянно изменяющиеся данные системы -


/var
почтовые ящики, очереди печати, блокировки (locks) и т.д.

12.4. Ссылки

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


ными именами. Ссылки бывают жесткими и символическими. Сейчас раз­
беремся, в чем разница. Если на файл указывает хотя бы одна жесткая ссыл­
ка, вы не сможете его удалить. Количество ссылок на файл можно узнать
командой ls -!. Что касается символических ссылок, то вы можете удалить
файл, если на него указывает хоть 100 символических ссылок. После этого
они будут "оборваны" - ссылки, как файлы, останутся на жестком диске, но
они будут указывать на несуществующий файл.
У жестких ссылок есть одно ограничение. Они не могут указывать на файл,
находящийся за пределами файловой системы. Представим, что каталог /tmp
находится физически на одном и том же разделе, что и /. Тогда вы сможете
создать ссылки на файлы, которые находятся в каталоге /tmp. Но если /tmp

,
- это точка монтирования, к которой подмонтирован другой раздел, вы не
сможете создать жесткие ссылки.

------·- .. ·-····· ........... ················· ..... ·-··· ...... ....... ··--..........


1 1,111,1 1 � Фаii.юваи с11с1е,1:1

Для создания ссылок используется команда /п:

ln [-s] файл ссылка

Если параметр -s не указан, то будет создана жесткая ссылка на файл. Если


параметр -s указан, то будет создана символическая ссылка.

12.5. Права доступа


12.5.1. Общие положения

В Astra Linux, как и в любой многопользовательской системе, есть понятия


владельца файла и прав доступа. Владелец - это пользователь, которому
принадлежит файл. В большинстве случаев - это пользователь, создавший
файл.
'
Права доступа определяют, кто и что может сделать с файлом. Права
доступа файла может изменять владелец файла или пользователь root. Вла­
делец может назначить, например, кто имеет право читать и изменять файл.
Владелец также может "подарить" файл другому пользователю. После этого
владельцем станет уже другой пользователь.
Права доступа у пользователя root максимальные, а это означает, что он мо­
жет изменить владельца любого файла (вы можете создать файл, а root может
сделать владельцем любого другого пользователя) и изменить права доступа
любого файла. Пользователь root может удалить и изменить любой файл, мо­
жет создать файл в любой папке и т.д. С одной стороны, это хорошо, но если
злоумышленник завладеет паролем root, то хорошего в этой ситуации мало.
Права доступа в Linux по умолчанию настроены так, что пользователь вла­
деет только своим домашним каталогом /hоmе/<имя_пользователя>.
Поэтому создавать файлы и выполнять другие операции по работе с файла­
ми (удаление, редактирование, копирование и т.д.) пользователь может толь­
ко в этом каталоге и то ·при условии, что файлы принадлежат ему.
Если в домашнем каталоге пользователя root создал файл, пользователь не
сможет удалить или изменить его, поскольку он не является его владельцем.
Сможет ли он прочитать этот файл, зависит от прав доступа к файлу (о них

•....................................................-..-..............-...........tD
мы поговорим ·позже) .
\stп1 l.i1111x (ASTRд*LINUX.]

Остальные файлы, которые находятся за пределами домашнего каталога,


пользователь может только просмотреть, и то если это не запрещено права­
ми доступа. Например, файл /etc/passwd пользователь может просмотреть, а
/etc/shadow - нет. Также пользователь не может создать файлы в корневой
файловой системе или в.любом другом каталоге, который ему не принадле­
жит, если иное не установлено правами доступа к этому каталогу.

12.5.2. Смена владельца файла

Команда chown используется для изменения владельца файла/каталога. Фор­


мат такой:

chown <пользователь> <файл/каталог>

Здесь пользователь - это новый владелец файла . Чтобы подарить другому


пользователю файл, вы должны быть или его владельцем, или пользовате­
лем root.

12.5.3. Определение прав доступа

Для изменения прав доступа используется команда chmod. Для изменения


прав доступа вы должны быть владельцем файла/каталога или же пользова­
телем root. Формат команды следующий:

chmod <права> <файл/каталог>

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

....
на выполнение (обычно используется для программ и сценариев). Право вы­


полнение для каталога - возможность просматривать этот каталог.

-- -- . - - .. - - - . - - - . - - -·.. - -·. --·. --- - -- - . -- - - . - - -- . --·. - -- . -- - - . - .


- - . -- -- . -- - - - --- -
1ASTRд*L1Nux·1 1. 1ава 12. Фaii. юваst cttc l l'\Ja

Права доступа в наборе определяются четко в определенном порядке и мо­


гут быть представлены как в символьном, так и в числовом виде (в двоичной
или восьмеричной системе). Рассмотрим несколько наборов прав доступа:

• 100 - только чтение,


• 11 О - чтение и запись,
• 1О1 - чтение и выполнение,
• 111 - чтение, запись, выполнение.

Учитывая, что права доступа задаются для владельца, группы и остальных


пользователей, полный набор прав доступа может выглядеть так:

111 100 ООО

В этом наборе мы предоставляем полный доступ (в том числе и выполнение)


владельцу, группе владельца разрешено только чтение, остальным пользова­
телям доступ к файлу/каталогу вообще запрещен.
В двоичной системе права доступа мало кто записывает. В основном их пре­
образуют в восьмеричную систему. Если вы забыли, как это делается, то вам
поможет следующая таблица (табл. 12.2).

Таблица 12.2. Преобразование из двоичной в восьмеричную систему

Двоичная система Восьмеричная система


ООО о
001 1

010 2

011 3

100 4

101 5

110 6


111 7

··················································································-ID
Ast1·a l,inux (ASTRд*LINUX"]

Если вы видите право доступа 666, то никакой дьявольщины в нем нет, это
всего лишь полный доступ к обычному файлу (не к программе и не к сцена­
рию). Для каталога полные права доступа выглядят как 777 -чтение, изме­
нение и просмотр каталога для владельца, группы и прочих пользователей.
Просмотреть текущие права доступа можно командой 1s -1 <файл/
каталог>, например:

# 1s -1 config

-rw-r--r--. 1 root root 110375 янв 2 08:28 config

Как мы видим, задано три набора rw-, r--, r--. Выходит, владельцу разреше­
на запись и чтение файла, остальным пользователям (группа и прочие) -
только чтение. В восьмеричной системе этот набор прав доступа выглядит
как 644.
Первый символ (в нашем случае это-) является признаком каталога. Если бы
мы выводили права доступа каталога, то вместо - здесь был бы символ d. Для
файла выводится просто "-".
Символьный способ задания прав доступа немного проще, но лично я пред­
почитаю числовой. Рассмотрим, как использовать символьный:

# chmod +х config

Просмотрим опять права доступа:

# 1s -1 config

-rwxr-xr-x. 1 root root 110375 sep 2 08:28 config

Как видите, право выполнение было добавлено во все три набора прав
доступа.

12.5.4. Специальные права доступа


В Astra Linux есть еще специальные права доступа SUID (Set User ID root) и
SGID (Set Group ID root), позволяющие обычным пользователям запускать
программы, которые требуют для своей работы прав root.
1D .... -... -... --... --.. --....-...................--" ..... "...." -"" ... " ... "."."" "....
1 1,\Ва 12 Фaii.111вas1 CIIC l l'\HI

В современных дистрибутивах Linux вам придется изменять эти права


доступа чрезвычайно редко (может быть даже вообще никогда), но вам нуж­
но знать, как их изменить. Например, если программу /usr/sbin/program вы
хотите разрешить запускать с правами root обычным пользователям, устано­
вите права доступа так:

# chmod u+s /usr/sbin/program

Использование SUID - плохое решение с точки зрения безопасности. Пра­


вильнее использовать команду sudo, если какому-то пользователю будут
нужны права root.

12.6. Атрибуты файла


В Linux кроме прав доступа есть еще и атрибуты файла, подобно атрибутам
файла в других операционных системах. Изменить атрибуты файла можно
командой chattr:

chattr +/-<атрибуты> <файл>

Просмотреть установленные атрибуты можно командой lsattr:

lsattr <файл>

Некоторые полезные атрибуты файлов приведены в таблице 12.3.

Таблица 12.3. Полезные атрибуты файлов

Атрибут Описание

Запрещает изменение, переименование и удаление файла.


Этот атрибут можно установить для критических конфигура-
ционных файлов или для каких-либо других критических дан-
i ных. Установить (как и сбросить) этот атрибут может только
пользователь root или процесс с возможностью САР_LINUX_
IMMUTABLE. Другими словами, сбросить этот атрибут
просто так нельзя - нужны только права root
"·--------------------------------------------�-------------------------------------111
\stп1 l.irшx

При удалении файла с установленным атрибутом и его содер-


и жимое хранится на жестком диске, что позволяет легко вое-
становить файл

Файл будет сжиматься. Можно установить этот атрибут для


больших файлов, содержащих несжатые данные. Доступ к
сжатым файлам будет медленнее, чем к обычным, поэтому
плохое решение - устанавливать этот атрибут для файлов
с
базы данных. Этот атрибут нельзя устанавливать для файлов,
уже содержащих сжатые данные - архивы, JРЕG-фото, МРЗ/
МР4-файлы и т.д. Этим вы не только не уменьшите его раз-
мер, но и замедлите производительность

Данные, записываемые в файл, сразу будут сброшены на диск.


s Аналогично выполнению команды sync сразу после каждой
операции записи в файл

Прямо противоположен атрибуту и. После удаления файла


s принадлежащие ему блоки будут обнулены и восстановить их
уже не получится

Пример установки атрибута:

# chattr +i config

Пример сброса атрибута:

# chattr -i config

12. 7. Поиск файлов

Для поиска файлов вы можете использовать команды which, locate и find.


Первая используется только для поиска программ. Она позволяет опреде­
лить, в каком каталоге находится исполнимый файл той или иной програм­
мы, например:

ID-...-...-........-...---.---. -----------------.---.---.---..--...--...-...--.----.
1ASTRA.LINux·1 1 1ана 12. Фaii.JOIHHI CIIC 1 ('\la

# which pppd
/sЬin/pppd

Данную программу очень удобно использовать администратору, когда нуж­


но вычислить месторасположение программы, например, чтобы указать точ­
ный путь к программе в каком-то сценарии или конфигурационном файле.
Команда locate позволяет произвести быстрый поиск файла. Однако команда
locate будет работать не во всех дистрибутивах, а только там, где доступен
updatedb, который и формирует базу данных, по которой производит поиск
команда locate. Если файл будет на диске, но его не будет в базе данных, то
locate его не найдет - вот в чем основной недостаток этой команды. Для
обновления базы данных нужно ввести команду updatedb (или дождаться,
пока планировщик обновит базу данных).
Преимущество команды locate в том, что поиск файла производится практи­
чески мгновенно, особенно по сравнению с командойfiпd. Однако если фай­
ла не будет в базе данных (файл был создан после обновления базы данных
locate), команда locate его не найдет.
Конфигурация updatedb хранится в файле /etc/updatedb.conf (листинг 12.1).

Листинг 12.1. Файл /etc/updatedb.conf

PRUNE BIND MOUNTS = "yes"


PRUNEFS = "9р afs anon_inodefs auto autofs bdev Ьinfmt_misc cgroup
cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fuse. sshfs
fusectl gfs gfs2 hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs
nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs
sfs sockfs sysfs tmpfs- uЬifs udf usЬfs"
PRUNENAМES = ".git .hg .svn"
PRUNEPATHS = "/afs /media /mnt /net /sfs /tmp /udev /var/cache/ccache
/var/liЬ/yum/yumdb /var/spool/cups /var/spool/squid /var/tmp"

Если параметр PRUNE_BIND_MOUNТS равен yes, файловые системы,


смонтированные в режиме Ьind, не исследуются при помощи updatedb. Па­
раметр PRUNEFS задает типы файловых систем, которые не будут исследо­
ваться updatedb. Аналогично, параметры PRUNENAMES и PRUNEPATHS
задают имена файлов (у нас заданы "расширения") и пути (каталоги).
В листинге 12.1 приведен пример файла update.conf по умолчанию из

•.
Fedora Server. Вы можете отредактировать его под свои нужды, например,

...... -.... -... -... -.... -................ - -... -... -........ -... -.... - ............ ...
.\stra Linux

закомментировать параметр PRUNENAМES, отредактировать параметр


PRUNEPATHS и т.д.
Теперь перейдем к третьей и самой универсальной команде поиска -find.
Формат вызова следующий:

$ find список_поиска выражение

Полное описание команды.fiпd вы найдете в справочной системе (команда


тап mount), а мы рассмотрим несколько примеров.

$ find / -name test.txt

Мы ищем все файлы с именем test.txt, начиная с корневого каталога/. Если


нужно найти все текстовые файлы (*.txt), начиная с корневого каталога, тог­
да команда будет такой:

$ find / -name '*.txt'

Следующая команда ищет только пустые файлы (параметр -empty):

$ find . -empty

Если нужно задать размер файла, тогда можем указать размер явно. В следу­
ющем примере мы задаем размер файла - от 500 до 700 Мб:

$ find ~ -size +500М -size -700М

Команда.fiпd может не только находить файлы, но и выполнять действие для


каждого· найденного файла. В следующем примере мы находим все старые
резервные копии ("расширение" .bak) и удаляем их:

# find / -name *.bak -ok rm {} \;


ID---. ---. ----....-.... -.... ------------. -..------. ----. ----------. -. -.--........ --.
� 1 .1ава 12. Фаii.10вая c11c1c\la

Поиск с помощью find занимает немало времени - ведь нет никакой базы
данных. Команде find нужно "пройтись" по всем каталогам и проверить в
них наличие искомых файлов.

12.8. Монтирование файловых систем


12.8.1. Монтируем файловые системы вручную

Ранее было сказано, что такое точка монтирования - это каталог, через
· который происходит доступ к файловой системе, физически размещенной
на друго;н носителе (другом разделе жесткого диска, флешке, оптическом
диске или даже на другом компьютере).
Для монтирования файловой системы используется команда mount, для раз­
монтирования - umount:

# mount [опции] <имя устройства> <точка монтирования>


# umount <имя устройства или точка монтирования>

Для монтирования файловой системы нужны права mot, поэтому команды


mount и umount нужно вводить с правами root.
Представим, что мы подключили флешку. Если у ·вас один жесткий диск
(/dev/sda), то флешке будет назначено имя /dev/sdb, если жестких дисков два,
то флешке будет назначено следующее имя - /dev/sdc и т.д.
На одном носителе (это касается жестких дисков, флешек и подобных но­
сителей) может быть несколько разделов, которым назначаются номера, ну­
мерация начинается с единицы. Поэтому вы не можете подмонтировать все
устройство /dev/sdc. Вы должны указать номер раздела.
Подмонтируем нашу флешку (пусть это будет устройство /dev/sdc и на нем
будет всего один раздел с номером 1):

# mount /dev/sdcl /mnt/usb

Каталог /mnt/usb - это и есть точка монтирования. Точка монтирования

....
должна существовать до вызова команды mount, то есть вы не можете под­

,
монтировать файловую систему к несуществующему каталогу.

_ - --- . - -- . - - -- - - - - . - - -- - - - - - - --- - - -- - . --- - - -- - - - - - - --- . - -- - . -- .. --- - -- - . - - -- .. -


Astra (j11ю: (ASTRд*LINUX.)

После эт_ого вы можете обращаться к файлам и каталогам на флешке через


каталог /mnt/usb:

# 1s /mnt/usb

Итак, последовательность действий такая: создание точки монтирования


(один раз), монтирование файловой системы, работа с файловой системой
и размонтирование. Размонтирование осуществляется командой umount. В
качестве параметра команды umount нужно передать или название точки
монтирования, или имя устройства:

# mkdir /mnt/usb
# mount /dev/sdcl /mnt/usb
# ер test.txt /mnt/usb
# umount /mnt/usb

Очень важно размонтировать файловую систему, особенно это касается


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

• vfat- файловая система Windows (FAT/FAT32);


• ntfs - файловая система Windows NT;
• ntfs-Зg- драйвер ntfs-Зg для чтения и записи NТFS (рекомендуется);
• ext2/ext3/ext4 -различные версии файловой системы Linux;
• iso9660 -файловая система оптического диска CD/DVD;
• udf -иногда Windows форматирует оптический диск как UDF;
• reiserfs - файловая система ReiserFS;
• smЬfs -файловая система Samba ;
• nfs -сетевая файловая система.


ID---. ---. --.. --... -----. --.. -. --........ -.--......... --......... -.. -.--.---. --.... .
1 1,111а 12. Фaii.11шas1 Cllt'l('\la

Например, в случае с NТFS рекомендуется использовать драйвер ntfs-3g:

# mount -t ntfs-Зg /dev/sdcl /mnt/usb

Параметр -r позволяет смонтировать файловую систему в режиме "только


чтение", параметр -w монтирует файловую систему в режиме "чтение/
запись", но обычно в этом режиме файловая система монтируется по умол­
чанию, поэтому в нем нет необходимости.
Параметр -а монтирует все файловые системы, перечисленные в файле /etc/
fstab, за исключением тех, для которых указана опция noauto.

12.8.2. Имена устройств

Интерфейсов жестких дисков довольно много - IDE (АТА/РАТА), SATA


(Serial АТА), SCSI, USB. Р аньше жесткие диски с интерфейсом IDE назы­
вались в Linux /dev/hd? (?- буква, которая зависит от того, как подключен
жесткий диск). Жесткие диски с интерфейсом SATA и SCSI назывались /dev/
sd? (? - буква диска, соответствующая его порядковому номеру при
подключении к интерфейсу).
Сейчас даже IDЕ-диски называются /dev/sd? (как и SATNSCSI), что сначала
вносило некую путаницу. Но жесткие диски с интерфейсом IDE вышли из
моды и практически не используются. Мода на SСSI-диски также практи­
чески закончилась, поскольку SАТА-диски такие же быстрые, как и SCSI.
Некоторые обеспечивают такую же производительность, как и SCSI -
иногда чуть меньше, иногда - даже больше. Так что SCSI уже можно спи­
сывать со счетов - если вам достался сервер со SСSI-диском, отказываться
от него не стоит, а вот новый сервер будет поставляться или с интерфейсом
SATA, или с интерфейсом SAS.
Интерфейс SAS (Serial Attached SCSI) обратно совместим с интерфейсом
SATA и позволяет последовательно подключать SАТА-диски, обеспечивая
пропускную способность в 6 Гбит/с. Если вы купите сервер с интерфейсом
SAS, то в большинстве случаев он будет оснащен высокопроизводительны­
ми SАТА-дисками, а не SСSI-дисками. Поэтому никакой путаницы уже нет.
Что же касается USВ-дисков (флешки и внешние жесткие диски), то они
также получают обозначение fdev/sd?.


·····························-············-·································-·····ID
Оптические диски (приводы CD/DVD ) в большинстве случаев называются/
dev/sr?, где?- номер привода, нумерация начинается с О.
Чтобы узнать, какие жесткие диски и оптические приводы установлены в
вашем компьютере, введите команды (рис. 12.1):

1s /dev/sd?
1s /dev/s rO

Рис. 12.1. Жесткие и оптические диски

Если у вас один оптический диск, можно смело использовать ссылку /dev/
cdrom. Из рис. 12.1 видно, что у нас установлено два жестких диска -/dev/
sda и/dev/sdb, а также один оптический привод/dev/srO.
Для монтирования недостаточно указать имя всего устройства, нужно уточ­
нить номер раздела. Когда разделов много, вы можете забыть (или не знать),
какой именно раздел вам нуж�н. Вы можете использовать команду fdisk: за­
пустите fdisk <имя устройства>, а затем введите команду р для вывода
таблицы разделов и команду q для выхода изfdisk. Более подробно програм­
му fdisk мы, возможно, рассмотрим позднее.
Посмотрите рис. 12.2. Из него становится понятно, что на нашем жестком
диске есть два раздела -/dev/sdal и/dev/sdЫ.
Кроме коротких имен вроде/dev/sd? в современных дистрибутивах часто ис­
пользуются идентификаторы UUID . Загляните в файл /etc/fstab, и в нем в
больщинстве случаев вместо привычных имен /dev/sd? вы обнаружите вот
такие "страшные" имена:

# В Fedora, Debian, Ubuntu


UUID=2f149af9-3bff-44bd-d16s-ff98s9a7116d / ext4 defaults О 1

,
# openSUSE
/dev/disk/by-id/dm-name-suse-server-root / ext4 defaults 1 1

..................................................................................
1·.1ава 12. Фаii.ювая c11c1c\Ja

Рис. 12.2. Пpoгpa.ммafdisk

Преимущество идентификаторов UUID в том, что они не изменяются, если


вы иначе подключите жесткий диск. Представим, что у вас есть два жестких
диска - /dev/sda и /dev/sdb. На первый вы установили Linux (в раздел /dev/
sdal), а второй используете для хранения данных (на нем всего один раздел
/dev/sdЫ, который монтируется, как /home). Вы отключили оба диска, а за­
тем, подключая, перепутали их местами. В итоге второй диск стал диском
/dev/sda, а первый - /sdb. При загрузке может случиться конфуз, точнее,
система вообще не загрузится. Даже если вы выберете в BIOS SETUP
загрузку со второго жесткого диска, тоже ничего хорошего не выйдет. С
UUID достаточно выбрать загрузку со второго жесткого диска, и система
будет загружена.
Вы можете использовать обычные стандартные имена, а можете использо­
вать UUID-идентификаторы . Узнать, какие UUID-идентификаторы соответ­
ствуют каким обычным именам, можно с помощью команды:

ls -1 /dev/disk/by-uuid/

Вывод этой команды представлен на рис. 12.3.


1 ; , 1 1,

' ',И( t,1t I i •,Н/11 11 ,' 1 t,11t· t,l)bll'if I HI '11111 / /',lfh1


1 ,, ' ,, IH/',1/И 11 11 1'J/.-t 'lf,I, 1 11, 1Нlt111,,,, f ,,,- ,,,,,,(1,,/
1 ,• 1 1 r'(,'J'Jl1/1I /t,'11 1h,',' 11',1 И t,1t f r 1Hl,',t1 0-i / ,,sl'f,11

•.··--··--· .....·--·....··--···-···-·.·--...-···· ...............-......-···-···--··-ID


Рис. 12.3. Соответствие UUID-идентификаторов обычным именам
Лstr·a (,inю:

12.8.3. Монтируем файловые системы при загрузке

Вводить команду mount при каждой загрузке не очень хочется, поэтому про­
ще "прописать" файловые системы в файле /etc/fstab, чтобы система смон­
тировала их при загрузке.
Формат файла /etc/fstab следующий:

устройство точка тип опции флаг_копирования флаг_проверки

Первое поле -это устройство, которое будет монтироваться, второе поле


- точка монтирования. Вы можете использовать как обычные имена, так и
UUID. Третье поле - тип файловой системы. Четвертое поле - параметры
файловой системы (табл. 12.4), последние два поля - это флаг резервной
копии и флаг проверки. Первый флаг определяет, будет ли файловая система
заархивирована командой dump при создании резервной копии (1 - будет,
О -нет). Второй флаг определяет, будет ли файловая система проверяться
программой fsck на наличие ошибок (1, 2 -будет, О-нет). Проверка про­
изводится, если достигнуто максимальное число попыток монтирования для
файловой системы или если файловая система была размонтирована некор­
ректно. Для корневой файловой системы это поле должно содержать 1, для
остальных файловых систем - 2.

Таблица 12.4. Параметры файловой системы

Опция Описание

defaults Параметры по умолчанию

Разрешает обычному пользователю монтировать/размонтиро-


user
вать данную файловую систему

Запрещает обычному пользователю монтировать/размонтиро-


nouser вать данную файловую систему. Смонтировать эту ФС может
только root. Используется по умолчанию

ФС будет монтироваться при загрузке. Используется по умол-


auto
чанию, поэтому указывать не обязательно


_________________________________________________________________ ,: _________________ ,
[ASTAд*LINUX") 1 1ава 12 Фаii.101-нн, с11с, r,ra

noauto ФС не будет монтироваться при загрузке системы

Разрешает запуск исполнимых файлов на данной ФС. Исполь-


ехес зуется по умолчанию. Для Windows-фaйлoвыx систем (vfat,
ntfs) рекомендуется использовать опцию поехес

поехес Запрещает запуск исполнимых файлов на данной ФС

r-- ФС будет монтироваться в режиме "только чтение"

ФС будет монтироваться в режиме "чтение запуск". По умол-


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

Для преобразования имен файлов будет использоваться коди-


utf8
ровка UTF8

data Задает режим работы журнала (см. ниже)

12.8.4. Автоматическое монтирование файловых систем


В современных дистрибутивах Linux сменные носители вроде USВ-дисков и
оптических дисков монтируются автоматически:
• DeЬian, UЬuntu, Fedora, CentOS - монтирование производится к ката­
логу /mеdiа/<метка_устройства>. В качестве метки может использовать­
ся или метка, установленная при форматировании, или серийный номер
устройства, если метка не устанавливалась.
• openSUSE - монтирование будет производиться к каталогу /var/run/
mеdiа/<имя пользователя>/<метка>.
За автоматическое монтирование отвечает демон automount, который вы мо­
жете отключить, если автоматическое монтирование вам не нужно.

12.9. Работа с журналом


Существует три режима работы журналируемой файловой системы ехtЗ/
ext4:journal, ordered и writeback. По умолчанию используется режим ordered
оптимальный баланс между производительностью и надежностью. В
. ----------------------------------------------. ----------------------------------ID

1ASTRд*LINUX"J

этом режиме в журнал будет заноситься информация только об изменении


метаданных.
Самый медленный режим journal. В этом режиме в журнал записывается
максимум информации, которая понадобится при восстановлении в случае
сбоя. Режим очень медленный и использовать его следует, только если
безопасность для вас важнее, чем производительность.
Самый быстрый режим writeback, но в нем, по сути, журнал не будет ис­
пользоваться, и у вас не будет никакой защиты, например, от той же переза­
грузки.
Режим работы журнала задается параметром data, например:

/dev/sdЫ /home ext4 data= journal 1 2

12.10. Преимущества файловой системы ext4

Поговорим о преимуществах файловой системы ext4. Возможно, она вас


полностью устроит и вам не придется искать другую файловую систему для
своего компьютера.
Впервые файловая система ext4 появилась в ядре версии 2.6.28. По срав­
нению с ехtЗ, максимальный размер раздела был увеличен до 1 эксбибайта
(1024 петабайтов), а максимальный размер файла составляет 2 Тб. По произ­
водительности новая файловая система ext4 превзошла файловые системы
ехtЗ, Reiserfs, XFS и Btrfs (в некоторых операциях).
Так, ext4 опередила знаменитую XFS в тесте на случайную запись. Файло­
вая система Btrfs провалила этот тест с огромным "отрывом" от лидеров -
XFS и ext4. Производительность ext4 была примерно такой же, как у XFS,
но все-таки немного выше, чем у XFS. В Интернете вы найдете множество
тестов производительностей - просмотрите их, если вам интересно.
Основной недостаток ехtЗ заключается в ее методе выделения места на
диске. Ее способ выделения дискового пространства не отличается произ­
водительностью, а сама файловая система эффективна для небольших фай­
лов, но никак не подходит для хранения огромных файлов. В ext4 для более
эффективной организации данных используются экстенты. Экстент - это


непрерывная область носителя информации. К тому же ext4 откладывает

1111--------.---.---..---.---..---.---.. -. -----. ---.-----------------.. ---. ---. ----. -.


(ASTRд"'LINUX") 1 1,ша 12. Фаii.ншаs1 c11c1e\la

выделение дискового пространства до последнего момента, что еще более


увеличивает производительность.
Файловая система ехtЗ может содержать максимум 32 ООО каталогов, в ext4
количество каталогов не ограничено.
В журнале ext4 тоже произошли изменения - в журнале ext4 используются
контрольные суммы, что повышает надежность ext4 по сравнению с ехtЗ.
Выходит, по сравнению с ехtЗ, у ext4 есть следующие преимущества:

• Улучшена производительность - производительность почти достигла


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

12.11. Специальные операции с файловой


системой
12.11.1 Монтирование NТFS-разделов

Не думаю, что на сервере вам придется монтировать NТFS-разделы, но си­


туации бывают разные. Для монтирования NТFS-раздела используется мо­
дуль ntfs-Зg, который в большинстве случаев уже установлен по умолчанию.
Если он не установлен, для его установки введите команду (замените уит на
имя вашего менеджера пакетов):

# yum install ntfs-Зg

Команда монтирования NТFS-раздела выглядит так:

# mount -t ntfs-Зg раздел точка_монтирования

Например, вам кто-то принес флешку, отформатированную как NТFS. Для


ее монтирования введите команду (измените только имя устройства и точку
монтирования):

....................................................................................
(ASTRд*LINUX.J

# mount -t ntfs-Зg /dev/sdЫ /mnt/usb

Модуль ntfs-3g выполняет монтирование в режиме чтение/запись, поэтому


вы при желании можете произвести запись на NТFS-раздел.

12.11.2. Создание файла подкачки

При нерациональном планировании дискового пространства может воз­


никнуть ситуация, когда раздела подкачки стало мало или вы вообщ� его
не создали. Что делать? Повторная разметка диска требует времени,
а выключать сервер нельзя. Сервер тормозит, поскольку ему не хватает вир­
туальной памяти, а Ждать от начальства подписи на дополнительные модули
оперативной памяти придется еще неделю. А за это время пользователи вас
окончательно достанут своими жалобами.
Выход есть. Он заключается в создании файла подкачки на жестком диске.
Такой файл подкачки будет работать чуть медленнее, чем раздел подкачки,
но это лучше, чем вообще ничего. Хотя, если у вас SSD-диск, нцкакой раз­
ницы в производительности практически не будет.
Первым делом нужно создать файл нужного размера. Следующая команда
создает в корне файловой системы файл swapO 1 размером 1 Гб:

# dd if=/dev/zero of=/swapOl bs=lk count=1048576

После этого нужно создать область подкачки в этом файле:

# mkswap /swapOl 1048576

Наконец, чтобы система "увидела"'файл подкачки, его нужно активировать:

# swapon /swapOl

Чтобы не вводить эту команду после каЖдой перезагрузки сервера, нужно


обеспечить ее автоматический запуск.

ID----------------------------------------------------------------------------------· •
l .1ава 12. Фаii.ювая с11с1сма

12.11.3. Файлы с файловой системой

Только что было показано, как создать файл произвольного размера, а потом
использовать его в качестве файла подкачки. При желании этот файл можно
отформатировать, как вам угодно. Даже можно создать в нем файловую
систему.
Рассмотрим небольшой пример. Давайте опять создадим пустой файл раз­
мером 1 Гб:

# dd if=/dev/zero of=/root/fsOl bs =lk count =l048576

После этого нужно создать файловую систему в этом файле:

# mkfs.extЗ -F /root/fsOl

Чтобы не заморачиваться, я создал самую обычную файловую систему ехtЗ.


После этого файл с файловой системой можно подмонтировать и использо­
вать как обычный сменный носитель, то есть записывать на него файлы:

# mkdir /mnt/fsOl
# mount -t ехtЗ -о loop /root/fsOl /mnt/fsOl

После того как закончите работу с файлом, его нужно размонтировать:

# umount /mnt/fsOl

Зачем это вам нужно - знаете только вы. В конце концов, можно исполь­
зовать или зашифрованную файловую систему, или просто архив. Но для
общего развития это очень важно, особенно если вы надумаете создавать
собственный дистрибутив Linux.

12.11.4. Создание и монтирование 1S0-образов

Все мы знаем утилиты, позволяющие в Windows подмонтировать ISО­


образ диска. В Linux все подобные операции делаются с помощью штатных


средств и никакие дополнительные программы не нужны.

············--··----··-----···-··-·--·--------··--··-·······-·····---·--·--·····---cil
.\stra f,i1iux

Представим, что нам нужно создать образ диска. Если диск вставлен в при­
вод, для создания его ISО-образа выполните команду:

$ dd if=/dev/cdrom of=~/dvd.iso

Здесь, /dev/cdrom- имя устройства (в Linux это имя соответствует любому


оптическому приводу - CD или DVD), а dvd.iso - файл образа.
Иногда ставится другая задача: есть папка, по которой нужно создать ISО­
образ. То есть у нас нет диска, но есть файлы, которые нужно записать на
диск, но прежде вы хотите создать его ISО-образ.
Пусть у нас есть папка ~/dvd и нужно создать ISО-образ, содержащий все
файлы из этой папки. Файл образа будет опять называться ~/dvd.iso. Для
этого используйте команду mkisofs:

$ mkisofs -r -jcharset utf8 -о ~/dvd.iso ~/dvd

Чтобы проверить, что образ был создан корректно, его нужно подмонтиро­
вать к нашей файловой системе:

# mkdir /mnt/iso-image
# mount -о loop -t iso9660 dvd.iso /mnt/iso-image

Здесь все просто: опция -о loop означает, что будет монтироваться обычный
файл, а не файл устройства, опция -t задает тип файловой системы, далее
следуют название файла и название папки, к которой будет выполнено мон­
тирование.

12.12. Файлы конфигурации Linux


12.12.1. Содержимое каталога /etc

Думаю, среди читателей этой книги нет таких, которые бы не знали о


реестре Windows. В реестре Windows хранятся настройки самой системы


и практически всех программ (исключения составляют лишь устаревшие
программы, хранящие свои параметры в ini-файлах).

1111----··-------.... --------......---·· --------..------------------......... --........



1. ,ава 12. Фaii. IOIНISI CIIC 11.'МН

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

12.12.2. Конфигурационные файлы

Чтобы эффективно настраивать систему, нужно ориентироваться в содержи­


мом конфигурационного каталога. Если заглянете в /etc, то кроме подката­
логов в нем обнаружите и файлы, которые находятся непосредственно в /
etc. Описание этих файлов приведено в таблице 12.5. Содержимое каталога
может отличаться в зависимости от используемого дистрибутива и установ­
ленного программного обеспечения. Но общая картина будет примерно оди­
наковой во всех дистрибутивах.

Таблица 12.5. Файлы из каталога /etc

Файл Описание

Конфигурация цвета для утилиты ls. Здесь вы може-


DIR-COLORS те указать, каким цветом будут выводиться каталоги,
файлы, ссылки и т.д.

GREP-COLORS Конфигурация цвета для утилиты grep


Содержит параметры для корректировки аппаратных
adjtime
часов

•. ---
aliases База данных псевдонимов для почтовых агентов (МТА)

- - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - -. - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - --.. -.. - - -. - -
.\st.-:1 l.i11ux

Содержит пользователей,которым запрещено исполь-


at.deny зовать планировщик at. Дополнительная информация
доступна в тап at

Конфигурация (таблица расписания) планировщика


anacrontab
anacron

Глобальный файл конфигурации оболочки bash. Ло-


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

Содержит ключи для DNS-cepвepa Ьind9. Настройку


Ьind.keys
DNS-cepвepa пока рассматривать не будем

Содержит список номеров портов в диапазоне от


600 ДО 1024, которые не могут быть использова-
Ьindresvport. ны Ьindresvport, который обычно вызывается IRC-
Ьlacklist службами. По умолчанию запрещены порты 623,631,
636, 664, 774, 921, 993 и 995, которые используются
различными сетевыми службами

Список пользователей,которым запрещено использо-


cron.deny
вать cron

crontab Таблица расписания демона crond

crony* Конфигурация NTP (сервер времени)

csh.cshrc Файл конфигурации для оболочки С Shell

Глобальный файл конфигурации для С Shell. Опре-


деляет поведения во время регистрации пользовате-
ля (login) в системе. На самом деле - это сценарий,
который запрещено редактировать вручную. Он дол-
csh.login
жен изменяться только во время обновления системы.
Вместо этого лучше редактировать /etc/csh.login.local,
если вам нужно внести изменения в настройки вашего
локального окружения

.. •
crypttab Содержит информацию о зашифрованных томах

. .. . . . . . . . .. .. . . . . ... . . .. . . .. . .. .. . . . .. . . . . .. . . . . . ... . .. . . . .. . . .. .. .. . . .. . ..... . . .


(ASTRд*LINUX"j l .1ава 12. Фаii.юв:ш с11с H'\la

defaultdomain Содержит доменное имя для сервисов NIS и NIS+

dhclient.conf Файл конфигурации для DНСР-клиента

dhclientб.conf Файл конфигурации для DНСР-клиента, версия IPvб

dhcpd.conf Файл конфигурации для DНСР-сервера

dhcpdб.conf Файл конфигурации для DНСР-сервера, версия IPvб

Конфигурационный файл для пакета dialog, определя-


dialogrc ет цветовую схему диалоговых интерфейсов, постро-
енных с помощью пакета dialog

Конфигурационный файл для dnsmasq (DNS-


dnsmasq.conf
маскарадинга)

Содержит параметры dracut - средства, которое фор-


dracut.conf
мирует initramfs

drirc Конфигурационный файл для репозитария DRI CVS

Файл используется РАМ-модулем pam_env. Содер-


environment жит переменные окружения, описанные в виде пар
:КЛЮЧ=ЗНАЧЕНИЕ, по одной паре в одной строке

Параметры EsounD (Enlightened Sound Daemon), кото-


рый используется для смешивания вместе некоторых
esd.conf
цифровых аудиопотоков для проигрывания на одиноч-
пом устройстве

Содержит 48-битные Ethemet-aдpeca и соответствую-


щие им IР-адреса или имена узлов. Может использо-
ethers
ваться некоторыми сетевыми службами для разреше-
ния МАС-адресов в IР-адреса

exports Содержит список экспортируемых файловых систем

•.....................···-........... ···-· ··-··......·····-.......................·-ID


fedora-release Информация о релизе Fedora
.\st,·a l.inux

Информационный файл, содержит некоторые характе-


filesystems ристики и атрибуты файловых систем. В нем нет ниче-
го интересного

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


fstab
монтироваться автоматически при загрузке системы

Список пользователей, которые НЕ могут войти в


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

group Содержит группы пользователей

host.conf Задает порядок разрешения доменных имен

hostname Содержит доменное имя узла

Ранее использовался для разрешения IР-адресов в до-


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

hosts. * Файл конфигурации локальной сети

Если существует файл file -/.hushlogin или /etc/hush-


logins, осуществляется "тихий" вход (это отключает
проверку e-mail и вывод последнего времени входа и
hushlogins
сообщения дня (Message of Day)). Если существует
файл /var/log/lastlog, то выводится время последнего
входа в систему

idmapd.conf Конфигурация демона idmapd

idn.conf Файл конфигурации для idnkit

ID---·· ··-····--.......... -.·-·-··--··-···· ··-·· -····-.. ·--· ... -·.........·-·· --·--..,


\.1,ша 12. Фаii.�овая сш·н·ш1

idnalias.conf Псевдонимы кодировок для idnkit

Позволяет задавать обработку отображения символов


inputrc
в специальных ситуациях. Используется редко

Приглашение, которое выводится при входе в систему


issue
(ссылка на /usr/liЬ/issue)

Приглашение, которое выводится при сетевом входе в


issue.net
систему (ссылка на /usr/liЬ/issue.net)

krb5.conf Параметры Kerberos

Хеш-версия файла ld.so.conf. . Создается утилитой


ld.so.cache
ldconfig

Настройка динамического связывания во время вы-


ld.so.conf
полнения

Задает параметры преобразования некоторых симво-


lesskey
лов/клавиш, вы не будете редактировать этот файл

Конфигурация библиотеки libao (обычно здесь задает-


libao.conf
ся аудиодрайвер по умолчанию)

libaudit.conf Конфигурация библиотеки libaudit

Контрольные определения для пакета shadow. Напри-


login.defs мер, здесь можно задать количество неудачных попы-
ток входа в систему и многие другие параметры

logrotate.conf Задает параметры ротации журналов

machine-id Содержит идентификатор машины

mail.rc Файл конфигурации программы mail

Этот файл используется пакетом man-db для настрой-


manpath.config
ки путей man и cat
Содержит список МIМЕ-типов и соответствующих им
mime.types
расширений файлов

. .. .......·-· ...-···--··--·.......-··· ·····-·..................................... ...


Лsti-a (,inu,

mke2fs.conf Файл конфигурации программы mke2fs

Содержит сообщение дня (Message ofthe Day). В зави-


motd симости от настроек системы может выводиться при
входе в систему

mtools.conf Данный файл является частью пакета mtools.conf

Файл конфигурации сети. Теперь используется только


netconfig
с кодом ТI-RPC в библиотеке liЬtirc

netgroup Содержит описание конфигурации сетевых групп

networks Статическая информация о сетевых именах

nfsmount. conf Файл конфигурации монтирования NFS

Конфигурационный файл для nscd (Name Service


nscd.conf
Cache)

nsswitch. conf Параметры NSS (Network Service Switch)

ntp.conf Файл конфигурации сервера времени ntpd

Содержит информацию о релизе: номер версии, кодо-


os-release
вое имя и т.д. (ссылка на /usr/liЬ/os-release)

База данных паролей. Подробнее, возможно, будем


passwd
рассматривать позднее

Этот файл используется программой chkstat и кос-


венно некоторыми RРМ-скриптами для проверки или
permissions
установки прав и режимов файлов и каталогов при
установке

Этот файл автоматически генерируется cupsd, его не


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


a:t----------------.- ----------------------------------------------------------------.
1 1ава 12 Фаi1. IOB:til CIIC I C\HI

Не изменяйте этот файл во избежание потери измене-


ний во время очередного обновления системы. Если
вам нужно изменить этот файл, отредактируйте /etc/
profile
profile.local, чтобы установить ваши локальные на-
стройки, например, глобальные псевдонимы, перемен-
ные VISUAL и EDIТOR и т.д.

protocols Список IР-протоколов

Startup-cцeнapий Python 3 для сохранения истории ин-


pythonЗstart
терпретатора и автодополнения имен

pythonstart То же, что и pythonЗstart, но для старых версий Python

Определяет параметры привязки rаw-устройств


raw
блочным устройствам

Сценарий, определяющий внешний вид индикатора


rc.splash
начальной загрузки

Конфигурационный файл для системы разрешения


resolv. conf
имен

rpc Список протоколов удаленного вызова процедур (RPC)

rsyncd.conf Файл конфигурации для rsyncd

rsyncd.secrets Пароли rsyncd

Параметры программы screen (менеджер экрана с эму-


screenrc
ляцией терминала VTI00/ANSI)

Содержит имена устройств терминалов (tty), на кото-


securetty
рых разрешает вход в систему пользователю root

services Список служб (сервисов)

•.
.... ···········.................................................................. ..
\st.-:1 l.iпu\

Пароли из файла /etc/passwd физически хранятся в /


etc/shadow. Поэтому фактически в/etc/passwd хранит-
shadow
ся список пользователей, а пароли этих пользователей
находятся в/etc/shadow, доступ к которому ограничен

shells Список установленных в системе интерпретаторов

slp.conf Файл конфигурации Ope nSLP SPI

smartd.conf Файл конфигурации демона smartd

Позволяет определить, кому можно использовать ко-


sudoers
манду sudo

suspend.conf Некоторые параметры питания

Файл конфигурации sysctl. Кроме э:гого файла, sysctl


sysctl.conf также читает параметры из файлов/etc/sysctl.d/* .conf,
/run/sysctl.d/* .conf и некоторых других

ttytype Содержит список терминалов и определяет их тип

usb-modeswitch Параметры для пакета usb_modeswitch

vconsole.conf Конфигурационный файл для виртуальной консоли

virc Файл конфигурации текстового редактора vi

wgetrc Параметры программы wget

Задает, как обработать расширенные атрибуты при ко-


xattr.conf
пировании между файлами

12.12.3. Подкаталоги с конфигурационными файлами

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

- -.. - -- . -... -........ -... -.. -................. --..---. -- - .. --................. _,


� 1 .1,1ва 12 Фaii. lOIИHI ('IН' 1 С\/а

программ. Вполне вероятно, что у вас не будет некоторых каталогов, пред­


ставленных в таблице 12.6, но будут некоторые другие каталоги, назначение
которых можно найти или в справочной системе Linux, или в Интернете.

Таблица 12.6. Подкатш�оги катш�ога/еtс

Каталог Описание

Содержит файл конфигурации Network Manager и


NetworkManager файлы конфигураций сетевых соединений в некото-
рых дистрибутивах

PackageКit - это открытый и свободный набор при-


ложений для обеспечения высокоуровнего интерфей-
PackageКit
са для различных менеджеров пакетов. Этот каталог
содержит файлы конфигурации PackageКit

Xll Параметры графического интерфейса Xl 1 (Х Window)

Конфигурация abrtd - демона автоматических отче-


abrt
тов о сбоях

Каталог альтернатив по умолчанию. Файл является


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

В этих каталогах находятся конфигурационные фай-


лы демона аудита - auditd и его диспетчера событий
(audit event dispatcher). Основной конфигурационный
audit и audisp файл - /etc/audit/auditd.conf. В нем задается поведе-
ние демона и некоторые настройки, например, распо-
ложение журнала по умолчанию /var/log/audit/audit.
log

apt Конфигурация менеджера пакетов apt

Параметры автодополнения командной строки для


bash-comletion.d


оболочки bash

·----------------------------------------------------------------------------------lllil
(ASTRд*LINUX.)

Демон Ьinfmt.d настраивает дополнительные двоич-


Ьinfmt.d ные файлы для выполнения во время загрузки. В этом
каталоге находятся его конфигурационные файлы

cockpit Конфигурация панели управления Cockpit

Пакет cifs-utils содержит средство монтирования ре-


сурсов - общего доступа SMB/CIFS в Linux. В этом
cifs-utils
каталоге находятся конфигурационные файлы пакета
cifs-utils

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


одновременно с файлами из каталога /var/spool/cron.
crond.d
' После этого демон cron загружает содержимое файла
/etc/crontab и начинает его обработку

cron.daily, cron.
Содержат сценарии, которые будут выполнены демо-
hourly, cron.
пом cron, соответственно ежедневно, ежечасно, еже-
mounthly, cron.
месячно и еженедельно
weekly

Содержит параметры конфигурации системы печати


cups
CUPS (Common Unix Printing System)

в пакете python-cupshelpers содержатся модули


Python, которые помогают создавать приложения
cupshelpers и утилиты с использованием Руthоn-интерфейса к
CUPS. В этом каталоге_ находятся параметры этого
пакета

crypto-policies Конфигурация криптополитик

dbus-1 Содержит файлы конфигурации демона dbus-daemon

Содержит некоторые параметры по умолчанию, на-


default

...
пример, параметры загрузчика GRUВ

--
. - - - -- - - -- - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --- - - --- - - - -

-- -- - - - --- -- - - - ---- .
(ASTRд*LINUX.] 1 1,ша 12 Фaii. юная с11с I C\la

depmod - программа для создания файла modules.


dep и mар-файла. В этом каталоге находятся ее файлы
depmod.d
конфигурации. Как администратор сервера, вы може-
те о них просто забыть, они вам не пригодятся

dhcp Конфигурация DНСР-сервера

dnf Конфигурация менеджера пакетов dnf

dracut заменяет mkinitrd для создания загрузочной


dracut.confd файловой системы в оперативной памяти (ramdisk).
Здесь находятся конфигурационные файлы dracut

firewalld Конфигурация брандмауэра

Содержит конфигурационные файлы подсистемы


шрифтов. в частности, файл /etc/fonts/fonts.conf
fonts
описывает каталоги со шрифтами, каталоги с кэшем
шрифтов, а также описывает аналоги шрифтов

gnupg Содержит конфигурационный файл GnuPg

Содержит файлы, относящиеся к загрузчику GRUВ.


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

init.d Содержит сценарии системы инициализации

Параметры подсистемы маршрутизации. Например,


iproute2 могут использоваться для IР-балансировки, то есть
объединения нескольких интернет-каналов в один

iscsi Параметры iSCSI

java �араметры Java

Содержит конфигурационные файлы текстового ре-


joe
дактораjое

•. ----------------------------------------------------------------------------------111
\str·a l,irнl\

jvm, jvm-common Параметры виртуальной машины Java

Содержит файлы с расширением conf, которые ис-


ld.so.confd
пользуются для поиска разделяемых библиотек

libnl Конфигурационные файлы библиотеки libnl

logrotate.d Конфигурация средства ротации журналов

Файлы конфигурации файлового менеджера Midnight


те
Commander

Программа mcelog позволяет расшифровать аппарат-


mcelog ные ошибки. Настраивается посредством конфигура-
ционных файлов в каталоге /etc/mcelog

modprobe - программа для добавления и удаления


модулей из ядра Linux. Соответственно в одноимен-
modprobe.d
нам подкаталоге каталога /etc находятся ее конфигу-
рационные файлы

Содержит параметры некоторых модулей ядра. По


modules-load.d
умолчанию в этом каталоге пусто

Содержит конфигурационные файлы сервера катало-


openldap
гав OpenLDAP

opt Файлы конфигурации для /opt/

Параметры конфигурации модулей аутентификации


pam.d
РАМ (PluggaЫe Authentication Modules)

Параметры программы pkcs 11, используемой для


pkcsll управления объектами данных, которые находятся на
зашифрованных устройствах PKCS#l 1 (Cryptoki)

---
pki Содержит список GРG-ключей


----. - - ....... - -·. - -· - - -... - -.... - . - - - - .. - - - - - .. -.... - - -... - ... -... - -· .... - -- -.. - .
(ASTRд*LINUx•] 1 l,IB,I 12 Фа11.1ОВ,НI t'llt' 1 t'\Ja

Plymouth - свободный графический экран загрузки


plymouth для Linux. Этот каталог содержит его конфигураци-
онные файлы

Содержит конфигурационные файлы пакета pm-utils.


рт Пакет pm-utils-этo инфраструктура управления пи-
танием нового поколения

postfix Конфигурационные файлы почтового агента Postfix

ррр Файлы конфигурации протокола РРР

pptp.d Файлы конфигурации демона pptpd (протокол РРТР)

Относится к системе миграции между версиями дис-


трибутива openSUSE. Дополнительная информация
products.d может быть найдена по ссылке http://doc.opensuse.org/
products/draftJSLES/SLES-deployment_sd_draftJcha.
update.sle.html

PulseAudio-это звуковой сервер для РОSIХ-систем.


Его основное назначение - смешивать звуковые по-
pulse токи от разных приложений, что позволяет несколь-
ким потокам воспроизводиться одновременно. Здесь
находятся конфигурационные файлы PulseAudio

rc.d Ссылка на каталог init.d

rsyslog.d Конфигурация демона протоколирования rsyslogd

Различные параметры системы управления пакетами


RPM. Обычно файлы из этого каталога не требуют из-
rpm
менения. Дополнительную информацию можно полу-
чить по адресу http://wiki.opennet.ru/RPM

samba Конфигурационные файлы Samba

...
Параметры SASL (Simple Authentication and Security
sas/2

.,.
Layer)

- - . -. - . -------- - ----. ---. ---.. -------... -... -.---. ·-· --.........-- --...--. ----. -
\st,·a l,irшx (ASTRд*LINUX")

Еще один параметр конфигурации, относящийся к


security
модулям аутентификации РАМ

Содержит файлы конфигурации системы безопасно-


selinux
сти SELinux

При создании новой учетной записи пользователя


создается его домашний каталог в каталоге /home, при
этом в созданный домашний каталог пользователя ко-
skel
пируются файлы из каталога /skel. Все помещенные в
этот каталоt файлы будут скопированы в созданный
домашний каталог

Содержит файлы конфигурации SSН-клиента и SSH-


ssh
сервера

ssl Файлы конфигурации OpenSSL

Кроме файла /etc/sudoers, настройк}f sudo могут


sudoers.d определяться содержимым файлов из каталога /etc/
sudo.ers.d

Содержит конфигурационные файлы всей системы.


В этом каталоге очень много различных конфигура-
ционных файлов. Например, в каталоге /etc/syscon:fig/
sysconfig
network вы найдете конфигурационные файлы сете-
вых интерфейсов. А в файле clock хранится выбран-
ный при установке часовой пояс

sysctl.d настраивает параметры ядра при загрузке,


sysctl.d
здесь находятся его конфигурационные параметры

systemd Конфигурационные файлы демона systemd

Файлы конфигурации и файлы правил менеджера


udev
устройств udev

Конфигурационные файлы пакета wpa_supplicant

.-.- .-·'
wpa_supplicant
(обеспечивает подцержку WEP, WPA и WPA2)

-- -- --
------------------------------------- ---� ------------- ------- -- -- -- . ----.
l.1ава 12 Фаii.ювая с11с1с,ш

xdg-open - это независимый пользовательский ин-


струмент для настройки приложений рабочего стола
по умолчанию. В этом каталоге находятся его конфи-
гурационные файлы. Например, в каталоге /etc/xdg/
xdg
autostart находятся все программы, которые могут
быть запущены автоматически. Однако запускаются
лишь те, которым разрешен запуск в определенной .
сессии

Содержит дополнительные файлы конфигурации су-


xinetd.d персервера xinetd (в современных дистрибутивах не
используется)

xml Конфигурационные файлы библиотеки libxml

12.13. Псевдофайловые системы

Псевдофайловые системы sysfs (каталог /sys) и proc (каталог /proc) исполь­


зуются для настройки системы и получения различной информации о
системе и процессах. Свое название псевдофайловые системы получили из­
за того, что они работают на уровне виртуалыюй файловой системы. Вито­
ге оба эти средства (назовем их так) для конечных пользователей выглядят
как обычная файловая система - вы можете зайти как в каталог /sys, так и в
каталог /proc. В обоих этих каталогах будут файлы, вы можете просмотреть
эти файлы и даже изменить их содержимое.
Содержимое многих файлов псевдофайловой системы /proc формируется
"на лету". Обратите внимание на размер любого файла в каталоге /proc - он
равен нулю, но если открыть файл, то информация в нем будет. Например, в
файле /proc/version находится информация о версии Linux.
Монтирование файловых систем sysfs и proc осуществляется или в сценари­
ях инициализации системы, или через /etc/fstab. Впоследнем случае записи
монтирования псевдофайловых систем выглядят так:

sysfs /sys sysfs defaults о о


о о

• . ...
proc /proc proc defaults

........ ...... .............................-···········--·······- -···-···--··- --


\st1·a l .i1111x (ASTRд*LINUX'j

12.13.1. Псевдофайловая система sysfs

Файловая система sysfs (каталог /sys) предоставляет пользователю инфор­


мацию о ядре Linux, об имеющихся в системе устройствах и драйверах этих
устройств. На рис. 12.4 представлено содержание каталога /sys. В нем вы
найдете следующие подкаталоги:

• Ыосk - содержит каталоги для всех блочных устройств, которые есть в


вашей системе в настоящее время. Здесь под устройством подразумевает­
ся наличие физического устройства и его драйвера. Если вы подключите
внешний жесткий диск, то в каталоге /sys/devices появится новое устрой­
ство, но в каталоге /sys/Ьlock оно появится, только если в системе есть
драйвер для работы с этим устройством или же драйвер (модуль) встроен
в само ядро.
• bus - здесь находится список шин, которые поддерживает ваше ядро.
Заглянув в этот каталог, вы обнаружите подкаталоги pci, pci_express, scsi
и т.д. В каждом из этих каталогов будут подкаталоги devices и drivers. В
первом находится информация об устройствах, подключенных к данной
шине, во втором - информация о драйверах устройств.
• class - позволяет понять, как устройства формируются в классы. Для
каждого класса есть отдельный подкаталог- в каталоге class.
• devices - содержит дерево устройств ядра, точнее структуру фай­
лов и каталогов, которая полностью соответствует внутреннему дереву
устройств ядра.
• firmware - со�ержит интерфейсы, предназначенные для просмотра и
манипулирования fiпnwаrе-специфичными объектами и их параметрами.
• fs - информация о файловых системах, которые поддерживает ваше
ядро.
• kernel - общая информация о ядре.
• module - здесь вы найдете подкаталоги для каждого загруженного мо­
дуля ядра. Имя подкаталога соответствует имени модуля. В каждом из
подкаталогов модулей вы найдете подкаталог parameters, содержащий
специфичные для модуля параметры.
• power - позволяет управлять параметрами питания, а также переводить

---- •
систему из одного состояния питания в другое. Далее будет показано не­
сколько примеров.

- - --- ---- ---- - ---- - --- - --- - ---- ---- - ---- - ... - - ---- - .............................. .
1 1,ш,1 12 Фaii. roнas, с11с l l'\la

Ыосk
bus
class
dev
devices
firmware
fs
kernel
module
power

Рис. 12.4. Содержание катш�ога/sуs

Довольно интересен с практической точки зрения каталог /sys/power. В


файле state находится состояние питание. Изменив должным образом со­
держимое этого файла, можно изменить состояние питания. Например, вот
как можно перевести систему в состояние "Suspend to RAM", когда питание
процессора отключается, но питание на память подается, благодаря чему ее
содержимое не уничтожается:

$ sudo echo -n mem > /sys/power/state

При желании можно отправить систему в состояние "Suspend to Disk", когда


содержимое памяти будет записано на жесткий диск, после чего питание
будет отключено:

$ sudo echo -n disk > /sys/power/state

12.13.2. Псевдофайловая система proc

Файловая система proc позволяет отправлять информацию ядру, модулям и


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

•·---- ..... --.. ----------------·-................................. ······ ......... ...


.\st1·:1 1.i,шх

Некоторые файлы в /proc доступны только для чтения - вы можете только


просмотреть их. А некоторые вы можете изменять, и эти изменения сразу
же отразятся на работе системы. Просмотреть файлы из /proc можно любой
программой для просмотра файлов, проще всего в консоли использовать ко­
манду cat:

cat /рrос/<название файла>

Записать информацию в файл можно с помощью команды echo, как уже


было показано выше:

sudo echo "информация" > /рrос/<название файла>

В каталоге /proc очень много файлов, и рассмотреть все мы не сможем. Пре­


жде чем мы приступим к самым интересным с моей точки зрения файлам,
нужно понять, что означают каталоги с числами. Эти каталоги содержат ин­
формацию о запущенных процессах.
Итак, самые полезные информационные файлы:

• /proc/cmdline - содержит параметры, переданные ядру при загрузке;


• /proc/cpuinfo - содержит информацию о процессоре, откройте этот файл,
думаю, вам будет интересно. Кроме общей информации о процессоре
вроде модели и частоты, здесь выводится точная частота, размер кэша
и псевдорейтинг производительности, выраженный в BogoMIPS. Значе­
ние BogoMIPS показывает "сколько миллионов раз в секунду компьютер
может абсолютно ничего не делать". Способ измерения производитель­
ности пусть и не самый удачный, но от него до сих пор не отказались, а
"на дворе" уже 3-я версия ядра.
• /proc/devices - список устройств.
• /proc/filesystems - полный список поддерживаемых вашим ядром файло­
вых систем.
• /proc/interrupts - информация по прерываниям.
• /proc/ioports- информация о портах ввода/вывода.


......................................- ---- --..---.---- -- -- ---.-- - -- --- ---.-- ---..- .
I .1ава 12. Фaii.111вas1 с11сн·,ш

• /proc/meminfo - полная информация об использовании оперативной па­


мяти. Как по мне, вывод этого файла более понятен и удобен, чем вывод
командыfrее.
• /proc/mounts - содержит список подмонтированных файловых систем.
• lproc/modules - список загруженных модулей и их параметры.
• /proc/swaps - содержит список активных разделов и файлов подкачки.
• /proc/version - здесь находится версия ядра.

Используя /proc, можно не только получить информацию о системе, но и


изменить ее. Например, в файлах /proc/sys/kernel/hostname и /proc/sys/kerneV
domainname содержится информация об имени компьютера и домена. Вы
можете не только просмотреть, но и изменить содержимое этих файлов, из­
менив, соответственно, имя узла и имя домена. Хотя практика изменения
доменных имен через /proc/sys практикуется не часто, никто не мешает вам
это сделать:

sudo echo "server" > /proc/sys/kernel/hostname


sudo echo "example.com" > /proc/sys/kernel/domainname

Файл /proc/sys/kernel/ctrl-alt-del позволяет регулировать тип перезагрузки


системы при нажатии комбинации клавиш Ctrl+Alt+Del. По умолчанию в
этом файле содержится значение О, что означает так называемую "мягкую
перезагрузку" (soft reboot). Если же вы внесете в этот файл значение 1, то
при нажатии Ctrl+Alt+Del эффект будет такой же, как при нажатии кнопки
Reset на корпусе компьютера:

sudo echo "1" > /proc/sys/kernel/ctrl-alt-del

Файл /proc/sys/kernel/printk позволяет задать, какие сообщения ядра будут


выведены на консоль, а какие - попадут в журнал демона syslog. По умол­
чанию в этом файле содержатся значения 4 4 1 7. Сообщения с приоритетом
4 и ниже (первая четверка) будут выводиться на консоль. Вторая четверка
- это уровень приоритета по умолчанию. Если для сообщения не задан уро­
вень приоритета, то считается, что его приоритет будет равен 4.


.....................................................................................
\st,·a l,inux (ASTRд*LINUX")

Третье значение определяет номер самого максимального приоритета.


Последнее значение - это уровень приоритета по умолчанию для первого
значения.
В большинстве случаев изменяют только первое значение, позволяющее
определить, будут ли сообщения с указанным уровнем приоритета выво­
диться на консоль или нет. Остальные параметры оставляют без изменения.
В файле /proc/sys/net/core/netdev_max_backlog содержится максимальное
число пакетов в очереди. Значение по умолчанию- 1000.
Файл /proc/sys/fs/file-max позволяет изменить максимальное количество за­
головков файлов, которое может быть одновременно открыто. Другими сло­
вами, этот файл задает, сколько одновременно может быть открыто файлов.
Значение по умолчанию для ядра 3.16 и файловой системы Ьtrfs- 73054.
Чтобы сохранить внесенные "на лету" изменения и не вводить их снова при
следующей перезагрузке сервера, нужно отредактировать файл /etc/sysctl.
conf. Представим, что вы изменили значение из файла /proc/sys/fs/file-max.
Тогда в файл /etc/sysctl.conf нужно добавить строку:

fs .file-max 16 384

Принцип прост: /proc/sys/ отбрасывается совсем, а в оставшейся строке все


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

....................................................................................

Глава 13.

Управление хранилищем
Astra Linux (ASTRд*LINUX"]

В этой главе мы рассмотрим довольно-таки важные вещи - подключение


нового жесткого диска и его разметку в классическом варианте - безо вся­
ких менеджеров томов, затем мы рассмотрим LVM и то, как можно расши­
рить пространство группы томов, например, когда вы увеличили дисковое
пространство виртуального сервера.

13.1. Подключение нового жесткого диска и его


разметка

Классической программой для разметки жесткого диска в Linux и дру­


гих операционных системах является программа fdisk. Конечно, в той же
Windows программа fdisk с.овеем другая, но названия программ совпадают.
Рассмотрим пример использования этой программы. Представим, что мы
подключили новый жесткий диск и нам нужно "ввести" его в эксплуатацию.
Тренироваться лучше всего в виртуальной машине, особенно если вы в пер­
вый раз осуществляете разметку диска.
Формат вызова fdisk такой:

# fdisk <устройство>

....................................................................................
Глава 13. Управление хранилищем

Да, команду fdisk нужно запускать с правами root. Далее мы будем считать,
что новым является устройство /dev/sdb:

# fdisk /dev/sdb

Посмотрите на рис. 13.1. Я запустил программу fdisk для нового и неразме­


ченного жесткого диска. Программа сообщила мне, что:
• Все изменения хранятся только в памяти и не переносятся на жесткий
диск до тех пор, пока вы их не запишете.
• Устройство не содержало таблицы разделов, и была создана таблица раз­
делов DOS (по умолчанию).

Рис. 13.1. Зanycкfdisk для нового :нсесткого диска

Рис. 13.2. Список комапдfdisk

Первым делом ознакомимся со списком команд fdisk. Введите команду m


для получения справки. Список команд в последних версиях fdisk разбит
на группы (рис. 13.2). В таблице 13.1 приведен список команд fdisk.

...... .................. ... . . ....... ····· ... ........ ............................ �


" "
*
Лstra L,iш1, 1ASTRA LINux·1

Таблица 13.1. Команды npoгpaммыfdisk

Команда Описание

Сделать раздел активным. Данный флаг был нужен для ста-


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

ь Редактировать вложенную ВSD-метку

с Применить флаг совместимости с DOS

d Удалить раздел

l Вывести известные типы разделов

п Добавить новый раздел

,р Вывод таблицы разделов

t Изменить тип раздела

V Проверить таблицу разделов

т Вывод справки

и Изменить единицы измерения

х Дополнительная функциональность (только для экспертов)

w Записать таблицу разделов на диск и выйти

q Выход без сохранения изменений

g Создать новую пустую таблицу разделов GPT

G Создать новую пустую таблицу разделов SGI (для ОС IRIX)

о Создать новую пустую таблицу разделов DOS

s Создать новую пустую таблицу разделов Sun

EII·················································································· •
(ASTRд*L1Nux·1 1 .1ава 13. У11рав.1с1111с хра�111J111щсм

Наша задача-создать раздел (или несколько разделов, здесь решать вам) и


подмонтировать его (их) к корневой файловой системе.
Первым делом выведем таблицу разделов командой р (рис. 13.3). Как видно
из рис. 13.3, таблица разделов пуста, а размер нашего жесткого диска всего
бОГб.

Рис. 13.3. Пустая таблица разделов

Наш диск довольно скромного размера, поэтому программа создала таблицу


разделов DOS. Для больших жестких дисков лучше создать таблицу разде­
лов GРТ. Если программа неправильно выбрала тип таблицы разделов или
вы хотите изменить его принудительно, введите команду g. Посмотрите на
рис. 13.4: я изменил тип таблицы разделов, а затем опять отобразил ее. Она
по-прежнему пуста, но обратите внимание на ее тип-теперь у нас таблица
разделов GPT.

Примечание. Таблица разделов GPT (GUID Partition ТаЫе) яв­


ляется частью стандарта EFI (ExtensiЫe Firmware lnterface) -
стандарта, который был предложен компанией lntel на смену
стандарта BIOS. Таблица GPT использует современную систе­
му адресации логических блоков (LBA), а не старую систему
CHS (цилиндр-головка-сектор). Но самое главное - это размер
раздела. В GPT можно создать раздел размером до 9.4 Тбайт
(9.4х 102 1 байт), а в MBR - максимальный размер раздела всего
2.2 Тб (2.2 х 1021 байт).

•' ..............................................................................···1!11
Рис. 13.4. Изл�енение таблицы разделов
Astra Linux

Настало время создать раздел. Введите команду n. Программа попросит вас


ввести (рис. 13.5):

• Номер раздела - это первый раздел, поэтому введите 1. В принципе, ког­


да вы будете создавать второй раздел, программа автоматически предло­
жит вам ввести номер 2.
• Первый сектор раздела. Просто нажмите Enter - программа автомати­
чески предложит правильный вариант.
• Последний сектор раздела. Если вы хотите создать раздел на весь жест­
кий диск (то есть использовать все доступное пространство), то просто
нажмите Enter. В противном случае укажите размер раздела. Проще все­
го это сделать, используя модификаторы +М и +G, например, для созда-.
ния раздела размером 30 Гб укажите +ЗОG. Если у вас очень большой
жесткий диск, где пространство измеряется терабайтами, используйте
модификатор Т, например + 1 Т.

о�н,,1 1m tor tн !р) 11


',11 t I r IPH н11mtн·1 (] 1 '11, ,t, • ,tн I t 1 1 1
11 ,t t, ltн C'i,HB 1/.',IJ..-"'JHHt,, ritt,нiit ,И!l!i
r1 t , 1 f11r , • 1·, t,н ,11 , 1,1 ;1{ М ,,, [ !', , Н1 ;- ! •,, Jf.1 ,, (1• i ,1 '• J , i

r,•,tfl 1f ,1 llf t-.1 р,о i 1111111 1 ,11 t1н1t J IH!! t J li \J t r,1 , 1'1 н} ! ! ;,t' { ,,

11n.t\<\11,I • N'I I or lн lp)

Рис. 13.5. Создание нового раздела

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

t <номер раздела>

Например:

t 1

Далее нужно или ввести код типа раздела, или ввести команду L для вывода
подсказки (рис. 13.6). Проблема вся в том, что нет способа постраничного
просмотра типов разделов, а все они не помещаются на одном экране. Поэ­
тому все равно придется обращаться к документации. Однако в большинстве
случаев изменять тип раздела не нужно, поскольку при создании раздела он
создается уже нужного типа. Исключение может возникнуть разве что для
раздела подкачки (Linux swap). Его код- 82.

EII-·····································································-···--:······
Глава 13. Управление хранилищем

Рис.13.6. Подсказка по типу раздела

Если вы передумали менять тип раздела, просто нажмите Enter. Теперь


введите р для просмотра нашей таблицы разделов. Всегда просматривайте
таблицу перед ее записью. После этого введите команду w для сохранения
изменений и выхода из программы (рис. 13.7).

•. --------------------------. -----. -. -. ----------". ----. " -. ---". ---"-" ---"-"" -"" ----1111
Рис. 13. 7. Весь сеанс разметки диска: от создаиия таблицы разделов до записи
изменеиий
[ASTRд*LINUX.J

Создать раздел мало. Нужно еще создать файловую систему. Не будем ни­
чего выдумывать и создадим стандартную файловую систему ext4 командой
mkfs.ext4:

# mkfs.ext4 /dev/sdЫ

Результат выполнения этой команды приведен на рис. 13.8.

Рис. 13.8. Создание файловой системы и монтирование жесткого диска

После этого нужно создать точку монтировани� для нового раздела и


подмонтировать раздел (название точки монтирования можете изменить по
своему усмотрению):

# mkdir /mnt/sdЫ
# mount /dev/sdЫ /mnt/sdЫ
# 1s /mnt/sdЫ

Почти все готово. Осталось только добавить запись в /etc/fstab для автомати­
ческого монтирования созданного раздела:

/dev/sdЫ /mnt/sdЫ ext4 defaults 1 1

..
Вот теперь можно приступать к использованию нового жесткого диска.


... . ........ . .. ................. . ... . . ... . ... . .. . . . .. . . .. . . .. . . . . . . . .. . . . . . . . .. . . .
(ASTRд*LINUX"j l .1ав,1 13. У11рав.1с111н� хра11и.111щсм

13.2. Менеджер логических томов

13.2.1. Введение в LVM

Впервые менеджер логических томов (LVM, Logical Volume Manager)


появился в ядре 2.4 (его первая версия LVM 1), но более активно он стал
применяться только в дистрибутивах с ядром 2.6 (уже вторая версия LVM 2).
Некоторые современные дистрибутивы используют LVM по умолчанию,
создают пулы LVM, в некоторых же LVМ даже не установлен по умолча­
нию. Чтобы понять, нужен ли вам LVМ, нужно разобраться, что это такое.
В этой главе все будет изложено максимально доступно, так что бояться ис­
пользовать LVM не стоит. В то же время, если вам необходимы точные ака­
демическ, ие определения и дополнительная информация, обратитесь к Linux
LVM Howto (http://tldp.org/HOWTO/LVМ-HOWTO/), в котором много техни­
ческих подробностей (если они вам нужны) и не совсем все сразу понятно.
LVМ---'- это дополнительный уровень абстракции ·над аппаратными сред­
ствами, позволяющий собрать вместе несколько дисков в один логич<::ский
диск, а затем разбить его так, как вам хочется.
Примеров использования LVM множество. Самый простой из них -
объединение нескольких небольших дисков в один диск большего размера.
Например, вам досталось даром (или почти даром) несколько SSD-дисков
небольшого размера, скажем, по 128 Гб, и вы хотите объединить эти 2-3 дис­
ка, чтобы получить один большой диск 256-384 Гб.
Второй пример тоже часто распространен. Представим, что система у вас
установлена на небольшом диске, пусть даже на том же SSD-диске размером
80 Гб. Для Linux такой объем вполне достаточен, но рано или поздно сво­
бодное место закончится (все зависит от файлов, с которыми вы работаете).
Вы покупаете диск большего размера, скажем, на 500 Гб или даже на 1 Тб.
Но система уже установлена, и переустанавливать ее не хочется. Что делать?
Здесь вам поможет LVM.
Первый приведенный мною пример (объединение трех дисков во время
установки) слишком тривиален, и с ним справится любой, даже самый на­
чинающий пользователь - просто во время установки нужно выбрать LVM
(если, конечно, дистрибутив его поддерживает) и выбрать диски, которые вы
объединяете в группу (пул).


··---················-··---··--··---·-------····-···-··---·------·····-···---·--·-fJII
Astra Linux

Второй пример более сложный только за счет того, что система уже уста­
новлена, и мы договорились, что переустанавливать ее не будем. Поэтому он
и заслуживает рассмотрения в этой главе, а дополнительную информацию
вы сможете найти в Linux LVM Howto, ссылка на который была приведена
ранее.

13.2.2. Уровни абстракции LVM

Прежде, чем перейти к рассмотрению практической стороны вопроса, нуж­


но разобраться с тремя уровнями абстракции, с которыми вам придется
столкнуться в LVM. Вот эти уровни:

1. PV (Physical Volume) - физические тома. Это могут быть разделы или


целые, еще не размеченные диски.
2. VG (Volume Group) - группа томов. Физические тома объединяются в
группу, и создается единый диск, который вы можете разбить так, как вам
хочется.
3. LV (Logical Volume) - логический раздел. Это раздел нашего единого
диска (VG), который вы можете отформатировать в любую файловую
систему и использовать так, как вам хочется, как обычный раздел обыч­
ного жесткого диска.

Прежде чем мы продолжим, вы должны знать об одном недостатке LVM.


Тома LVM не поддерживаются загрузчиком GRUB. Поэтому если вы ис­
пользуете этот устаревший загрузчик, вам нужно создать отдельный раздел
/Ьооt за пределами LVM. Грубо говоря, если у вас есть диск /dev/sda, раздел
/dev/sdal должен монтироваться к /Ьооt. В него будет установлен загрузчик.
Размер этого раздела должен быть небольшой, примерно 100 Мб (вполне
будет достаточно).
Что же касаетсяGRUB2, то он нормально загружается с LVМ и никакой до­
полнительный раздел создавать не нужно.

13.2.3. Немного практики


Первым делом вам нужно установить пакет lvm2, если он еще не установ­


лен. Выполняем:

Е!1------------------. --------. ----------. ---------------. -. ----------. --------------.


(ASTRд*LINUX"] Глава 13. Уnрав.1ение хранилищем

# apt-get install lvm2

Будем считать, что система сейчас установлена на /dev/sdal, который под­


монтирован как /. Больше никаких разделов на этом диске не создано - для
упрощения примера. Мы подключили второй жесткий диск, который пока
еще не разбит. Имя этого диска - /dev/sdb.
Если на втором диске не созданы разделы, то создавать их и не нужно. Вы
можете сделать все устройство сразу физическим томом (PV). Если на нем
есть разделы - не беда, вы можете добавить в группу томов все разделы
поочередно.
Тратить время на создание разделов не хочется, тем более что это и не нуж­
но, поэтому создаем PV на все устройство /dev/sdb. Для этого используется
команда pvcreate:

# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created

Теперь нужно создать группу томов с помощью команды vgcreate. Данной


команде нужно передать имя группы (пусть это будет ту_ vg) и указать фи­
зическое устройство:

# vgcreate my_vg /dev/sdb


Volume group "vgO" successfully created

Создаем отдельные логические тома (команда lvcreate) для раздела подкач­


ки (swap) и разделов /home, /tmp и /var. Параметр -L задает размер раздела,
например, -LЗOG задает размер 30 Гб. Параметр -п задает имя логического
тома:

# lvcreate -n swap -L8G my vg


# lvcreate -n home -LSOOG my vg
# lvcreate -n var -LЗOG my_vg
# lvcreate -n tmp -LSG my vg

Последний параметр - это имя нашей группы. При желании можно создать


отдельный раздел и для /usr, но, как правило, программное обеспечение (а

·-------------------------------------------·---------------------------···-··-----ID
Astra L,inux

оно в основном устанавливается в /usr) в Linux много места не занимает. В


общем, смотрите сами - никто не мешает ввести еще одну команду lvcreate.
Тем более что у нас еще осталось место (если учитывать, что у нас жесткий
диск на 1 ТБ).
Теперь разберемся, что и где мы создали. Просмотреть информацию по фи­
зическим томам, группам томов и логическим разделам можно с помощью
кoмaндpvdisplay, vgdisplay и lvdisplay соответственно.
Созданные нами разделы будут храниться в папке /dev/my_vg/. В этом ката­
логе вы найдете файлы home, tmp, var (правда, это будут ссылки, а не файлы,
но суть от этого не меняется).
Когда созданы логические тома, можно создать на них файловые системы
(отформатировать их). Вы можете использовать любую файловую систему,
я предпочитаю ext4:

# mkfs.ext4 -1 var /dev/my_vg/var


# mkfs.ext4 -1 home /dev/my_vg/home
# mkfs.ext4 -1 tmp /dev/my_vg/tmp
# mkswap -1 swap /dev/my_vg/swap
# swapon /dev/my_vg/swap

Первые три команды создают файловую систему ext4 на устройствах /dev/


my_vg/var, /dev/my_vg/home и /dev/my_vg/tmp. Последние две создают раз­
дел подкачки и активируют его.
Настало время заняться перемещением данных. Суть в следующем - нуж­
но подмонтировать поочередно новые тома и скопировать в них содержимое
/home и /var:

# mkdir /mnt/home
# mkdir /mnt/var

# mount /dev/my_vg/home /mnt/home


# mount /dev/my vg/var /mnt/var

# ер -а /home/* /mnt/home
# ер -а /var/* /mnt/var

...
# umount /mnt/home


# umount /mnt/var

. ..... .... ... . ......... ..... .. ... ...... ...... ..... ......... .. ............... .. ....
(ASTRA*LINUX") 1 .1ава 13. У11рав.1с1111с хра1111.111щсм

В папку /tmp копировать ничего не нужно. Нужно только изменить права


доступа:

# mkdir /mnt/tmp
# mount /dev/my_vg/tmp /mnt/tmp
# chmod -R a+rwx /mnt/tmp
# umount /tmp

Почти все. Теперь нужно добавить в /etc/fstab записи, монтирующие файло­


вые системы /home, /var, /tmp и указать в нем раздел подкачки:

/dev/mapper/my_vg-home /home ext4 relatime 1 1


/dev/mapper/my_vg-var /var ext4 relatime 1 1
/dev/mapper/my_vg-tmp /tmp ext4 noatime о 2
/dev/mapper/my_vg-swap none swap sw о о

Все готово. Осталось только ввести команду reboot, чтобы система пере­
загрузилась. Корневая файловая система осталась на старом жестком диске
(как и /usr), а каталоги, которые занимают больше всего места, были пере­
мещены на логические разделы LVM. ·


....................................................................................
� .. ® �

.. ASTRA LINUX
Глава 14.

Управление загрузкой ОС
Astra [,inux

14.1. Загрузчики Linux

Существует несколько загрузчиков Linux. На сегодняшний день основным


загрузчиком является GRUB2, который устанавливается по умолчанию во
всех современных дистрибутивах Linux.
Одним из самых "древних" загрузчиков является LILO (Llnux LOader). Этот
загрузчик давно уже не используется, и ему на смену пришел загрузчик
GRUВ (GRand Unified Bootloader). GRUB является более гибким загрузчи­
ком и "понимает" много разных файловых систем, в том числе FAT/FAT32,
ext2, ехtЗ, ReiserFS, XFS, BSDFS.
На смену GRUB пришел загрузчик GRUB2. Отличие GRUВ - очень за­
путанный и неудобный файл конфигурации, но время не стоит на месте, и
этот загрузчик уже не используется ни в одном современном дистрибутиве
- только GRUB2. К преимуществам GRUB2 можно отнести - поддержку
ext4 (а эта файловая система сейчас стандарт де-факто), загрузку с LVМ,
поддержку UEFI. Всех этих вещей в GRUB нет, поэтому его использование
сегодня невозможно.
Собственно, GRUB2 сейчас устанавливается во всех современных дистрибу­
тивах, и нет смысла возвращаться на GRUB. Если возникнет необходимость,
вы можете вернуться на обычный GRUB, установив пакет grub-legacy, но
такая возможность есть только для платформы х86.
llt ·............................................... -........................ -.... -. '
I 1ава 1-i. У11рав.1с1111t• щ1p�iкoii ОС

14.2. Загрузчик GRUB2


14.2.1. Конфигурационные файлы

В каталоге /etc/grub.d хранятся шаблоны, qпределяющие настройки GRUB2.


Также некоторые его параметры хранятся в файле /etc/default/grub. По
шаблонам из /etc/grub.d и файлу /etc/default/grub программой /usr/sЬin/grub­
mkconfig создается рабочий конфигурационный файл /Ьoot/gruЬ/grub.cfg,
который по задумке разработчиков GRUB2 вы не должны редактировать
вручную.
Поэтому есть две стратегии настройки GRUB2. Первая заключается в непо­
средственном редактировании файла /Ьoot/gruЬ/grub.cfg. Загрузчику GRUB2
все равно, кто или что отредактирует этот файл - вы или программа grub­
mkconfig. Вторая заключается в редактировании файлов из каталога /etc/
grub.d и файла /etc/default/grub. После чего вы будете должны ввести коман­
ду grub-mkconfig для создания файла /Ьoot/gruЬ/grub.cfg по заданным вами
настройкам.
Чтобы решить, какая из стратегий для вас лучше, нужно знать формат и со­
держимое всех этих файлов. Начнем с основного файла конфигурации, ко­
торый сложнее и длиннее файла конфигурации обычного GRUB (см. лист.
14.1).

Листинг 14.1. Файл конфигурации /boot/gruЬ/grub.cfg


#
# Не редактируйте этот файл вручную!
#
# Он автоматически генерируется программой grub-mkconfig по шаблонам
# из /etc/grub.d и настройкам из /etc/default/grub
#

### НАЧАЛО файла /etc/grub.d/OO_header ###


if [ -s $prefix/grubenv ]; then
load env
fi
# Загрузочная метка по умолчанию
set default="O"
if [ "${prev_saved_entry)" ]; then
set saved_entry="${prev_saved_entry)"
save_env saved_entry


set prev_saved_entry=
save_env prev_saved_entry

··················································································-l!!I
\st,·a (,i1111x (ASTRд*LINUX.J

set boot once =true


fi

function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="S{chosen}"
save env saved_entry
fi

function load video


insmod vbe
insmod vga
insmod video bochs
insmod video cirrus

insmod part_msdos
insmod ext2
# Корневое устройство
set root=' (hdO, msdosl)'
search --no-floppy --fs-uuid --set=root b7300e54-fff5-4f31-8002-bea43c64f344
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640x480
load video
insmod gfxterm
insmod part_msdos
insmod ext2
set root=' (hdO,msdosl)'
search --no-floppy --fs-uuid --set=root Ь7300e54-fff5-4f31-8002-bea43c64f344
set locale_dir = ($root)/boot/gruЬ/locale
set lang= ru_RU
insmod gettext
fi
terminal output gfxterm
set timeout= S
### КОНЕЦ файла /etc/grub.d/00 header ###

### НАЧАЛО файла /etc/grub.d/OS_debian_theme ###


insmod part_msdos
insmod ext2
# Корневое устройство
set root = ' (hdO, msdosl)'
search --no-floppy --fs-uuid --set=root Ь7300e54-fff5-4f3l-8002-bea43c64f344
insmod png
if background_image /usr/share/images/desktop-base/joy-grub.png; then
set color normal= white/Ыack
set color highlight= Ыack/white
else
set menu_color_normal=cyan/Ыue
set menu color_highlight=white/Ьlue
fi

l!ZI-··················································································
f 1,\1!,1 f-t � 111):IH.ll'lllll' Н\1 р� lh:011 ()(

### КОНЕЦ файла /etc/grub.d/05 debian theme ###

### НАЧАЛО файла /etc/grub.d/10 linux ###


# Содержит главную загрузочную метку. Далее мы ее рассмотрим подробнее
menuentry 'AstraLinuxCE.GNU/Linux with Linux 5.10.0-1038.40-generic' --class
debian --class gnu-linux --class gпu --class os {
load video
insmod gzio
insmod part_msdos
insmod ext2
set root=' (hd0,msdosl)'
search --no-floppy --fs-uuid --set=root b7300e54-fff5-4f31-8002-
bea43c64f344
echo 'Loading Linux 5.10.0-1038.40-generic...'
liпux /boot/vmlinuz-5.10.0-1038.40-generic root=UUID=b7300e54-fff5-4f31-
8002-bea43c64f344 ro initrd=/install/gtk/initrd.gz quiet
echo 'Loading ramdisk ... '
initrd /boot/initrd.img-5.10.0-1038.40-generic

menuentry 'AstraLinuxCE GNU/Linux with Linux 5.10.0-1038.40-generic (recovery


mode)' --class debiaп --class gnu-linux --class gnu --class os {
load video
insmod gzio
insmod part_msdos
insmod ext2
set root=' (hd0,msdosl)'
search --no-floppy --fs-uuid --set=root b7300e54-fff5-4f31-8002-
bea43c64f344
echo 'Loading Linux 5.10.0-1038.40-generic... '
linux /boot/vmlinuz-5.10.0-1038.40-generic root=UUID=b7300e54-fff5-4f31-
8002-bea43c64f344 ro single initrd=/install/gtk/initrd.gz
echo 'Loading ramdisk ... '
initrd /boot/initrd.img-5.10.0-1038.40-generic
}
### КОНЕЦ /etc/grub.d/10 linux ###

### НАЧАЛО /etc/grub.d/20_linux_xen ###


### КОНЕЦ /etc/grub.d/20 linux_xen ###

### НАЧАЛО /etc/grub.d/20_memtest86+ ###


# Метка для memtest86 - программы для проверки памяти
menuentry "Memory test (memtest86+)" {
iпsmod part_msdos
insmod ext2
set root=' (hd0,msdosl) '
search --no-floppy --fs-uuid --set=root b7300e54-fff5-4f31-8002-
bea43c64f344
linuxlб /boot/memtest86+.bin

menuentry "Memory test (memtest86+, serial console 115200}" {


insmod part_msdos
insmod ext2

................................············ --··· ········- -····. -·····- ........... ...
(ASTRд*LINUX"J

set root = ' (hd0,msdosl)'


search --no-floppy --fs-uuid --set= root b7300e54-fff5-4f31-8002-
bea43c64f344
linuxlб /boot/memtest86+.bin console =ttyS0,115200n8

menuentry "Memory test (memtest86+, experimental multiboot)"


insmod part_msdos
insmod ext2
set root= ' (hd0,msdosl)'
search --no-floppy --fs-uuid --set =root b7300e54-fff5-4f31-8002-
bea43c64f344
multiboot /boot/memtest86+ multiboot.bin

menuentry "Memory test (memtest86+, serial console 115200,


experimental multiboot)" {
insmod part_msdos
insmod ext2
set root= ' (hd0,msdosl)'
search --no-floppy --fs-uuid --set= root b7300e54-fff5-4f31-8002-
bea43c64f344
multiboot /boot/memtest86+ multiboot.bin console=ttyS0,115200n8

### КОНЕЦ /etc/grub.d/20_memtest86+ ###

# Далее этот файл я немного сократил, поскольку дальше в нем нет


ничего интересного

Файл огромный, и его синтаксис напоминает синтаксис Ьаsh-сценариев.


Если вы просмотрели этот конфигурационный файл, то вы уже догадались,
что делает программа grub-mkconfig: она собирает воедино все файлы из
каталога /etc/grub.d (кстати, в листинге 14.1 перечислена большая часть из
этих файлов) и вносит в общий конфигурационный файл из /etc/default/grub.
Основная запись из всего листинга 14.1 - это запись menuentry. Именно в
таких записях описываются элементы меню загрузчика GRUB.

menuentry 'AstraLinuxCE GNU/Linux with Linux 5.10.0-1038.40-generic' --class


debian --class gnu-liпux --class gnu --class os {
load video
insmod gzio
insmod part_msdos
insmod ext2
set root= ' (hd0,msdosl)'
search --no-floppy --fs-uuid --set=root b7300e54-fff5-4f31-8002-
bea43c64f344
echo 'Loading Linux 5.10.0-1038.40-generic ... '
linux /boot/vmlinuz-5.10.0-1038.40-generic root=UUID=b7300e54-fff5-4f31-
8002-bea43c64f344 ro initrd= /install/gtk/initrd.gz quiet
echo 'Loading ramdisk ... '

&1---------------------------------------------------------------------------------'
1.1,IB,I 1-i � 11paB.ll'lllll' ИI/ J)� и-:oii ос
initrd /boot/initrd.img-5.10.0-1038.40-generic

В одинарных кавычках после menuentry указывается название загрузочной


метки. Далее идут параметры, которые вообще можно не указывать, и от
этого DeЬian загружаться не перестанет. В фигурных скобках - основная
конфигурация. Директива load_video - это не что иное, как вызов функ­
ции load_video, которая также описана в этом файле конфигурации. Функ­
ция вставляет некоторые модули (команда insmod), необходимые для работы
графического режима. Обратите внимание, что команды insmod загружают
не модули ядра Linux, а модули GRUВ2, которые находятся в каталоге /Ьооt/
grub.
Внутри {} можно использовать команду echo для обозначения различных
этапов загрузки, что и сделано в нашем примере. Можете отказаться от echo,
на загрузку это никак не повлияет.
Основные команды - это linux и initrd. Первая указывает путь к ядру Linux
и задает параметры ядра. В нашем случае параметр ядра root указывает
устройство, на котором находится корневая файловая система. Устройство
указано в виде UUID. UUID-имeнa очень удобны. Представим, что у вас есть
один жесткий диск SATA и два контроллера. Если вы подключите его ко вто­
рому контроллеру, обычное имя изменится (например, было /dev/sda, а стало
/dev/sdb), а UUID-имя - нет. При желании вы можете указать имя в старом
формате, например, root=/dev/sdal . Параметр ядра ro задает монтирование
корневой файловой системы в режиме "только чтение" (это нормально, поз­
же она будет перемонтирована), initrd - задает файл RamDisk, а последний
параметр ядра quiet задает "тихую" загрузку ядра, при которой будут выво­
диться только самые важные сообщения.
Команда initrd задает путь к файлу initrd.
Теперь рассмотрим файл /etc/default/grub (листинг 14.2).

Листинг 14.2. Файл /etc/default/grub

# После редактирования этого файла запустите команду 'update-grub' для


# обновления файла /boot/gruЬ/grub.cfg.
# Для получения полной информации об этом файле введите команду
# info -f grub -n 'Simple configuration'

....
# Загрузочный элемент (menuentry по умолчанию)
GRUB DEFAULT=O
# Таймаут

'- - - .. - - - . - - . -...... -.. -.. -. -. -........ - - -.. - -.. - -. - . - - .. - -.. - - -.. - -.. - -... - - .. - -
\stп1 l,i1шx 1ASTRд*LINUX"J

GRUB TIMEOUT=S
# Задает название дистрибутива, не изменяйте эту строку
GRUB DISTRIBUTOR='lsb release -i -s 2> /dev/null 11 echo Debian'
# Параметры ядра Linux по умолчанию
GRUB_CMDLINE_LINUX DEFAULT="quiet"
# Еще одна строка для задания параметров ядра
GRUB_CMDLINE_LINUX="initrd=/install/gtk/initrd.gz"

# Раскомментируйте эту строку, если вы хотите отключить графический режим


#GRUB TERМINAL=console

# Разрешение в графическом режиме


# Вы можете использовать только те режимы, которые ваша видеокарта
# поддерживает через VBE. Просмотреть список
# таких режимов можно с помощью команды 'vbeinfo'
#GRUB GFXMODE=640x480

# Раскомментируйте эту строку, если вы не хотите


# использовать UUID-имeнa устройств
#GRUB DISABLE LINUX UUID=true

# Раскомментируйте, если хотите запретить генерирование меток восстановления


#GRUB DISABLE RECOVERY="true"

# Раскомментируйте, если хотите получить гудок при загрузке GRUB


#GRUB INIT TUNE="480 440 1"

Как видите, параметры из файла /etc/default/grub понятны и не нуждаются в


особых комментариях. Но в нем мы узнали о еще одной команде - update­
grub. Так какую из них использовать - update-grub или grub-mkconjig?
На самом деле это почти одна и та же команда. Дело в том, что команда
grub-mkconfig по умолчанию выводит конфигурацию GRUB2 на экран,
поэтому, чтобы она записалась в файл /Ьoot/gruЬ/grub.cfg, запускать ее нуж­
но так:

sudo grub-mkconfig > /boot/gruЬ/grub.cfg

Или же вы можете ввести команду update-grub, которая сделает то же самое.


Другими словами, команда update-grub - это сценарий, который вызыва­
ет только что приведенную команду. Как по мне, то использовать команду
update-grub удобнее.
Так какую стратегию GRUB2 использовать? Редактировать шаблоны и пара­


метры или сразу конфигурационный файл? Если вы работаете за компьюте-

... • --•. - -••- - •. - --•• - - •••---. - --•---•••••. - - •••• - ••••--- - с. -- -- -- --- • - • - - - - - - - • - - •••
( ASTRA"LINUX.) 1 l,IB<I 1--t )11paH.ll.'lllll' ШI р� lh:oii ()('

ром в гордом одиночестве и нет и не предвидится других администраторов,


тогда можете выбрать ту стратегию, которая вам больше нравится.
Если же есть или планируются другие администраторы, то нужно редакти­
ровать шаблоны и параметры вместо редактирования конфигурационного
файла вручную. Дело в том, что если вы внесете изменения непосредствен­
но в конфигурационный файл, а потом другой администратор захочет из­
менить какой-то незначительнь'Iй параметр, например, добавить гудок при
загрузке GRUВ2, то команда update-grub перезапишет все сделанные вами
изменения.

14.2.2. Выбор метки по умолчанию

Как правило, даже если у вас установлена одна только Linux, у вас будет не­
сколько загрузочных меток (несколько записей menuentry). Выбрать метку
по умолчанию можно с помощью параметра GRUВ_DEFAULT. Нумерация
меток начинается с О, то есть первой метке соответствует значение О.
После того, как вы установите другой номер метки по умолчанию, нужно
ввести команду .иpdate-grub и перезагрузить систему.
Другими словами, последовательность такая: редактируем файл /etc/default/
grub, изменяем значение параметра GRUB_DEFAULT и вводим команду
update-grub.

14.2.3. Загрузка Windows

Упор в этой книге делается на различное применение Astra Linux в разных


сферах жизнедеятельности, однако вдруг вы захотите установить Linux
на домашний компьютер, скорее всего, ей придется "сожительствовать" с
Windows.
Чтобы добавить возможность загрузки Windows из GRUB2, нужно отредак­
тировать файл /etc/grub.d/40_custom и добавить в него следующие строки:

menuentry "Windows (оп /dev/sdal)"


insmod part_msdos
insmod ntfs

,
set root=' (hdO, msdosl) '
search --no-floppy --fs-uuid --set UUID

................................................................................ ...
\str·a l,i1111, (ASTRд*LINUX"J

drivemap -s (hdO) ${root)


chainloader +l

Здесь Windows находится на /dev/sdal, и адрес этого раздела указывается в


set root. Значение UUID нужно заменить на UUID вашего Windows-paздeлa.
О том, как "вычислить" UUID раздела мы уже поговорили, надеюсь, с этим
не возникнет трудностей. Остальные параметры можете оставить без изме­
нения (еще не забудьте исправить hdO в drivemap, если Windows установлена
не на первом жестком диске).

14.2.4. Пароль загрузчика GRUB2

Загрузчик GRUВ позволял только устано�ить пароль - или общий, или на


загрузку определенной метки. Загрузчик GRUВ2 более гибкий в этом плане,
поскольку вы можете настроить не только пароли, но и логины. Также есть
минимальная система разграничения прав доступа.
Итак, в GRUB2 есть суперпользователь, который может редактировать
загрузочные метки. Существует возможность восстановить пароль root пу­
тем передачи ядру параметра init. Но для этого нужно отредактировать кон­
фигурацию GRUB2. Если вы установите пароль суперпользователя, то изме­
нить конфигурацию загрузчика вы сможете только после ввода этого пароля.
Также в GRUВ2 есть обычные пользователи, которые имеют право только
выбирать загрузочную метку. Они не имеют права редактировать конфигу­
рацию загрузчика. В принципе, можно обойтись одним паролем суперполь­
зователя, но при желании GRUB2 может довольно гибко разграничить права
пользователей.
Давайте сначала добавим пароль суперпользователя. Для этого в файл /etc/
grub.d/00_header добавьте строки:

set superusers= "main_admin"


password main admin 123456789

..
Первая команда задает суперпользователя main_admin, а вторая - задает


для него пароль. Старайтесь избегать общепринятых имен вроде admin,

.... . ............ . ..... ... ..... ........ ..... . .... .... ... . . .... . .. . . . .. . . .. . . . .. .. .
[ASTRд*LINUX"] 1 1,111,1 I� �11pa11.1t·1111t· 1a1 p�11,111iO(

root и т.д. Так у злоумышленника, который хочет изменить конфигурацию


GRUВ2, будет две неизвестны):(..
Пароль пока в незашифрованном виде, и это не очень хорошо. Поскольку
если загрузиться с LiveCD или LiveUSB, то его можно будет увидеть. Позже
я покажу, как зашифровать пароль.
Обычные пользователи задаются инструкцией password, например:

password me 12345

По сути main_admin тоже был бы обычным пользователем, если бы не


инструкция set superusers, которая делает его суперпользователем.
Представим, что у нас есть следующие строки:

set superusers= "main_admin"


password main_admin 123456789
password me 12345

Пользователь main_admin может загружать операционные системы и редак­


тировать конфигурацию GRUB2. Пользователь те может только загружать
операционные системы.
Если вы хотите, чтобы определенные метки могли загружать только опреде­
ленные пользователи, добавьте к menuentry параметр --users:

menuentry "Windows" --users me {


insmod part_msdos
insmod ntfs
set root=' (hdO,msdosl)'
search --no-floppy --fs-uuid --set UUID
drivemap -s (hdO) ${root}
chainloader +1

Теперь зашифруем пароль. Введите команду:


grub-mkpasswd-pbkdf2

. .. . . . . . .. . -.... -............ -........--.. -............. -... -........--.. - -· . .. ....


\st,·a [.i1111\

Программа запросит пароль, зашифрует его и выведет на экран его кэш. Вы


увидите что-то подqбное:

grub.pbkdf2.sha512.10000.9290F727ED06C38BA4549EF7DE25CF5642659211B7FC
076F2D27080136.887CFF169EA83D5235D8004742M7D6187A41E3187DFOCE14E256D
85ED97A979080136.887CFF169EA8335235D8004242M7D6187A41E3187DFOCE14E25
6D85ED97A97357AМ8FFOA3871AB9EEFF458392F462F495487387F685B7472FC6C29E
293FOAO

Данный хеш нужно указать вместо пароля пользователя. Однако вместо


инструкции passwd нужно использовать password_ybkdj2. Например:

password_pbkdf2 me grub.pbkdf2.sha512.10000.9290F727ED06C38BA4549EF7DE
25CF5642659211B7FC076F2D27080136.887CFF169EA83D5235D8004742M7D6187A41
E3187DFOCE14E256D85ED97A979080136.887CFF169EA8335235D8004242M7D6187A4
1E3187DFOCE14E256D85ED97A97357AМ8FFOA3871AB9�EFF458392F462F495487387F
685B7472FC6C29E293FOAO

После изменения файлов из каталога /etc/grub.d не забудьте ввести команду


upgrade-grub для обновления основного файла конфигурации.

14.2.5. Установка загрузчика

Команда установки загрузчика такая же, как и в случае с GRUВ:

# /sbin/grub-install <устройство>

Например:

# /sbin/grub-install /dev/sda

Поскольку GRUB2 у вас уже установлен, вряд ли вам придется вводить эту
команду. Исключение может составить разве что переустановка Windows,

...
которая перезапишет загрузочный сектор своим загрузчиком. Поэтому вам
придется загрузиться с LiveCD, выполнить chroot для вашей старой корне­

,
вой системы и ввести команду grub-install для установки загрузчика GRUB2 .

--- ----·. --. ·---·----. ------------------------- . ---. ·- --..-----....-....-··--..


l .1ана 1-1 � 11рав.1r111н· 1а1 р� Jкoii ОС

14.3. Система инициализации

После своей загрузки ядро передает управление системе инициализации.


Цель этой системы - выполнить дальнейшую инициализацию системы.
Самая главная задача системы инициализации - запуск и управление
системными службами.
Служба (сервис, демон)- специальная программа, выполняющаяся в фоно­
вом режиме и предоставляющая определенные услуги (или, как говорят, сер­
вис - отсюда и второе название). Что превращает обычный компьютер, ска­
жем, в FТР-сервер? Правильно, запущенная служба FTP - тот же ProFTPD
или подобная. Вы можете установить программу ProFTPD и настроить ее
на автоматический запуск системой инициализации. Тогда при каждой
загрузке наш компьютер будет превращаться в FТР-сервер. Аналогично и
с другими сервисами - достаточно установить определенную программу,
чтобы превратить компьютер в веб-сервер или почтовый сервер. Но стоит
вам отключить ее, и компьютер уже прекращает предоставлять обеспечива­
емые программой услуги, следовательно, превращается в самый обычный
компьютер.
В мире Linux существовало очень много разных систем инициализации -
init, upstart, init-ng. Все их рассматривать уже нет смысла, поскольку в совре­
менных дистрибутивах используется современная система инициализации
systemd.
systemd - подсистема инициализации и управления службами в Linux,
фактически вытеснившая в 2010-е годы традиционную подсистему init.
Основная особенность - интенсивное распараллеливание запуска служб
в процессе загрузки системы, что позволяет существенно ускорить запуск
операционной системы. Основная единица управления - модуль, одним из
типов модулей являются "службы" - аналог демонов - наборы процессов,
запускаемые и управляемые средствами подсистемы и изолируемые
контрольными группами.

14.3.1. Принцип работы

Система инициализации systemd используется во многих современных дис­

•.......--...-...-....... ----....------.---------------.---------------. -----.---.· ID


трибутивах, в частности в Fedora, UЬuntu, CentOS и openSUSE. На данный
\st,·a 1,iщн �

момент это самая быстрая система инициализации. В Astra Linux использу­


ется немного модифицированный ее вариант - systemdgenie.
Давайте подумаем, как можно ускорить запуск Linux? Можно пойти по пути
upstart - параллельно запускать службы. Но параллельный запуск - не
всегда хорошо. Нужно учитывать зависимости служб. Например, сервис
d-bus нужен многим другим сервисам. Пока сервис d-bus не будет запушен,
нельзя запускать сервисы, которые от него зависят.
Если сначала запускать основные сервисы и ждать, пока они будут запуще­
ны, а потом уже запускать службы, которые от них зависимы, особого
выигрыша в производительности по сравнению с init вы не увидите. Но если
сервис d-bus (или любой другой, от которого зависят какие-то другие серви­
сы) запускается долго, то все остальные службы будут ждать его.
Как обойти это ограничение? При своем запуске службы проверяют, запу­
щена ли необходимая им служба, по наличию файла сокета. Например, в
случае с d-bus - это файл /var/run/dbus/system_bus_socket. Если мы созда­
дим сокеты для всех служб, то мы можем запускать их параллельно, осо­
бо не беспокоясь, что произойдет сбой какой-то службы при запуске из-за
отсутствия службы, от которой они зависят. Даже если несколько служб,
которым нужен сервис d-bus, запустятся раньше, чем сам сервис d-bus, -
ничего страшного. Каждая из этих служб отправит в сокет (главное, что он
уже открыт!) сообщение, которое обработает сервис d-bus после того, как он
запустится. Вот и все.
Но это не единственное "ухищрение", посредством которого осуществля­
ется ускорение запуска компьютера, инициализацию которого производит
systemd. Эта система инициализации запускает только необходимые сер­
висы. Остальные же будут запущены по мере необходимости. Концепция
отложенного запуска используется и в других операционных системах -
например, в MacOS Х (там система инициализации называется launchd) и в
Windows (концепция отложенного запуска служб). Так что решение не очень
новое, но зато проверенное.
Основными функциями systemd являются:

• Активация на основании сокетов - система инициализации systemd


прослушивает сокеты всех системных служб. Сокеты передаются систем­
ным службам сразу после запуска сервисов. Благодаря этому осуществля­
ется параллельный запуск сервисов. Также это позволяет перезапускать


сервисы без потери любых отправленных им сообщений, то есть пока

са---------------------------------------------------------------------------------·
l 1,1на 1--1. �11ра11.1t•11ш· ш1p�11,11iiOC

сервис перезапускается, отправленные ему сообщения накапливаются, и


он сможет их обработать после того, как будет запущен.
• Активация на основании устройств - systemd может запустить опре­
деленные службы, когда станет доступным определенный тип оборудова­
ния. Например, вы подключили Bluetooth-aдaптep, может быть запущен
сервис Ыuetooth.
• Активация на основании d-bus - служба инициализации может запу­
стить сервисы, которые используют d-bus для межпроцессного взаимо­
действия, например, когда клиентское приложение попытается связаться
с системной службой.
• Активация на основании путей - systemd может запустить службу,
если изменится содержание каталога.
• Управление точками монтирования и автоматическим монтирова­
нием - система инициализации отслеживает и управляет точками мон­
тирования и автоматического монтирования.
• Снимки системных состояний - благодаря этой возможности systemd
может сохранить состояние всех модулей и восстановить предыдущее
состояние системы.
• Параллелизация - systemd запускает системные службы параллельно
благодаря активации на основании сокетов. Параллельная активация су­
щественно сокращает время загрузки системы.
• Обратная совместимость с SysV - поддерживаются сценарии инициа­
лизации SysV, что упрощает переход на systemd. Однако все устанавли­
ваемые в современных дистрибутивах пакеты служб уже адаптированы
под systemd, поэтому не нужно надеяться, что во время установки пакета
какого-то сервиса будут установлены SуsV-сценарии. Будут созданы фай­
лы, необходимые для запуска сервиса посредством systemd.

14.3.2. Конфигурационные файлы systemd

Обилие различных конфигурационных файлов systemd может ввести в сту­


пор даже бывалого линуксоида, не говоря уже о пользователе, который впер­
вые видит systemd. Когда я впервые познакомился с systemd, у меня было

•. . ....
только одно желание - снести ее и установить вместо нее init. Но мы это

....................-.... -..-....... -- -.......... -- -........ -........ -.--....-


\,tra l.irнr,

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


работает эта система.
В systemd используется концепция модулей (юнитов ). Существующие типы
модулей описаны в таблице 14.1.

Таблица 14.1. Типы модулей системы инициш,изации systemd

Тип Описание

Служба (сервис, демон), которую нужно запустить. Пример


имени модуля: network.service. Изначально systemd поддер­
живала сценарии SysV (чтобы управлять сервисами можно
service было, как при использовании init), но в последнее время
в каталоге /etc/init.d систем, которые используют systemd,
практически нет (или вообще нет), а управление сервисами
осуществляется только посредством systemd

Цель. Используется для группировки модулей других типов.


В systemd нет уровней запуска, вместо них используются
target цели. Например, цель multi-user. target описывает, какие мо­
дули должны быть запущены в многопользовательском ре­
жиме

Снимок. Используется для сохранения состояния systemd.


Снимки могут использоваться для перевода системы из од­
snapshot
ного состояния в другое, например, в состояние сна и про­
буждение

Точка монтирования. Представляет точку монтирования.


Система инициализации systemd контролирует все точки
mount монтирования. При использовании systemd файл /etc/fstab
уже не главный, хотя все еще может использоваться для
определения точек монтирования

Автоматическая точка монтирования. Используется для


automount монтирования сменных носителей - флешек, внешних
жестких дисков, оптических дисков и т.д.


111--------------·-. --.---...-----------------. -----·--------------------------------.
1 1а11,1 1-1. � 11рав. 1t•1111e J:.11 р� и,oii ОС

Сокет. Представляет сокет, находящийся в файловой си-


стеме или в Интернете. Поддерживаются сокеты AF_INET,
AF_INET6, AF_UNIX. Реализация довольно интересная.
socket
Например, если сервису servicel.service соответствует со-
кет servicel.socket, то при попытке установки соединения с
service 1.socket будет запущен service 1.service

Устройство. Представляет устройство в дереве устройств.


Работает вместе с udev: если устройство описано в виде
device
правила udev, то его можно предс�авить в systemd в виде
модуля device

path Файл или каталог, созданный где-то в файловой системе

scope Процесс, который создан извне

Управляет системными процессами. Представляет собой


slice
группу иерархически организованных модулей

Представляет область подкачки (раздел подкачки) или файл


swap
подкачки (свопа)

Представляет собой таймер системы инициализации


timer
systemd

Модули хранятся в следующих каталогах:

• /etc/systemd/system/ - обладает самым высоким приоритетом. Здесь со­


держатся модули, которые созданы и управляются системным админи­
стратором.
• /run/systemd/system/ - модули, созданные во время выполнения. При­
оритет этого каталога ниже, чем каталога /etc/systemd/system/, но выше,
чем у /usr/liЬ/systemd/system.
• /usr/IiЬ/systemd/system/ - модули, которые установлены из пакетов.

• . ....
Типичный файл модуля типа service приведен в листинге 14.2 .

-- ... - -.. - -...- .... - - - ................... -........ -... -


. . . .. . . - -.. - -........ -..
.\st.-a l,i1111x

Листинг 14.2. Типичный файл модуля типа service


[Unit]
Description= Daemon to detect crashing apps
After=syslog.target

[Service]
ExecStart= /usr/sbin/abrtd
Type= forking

[Install]
WantedBy =multi-user.target

В секции Unit содержится общая информация о сервисе. Эта секция есть и в


других модулях, а не только в сервисах.
Секция Service содержит информацию о сервисе. Параметр ExecStart опи­
сывает команду, которую нужно запустить. Параметр Туре указывает, как
сервис будет уведомлять systemd об окончании запуска.
Секция Install содержит информацию о цели, в которой должен запускать­
ся сервис. В нашем видно, что сервис будет запущен при активации цели
multi-user. target.
Вы можете использовать эту "болванку" для написания собственного серви­
са, который потом нужно поместить в файл /etc/systemd/systern/имя_сервиса.
service. После этого нужно перезапустить саму systemd, чтобы она узнала о
новом сервисе:

# systemctl daemon-reload

14.3.3. Цели

Теперь поговорим о целях. Файлы целей * .target предназначены для груп­


пировки вместе других юнитов systemd через цепочку зависимостей. Так,
модуль цели graphical.target, который используется для запуска графическо­
го сеанса, запускает системные службы GDM (файл gdm.service) и Accounts
Service (accounts--daemon.service), а также активирует цель multi-user.target.
В свою очередь, цель multi-user.target запускает другие системные службы,


например, D-Bus (dbus.service) и активирует другие цели вроде basic.target.

.....................................................................................
Гшша 14. У11равле11ие .1а1·рушой ОС

В systemd имеются предопределенные цели, которые напоминают стандарт­


ный набор уровней запуска.
Некоторые цели называются runleve/N target, чтобы упростить переход быв­
ших пользователей init на systemd, а именно:

• poweroff.target (пшlevelO.target) - завершение работы и отключение


системы;
• rescue.target (runlevell .target)- однопользовательский режим, среда вос­
становления;
• multi-user.target (runlevel2.target, runlevelЗ.target, runlevel4.target) - мно­
гопользовательский режим, без графического интерфейса;
• graphical.target (runlevel5.target) - многопользовательский режим с гра­
фическим интерфейсом;
• reboot.target (rt1nlevel6.target) - завершение работы и перезагрузка
системы.

Управление службами осуществляется с помощью программы systemctl.


Подробнее о службах мы поговорим чуть позже, а пока разберемся, как ис­
пользовать systemctl для завершения работы системы:

• systemctl halt - останавливает систему;


• systemctl poweroff- выключает систему;
• systemctl reboot - перезагружает систему.

Многим пользователям будет удобнее использовать старые команды halt,


f
powerof и reboot. Но все же теперь вы знаете, что есть альтернативные спо­
·собы завершения работы.

14.4. Управление сервисами при использовании


systemd

При использовании системы инициализации systemd управление службами


осуществляется посредством программы systemctl. Команда systemctl

...... .. . .. . ..... ........... . .. ..······.........................................--fJII


:\stra Linux

используется для разных целей, поэтому в таблице 14.2 представлены не все


ее параметры, а только те, которые имеют отношение к сервисам.

Таблица 14.2. Параметры программы systemctl

Параметр Описание

start <uмя.service> Запускает сервис

stop <uмя.service> Останавливает сервис

restart <uмя.service> Перезапускает сервис

Перезапуск сервиса только, если он запу-


try-restart <uмя.service>
щен

reload <uмя.service> Перезагружает конфигурацию сервиса

status <uмя.service> Отображает подробное состояние сервиса

Отображает только строку active (сервис


is-active <uмя.service>
запущен) или inactive (остановлен)

list-units --type service --all Выводит состояние всех сервисов

Включает сервис (обеспечивает его автома-


епаЫе <uмя.service>
тический запуск)

Отключает сервис (сервис не будет автома-


disaЫe <uмя.service>
тически запускаться при запуске системы)

rеепаЫе <uмя.service> Деактивирует сервис и сразу его использует

Выводит список всех сервисов и сообщает,


list-unit-files --type service
какие из них активированы, а какие - нет

Примеры:

,
# systemctl start httpd.service
# systemctl stop httpd

..................................................................................
Глава 14. Управление Ja1р�· Jкой ОС

Первая команда запускает сервис httpd (веб-сервер), вторая - останавлива­


ет. Обратите внимание, что ".service" можно не указывать.
Бывалые пользователи Linux сразу заметят удобства. Ранее, чтобы отклю­
чить службу на определенном уровне запуска, нужно было удалить ее сим­
волическую ссылку из определенного каталога. Аналогично, чтобы служба
запускалась на определенном уровне запуска (например, в графическом ре­
жиме), нужно было создать символическую ссылку. Сейчас всего этого нет,
а есть только команды епаЫе и disaЬle, что гораздо удобнее.

'. --.----. ------------.---.---..---.----..--.----.--.----.--------.. -------.----.---f.111


� .. ® ·�

.. ASTRA LI N UX
Глава 15.

Управление процессами
Astra Linux 1дsтяд"'LINUX"1

15.1. Команды ps, nice и kill

15.1.1. Получение информации о процессе

Современные операционные системы устроены так, что каждому процессу


присваивается уникальный номер-РID (Process ID, ИД процесса), исполь­
зуя который можно управлять процессом, например, можно завершить про­
цесс или изменить его приоритет.
Узнать PID можно с помощью команды ps. Команда ps, введенная без па­
раметров, просто показывает список процессов, запущенных на текущем
терминале. Видно, что сейчас запущен bash и сама команда ps (правда, на
момент завершения вывода процесс с ID 3535 уже не будет существовать, но
на момент самого вывода такой процесс существовал), см. рис. 15.1.
Параметр -а позволяет вывести список всех процессов пользователя. Посмо­
трите на рис. 15.2-на консоли ttyЗ запущена программа nano, на консоли
ttyl -программа ps.

----·------------------------------------------------------------------------------·

r�1ава 15. У11рав.1е1ше 11роцесса:ш1

Рис. 15.1. Команда ps

Рис. 15.2. Команда ps -а

Если нужно вывести процессы какого-то определенного пользователя, тогда


используйте параметр -и:

$ ps -u root

Вывести абсолютно все процессы можно с помощью опции -А. Обратите


внимание на регистр опции! Поскольку в системе процессов будет очень
много, лучше перенаправить вывод программы на команду less для более
удобного просмотра (рис. 15.3):

$ ps -А I less

·------·---··-------··--···-··----·--···-···-·····--·-·-·-··--········-···-·······l!FI
Astra Linux

Рис. 15.За. Команда ps -А I less (начало вывода)

Рис. 15.36. Команда ps -А I less (завершение вывода)

Примечание. Для выхода из программы less нажмите q на кла­


виатуре. Листать вывод можно стрелками вверх и вниз.


Глава 15. Управление процессами

Команда ps сортирует процессы по PID. Колонка ТТУ - это терминал, к


которому привязан процесс. Если в этой колонке вы видите знак ? , значит,
процесс не привязан ни к одному из терминалов. Как правило, это систем­
ные процессы-службы. Они запускаются без привязки к терминалу. Чтобы
отобразить только процессы без привязки к терминалу, используется опция
-х (рис. 15.4).

Рис.15.4. Команда ps -х I less

Колонка STAT - это состояние, в котором находится процесс. Возможные


значения для этой колонки приведены в таблице 15.1. Обратите внимание:
колонка STAT есть только тогда, когда программа запущена с параметром -х.
Если программа запущена с другими параметрами, например -А, вместо нее
будет колонка TIME, которая сообщает занимаемое процессом процессорное
время.

Таблица 15.1. Возможные состояния процесса

Состояние Описание
Процесс в непрерывном сне (как правило, ожидает ввода/
D
вывода)
R Выполняется в данный момент
Ожидание (то есть процесс «спит» менее 20 секунд, после
s
.,··-··--····-·----------···----·------------·-------·-------------·-------···--·------
чего он переходит или в состояние R или в состояние D)
Лstra Linux

т Процесс остановлен

То же, что и Т, но причина остановки- останов отладчи-


t
ком

w Процесс в свопинге (подкачке)

х Процесс мертв, вы его никогда не увидите

Процесс-зомби- он уже завершен, но не «похоронен» его


родителем, то есть процесс-родитель еще не считал код
завершения

У команды ps есть несколько синтаксисов установки параметров. Мы


использовали ВSD-синтаксис. Например, для вывода всех процессов в стан­
дартном синтаксисе используется команда -е, а в нашем случае - -А. Вы
вольны использовать любой синтаксис, но в случае с ВSD-синтаксисом про­
грамма р s выводит дополнительное состояние процесса (работает подобно
программе ps в системе BSD). Дополнительное состояние процесса описа­
но в таблице 15.2.

Таблица 15.2. Дополнительное состояние процесса (ВSD-синтаксис)

Состояние Описание
< Высокий приоритет

N Низкий приоритет

L У процесса есть страницы, заблокированные в памяти

s Это лидер сессии

1 Процесс является многопотоковым


+ Находится на первом плане в группе процессов

Последняя колонка вывода ps - это смо. Она содержит команду, которой


был запущен процесс. Не просто название исполнимого файла, но путь (если


он был указан в команде) и переданные программе параметры.

1111-.. --. -. --.. -------.. ------.. ---. ---. ----.. --.. ---. ---. ---------. ---.--. ---... -....
Гтша 15. У11рав.1е1ше 11роцесса,111

Если программа была запущена без указания полного пути к исполнимому


файлу и вы хотите знать, где он находится, введите команду which, например:

$ which nano
/Ьin/nano

Если вам нужно узнать PID определенного процесса, но вам не хочется


просматривать длинный список системных процессов, используйте команду
grep как фильтр. Например, следующая команда позволит нам узнать PID
процесса sshd (это SSH-cepвep):

# ps -А I grep sshd

Если такой процесс не запущен, вывод будет пуст. Или же вы получите вы­
вод вроде этого:

929 ? 00:00:00 sshd

15.1.2. Изменение приоритета процесса

Когда мы знаем PID процесса, мы можем изменить его приоритет. В неко­


торых случаях полезно изменить приоритет процесса. Например, можно по­
высить приоритет процесса, выполняющего _резервное копирование, чтобы
программа успела за ночь создать все необходимые резервные копии и что­
бы этот процесс утром не мешал нормальной работе сервера.
Запустить программу с определенным приоритетом можно командой nice:

# nice -n <приоритет> команда аргументы

'Здесь приоритет задается от -20 (максимальный приоритет) до 19 (мини­


мальный). Если процесс уже был запущен и вы не можете его прерывать, но
повысить приоритет нужно, используйте команду renice:

....
# renice -n <приоритет> -р PID
'.
-------- - --- - - --.- ... ---. - - ... --... - ... - --. - - --. --.. - -- . - - ... ---.. --.--.... -- .. -
Astra Linux

15.1.3. Аварийное завершение процесса

Если процесс завис и его нельзя завершить, как обычно, тогда для его ава­
рийного завершения используется команда kill. Формат вызова этой ко­
манды следующий:

$ kill [опции] PID

Конечно, перед этим нужно узнать PJD процесса. На рис. 15.5 изображена
команда kill в действии: сначала я вывел список процессов, чтобы узнать
PID процесса nano (1035), затем я ввел команду kill 1035, чтобы «убить»
этот процесс. Наконец, я вывел список процессов еще раз, чтобы убедиться,
что процесс nano завершен.
lгoot!Hoca llюst ·· Jtt ps ,i

Р lD 'Г[У Т1 МЕ СМD
ШЗ�J НцЗ 00: 00: 00 11,ню
112�, t.ttJ1 flfl: 00: 00 ps
lгootЯlocil !lюst ,,, Jlt hi 11 10:б
[rooHIJш:illlюst "111

Рис. 15.5. Использование команды kill

Используя параметры программы, можно по-разному завершить процесс.


Самый эффективный сигнал 9 (KILL) - означает аварийное завершение
процесса. Программа не может игнорировать или как-либо обработать этот
процесс.
Если нужно попытаться корректно завершить работу программы, ей отправ­
ляют сигнал 15 (ТЕRМ), означающий, что программа должна освободить

...
все занятые ресурсы, сохранить все данные. Вот только если программа за­
висла и не отвечает на запросы пользователя, этот сигнал мало чем поможет,
но попытаться стоит.

- - .. - - - - - - . - - - - - - . - .. - - - - - - . - - . - . - - . - .. - - - . - - - - - - - - - - . - - - . - - .. - - - - . - . - - - - - .. - - . - - .
Глава 15. Управление процессами

Сигнал 19 (STOP) позволяет временно приостановить работу программы, а


сигнал 18 (CONT) - возобновить приостановленный ранее процесс.
Для сетевых служб полезен сигнал 1 (HUP), означающий, что процесс дол­
жен перезапуститься и перечитать файл конфигурации. Полезно, когда вы
изменили файл конфигурации и хотите, чтобы демон был перезапущен (хотя
для этого правильнее использовать команду service). Обычная программа
при получении сигнала 1 завершает работу.
Пример отправки сигнала:

$ kill -9 1035

Если вам лень получать PID процесса, можно завершить его и по имени, ис­
пользуя команду killall, например:

$ killall nano

Вот только если в вашей системе есть два процесса с именем папо, напри­
мер, один на консоли tty2, а другой - на tty4, то будут завершены оба
процесса. Если это то, что вам нужно, используйте killall, в противном
случае лучше использовать команду kill для завершения именно того про­
цесса, который можно завершить.
Еще есть команда xkill, позволяющая «убить» программу, имеющую гра­
фический интерфейс. Такие программы можно завершить и командой kill,
но программа xkill предоставляет графический метод завершения. После
ввода этой команды указатель мыши примет вид черепа. Для завершения
программы нужно щелкнуть по ее окну.

15.2. Команда top

Как было отмечено ранее, программа ps по умолчанию сортирует процессы


по колонке PID, а не по колонке TIME. Конечно, можно использовать раз­
личные параметры программы, чтобы добиться нужного нам вывода, но все
равно программа не будет показывать ситуацию в реальном времени. Если
же вам нужно знать, что происходит с вашими процессами в реальном вре­
мени, вам нужно использовать программу top (рис. 15.6).
'-----------------..------..· --------......--... --.. --. -. --. -. ---. -... --..-. -. --..-fll
Лstra Linux [ASTRд*LINUX"J

Рис. 15.6. Команда top

Назначение колонок программы описано в таблице 15.3.

Таблица 15.3. Колонки программы top

Колонка Описание

PID PID процесса

Владелец процесса (пользователь, запустивший програм-


USER
му)

PR Приоритет процесса

NI Значение nice (см. ранее)

VIRT Виртуальная память, которая используется процессом

Размер процесса, который не перемещается в область


RES
подкачки

..
SHR Разделяемая память, используемая процессом


s Состояние процесса (см. табл. 15.1)

. --..- -....... - -.. -..... -· .................. - -.. - - .... -... -... - --.. --........ -... '
(ASТRд*LINUX") !�1ава 15. У11рав.1е11ие 11роцесса,111

Процессорное время, занимаемое процессом в данный


¾CPU
момент
¾МЕМ Память, используемая процессом

Процессорное время, которое было потрачено с момента


ТIМЕ+
запуска процесса

COMMAND Команда запуска процесса

При просмотре списка программы top вы можете управлять сортировкой


процессов с помощью нажатия к лавиши F, которая изменяет колонку, по ко­
торой сортируется список процессов (рис. 15.7). По умолчанию сортировка
выполняется по колонке %CPU.

Рис. 15. 7. Выбор колонки, по которой осуществляется сортировка

Нажатие к лавиши <U> показывает только процессы определенного пользо­


вателя. После нажатия <U> нужно будет ввести имя пользователя, процессы
которого вы хотите просмотреть, или нажать Enter, чтобы просмотреть про­
цессы всех пользователей .

•.----------·. --...--·.--.... -. -----. --------· ------.----·---..---.---.·--·.--.----tD


Astra l,inux

15.3. Информация об использовании памяти и


дискового пространства

Хотя управление памятью и дисковым пространством не совсем относит­


ся к управлению процессами, но эти самые процессы активно «поедают»
как память, так и дисковое пространство, поэтому иногда полезно знать, как
просмотреть информацию об использовании памяти (команда free) и дис­
кового пространства (команда df), см. рис. 15.8.

Рис. 15.8. Ко.111анды free и df -Н

Программа free выводит информацию об использовании памяти (Mem) и


подкачки (swap). Колонка total -это общее количество памяти в к илобай­
тах, used -использованное количество памяти (тоже в килобайтах), free
- свободно памяти, shared -разделяемая память, buff/cache - размер
кэша, availaЫe -общий объем доступной памяти.
Параметр -Н команды df означает вывод информации об объеме в удобных
для восприятия человеком единицах, то есть в мегабайтах и гигабайтах.
Обратите внимание на значение buff/cache в выводе команды free. Оно
показывает, сколько памяти задействовано под буфер ввода/вывода и кэш.
В нашем случае (рис. 15.8) - примерно 323 Мб. На реальном сервере это
значен11е будет гораздо выше. Немного освободить память можно, очистив
кэш. Для этого введите команду:

sync; echo 3 > /proc/sys/vm/drop caches


ID---..--.. -........ --.. -..-.. ----... -..�-. ------.. ---. --. -----. ---------------..--'
Глава 15. У11равле1111е процессами

Сначала мы командой sync сбрасываем содержимое буферов на диск, а за­


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

Рис. 15.9. До и после ввода команды sync; echo 3 > /proc/sys/vm/


drop_caches

15.4. Команда fuser

Команда fuser позволяет узнать, какой процесс открыл тот или иной ресурс,
например, файл или сетевой порт. Примеры использования программы:

fuser -va 23/tcp


fuser -va /chroot/etc/resolv.conf

В первом случае мы получим идентификатор процесса, открывшего ТСР­


порт 23, во втором - идентификатор процесса, открывшего файл /chroot/etc/
resolv.conf. Что делать далее - решать вам, например, можно «убить» этот


процесс командой kill .

···································••.•············································-&1
Astra L.inux

15.5. Планировщики заданий


15.5.1. Планировщик cron

Планировщик заданий нужен для периодического выполнения каких-либо


заданий. Задания могут быть самыми разнообразными - очистка временно­
го каталога для экономии места, очистка кэша, обновление баз антивируса,
запущенного на почтовом сервере и т.д. Никаких ограничений нет - вы
можете написать на bash небольшой сценарий с необходимыми вам действи­
ями, а затем настроить планировщик для его периодического выполнения.
Самый древний планировщик заданий - cron. Он появился еще во времена
первых версий UNIX. Но примечательно то, что в современных дистрибу­
тивах используется его модифицированная версия, которая настраивается
практически так же. Так, в современных версиях дистрибутивов openSUSE
и Fedora используется демон cronie, который является потомком того самого
демона cron.
Не будем вникать в тонкости новой версии, а просто разберемся, как ее на­
строить. Как и в том самом cron, в cronie есть файл /etc/crontab - это табли­
ца расписания планировщика задач. Формат записей в этом файле следую­
щий:

минуты (0-59) часы (0-23) день (1-31) месяц (1-12) день_недели


(0-6, О - Вс) команда

В листинге 15 .1 приведен пример этого файла по умолчанию.

Листинг 15.1. Пример файла /etc/crontab


SHELL=/Ьin/bash
PATH=/usr/Ьin:/usr/sЬin:/sЬin:/Ьin:/usr/liЬ/news/Ьin
МAILTO=root

- *.15 * * * * root test -х /usr/liЬ/cron/run-crons && /usr/liЬ/


cron/run-crons >/dev/null 2>&1

Примечание. Просмотреть (даже просмотреть, не говоря уже


о модификации!) файл /etc/crontab может только пользователь


root. Поэтому сначала нужно получить права root, а затем уже
что-либо делать с файлом /etc/crontab.

ВI-------------------------------------------------------------···--··--··-·-··--··-·
!11ава 15. У11рав.1с1111с 11ронессами

Переменная SHELL задает путь к оболочке, РАТН - путь поиска программ,


а MAILTO определяет имя пользователя, которому будет отправлен отчет
о выполнении расписания. В таблице расписания всего одна запись - она
проверяет наличие сценариев в каталогах cron.hourly, cron.daily, cron.weekly
и cron.monthly и их выполнение. Об этом мы поговорим чуть позже.
Представим, что вам нужно выполнять какой-то сценарий каждый день в
8:30. Для этого в /etc/crontab нужно добавить строку:

30 8 * * * /usr/bin/script arguments

Однако планировщик предлагает более удобный способ изменения таблицы


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

#/Ьin/bash
/путь/ myscript аргументы

Сохраните файл и установите право выполнения для этого файла:

chmod +х myscript

Только что вы создали простейший сценарий, который просто выполняет


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

• /etc/cron.hourly - содержит сценарии, которые будут вьшолняться каж­


дый час;
• /etc/cron.daily - содержит сценарии, который будут выполняться еже­
дневно;
• /etc/cron.weekly - сюда нужно поместить сценарии, которые будут вы­
полняться еженедельно;
• /etc/cron.monthly - содержит сценарии, которые будут выполнены раз

• в месяц.

················-·································································&I
Astra l.inux

Просто поместите сценарий в один из этих каталогов и положитесь на cron


- далее вашего вмешательства не требуется.
Также существует возможность создать отдельное расписание для каждого
пользователя. Для этого используется команда crontab. Однако такая воз­
можность на современных серверах (когда пользователи не работают с тер­
миналом сервера непосредственно) используется довольно редко. При этом
в файл /etc/cron.deny заносятся пользователи, которым запрещено использо­
вать планировщик cron. Если вам нужно отредактировать таблицу расписа­
ния для каждого пользователя, используйте команду crontab. В большин­
стве случаев команда будет такой:

crontab -е -u <имя пользователя>

После этого откроется текстовый редактор (определенный в переменной


окружения EDIТOR) для редактирования таблицы расписания указанного
пользователя. Синтаксис такой же, как для общесистемной таблицы распи­
сания.

15.5.2. Планировщик anacron

Планировщик anacron - еще один форк старого доброго планировщика


cron. Ситуация с anacron такая: когда стало понятно, что cron устарел, на­
чали появляться альтернативные планировщики, подобные ему. У каждого
из них были свои преимущества и недостатки, но некоторые разработчики
дистрибутивов остановили свой выбор на планировщике anacron. Однако
прошло время, и сейчас этот планировщик практически не используется. В
основном используется планировщик cronie, который настраивается прак­
тически так же, как и cron, что и было показано ранее.
Конечно, вам могут встретиться дистрибутивы, в которых по каким-то
причинам используется anacron. Как правило, это устаревшие версии
дистрибутивов. Если же вы обнаружили anacron в современной версии
дистрибутива, то, скорее всего, это личное предпочтение разработчиков
дистрибутивов.
Основное «визуальное» отличие этого планировщика - наличие файла
/etc/anacrontab вместо просто /etc/crontab. Формат записей также другой:


&lt··················································································
(ASTRд*LINUX"J Глава 15. УnравJ1е11ие nроцессаl\1и

Период Задержка ID Команда

Пример таблицы расписания anacrontab:

1 5 cron.daily run-parts /etc/cron.daily


7 10 cron.weekly run-parts /etc/cron.weekly
30 75 cron.monthly run-parts /etc/cron.monthly

Принцип прост: как и в предыдущем случае, вам нужно поместить ваш


сценарий в один из каталогов /etc/cron.daily, /etc/cron.weekly или /etc/cron.
montЫy (каталога cron.hourly для этого планировщика не было предус­
мотрено).
По сути, как только вы увидели каталоги cron.dai\y, cron.weekly или cron.
monthly, можете сразу помещать в них свои сценарии, особо не разбираясь,
какой планировщик установлен. Самое главное, чтобы служба cron была
включена.


. - - ..... - - - . - - ·- - ....... - .... - - - .. - - -.. - - .. - - - - - . -.. - - -.. - - .. - -... - ... - - -. - - -.. - - ....
� .. ®

ASTRA LINUX
Глава 16.

Пользователи и группы
Astra l,inux

16.1. Введение в учетные записи Astra Linux

Операционная система Linux поддерживает регистрацию и одновременную


работу множества пользователей. Обратите внимание: именно одновремен­
ную работу. Раньше, еще во времена UNIX, были компьютеры, к которым
подключалось несколько мониторов и клавиатур. Каждый комплект
монитор + клавиатура назывался терминалом и представлял собой от­
дельное рабочее место пользователя. Пользователь входил в систему, а его
рабочее место в системе отображалось как ttyN, где N - номер рабочего
места.
Сегодня такие компьютеры уже более не востребованы, их вытеснили персо­
нальные компьютеры, которые и стали называться персональными, посколь­
ку предполагают подключение только одного рабочего места. Мониторов
можно подключить несколько, а устройство ввода - клавиатура будет одна.
Но даже на таких компьютерах возможна одновременная работа несколь­
ких пользователей. Например, вы можете войти в систему как обычно -
посредством графического интерфейса. Другие пользователи смогут войти

...
через ssh или FTP. И все вы будете работать с системой одновременно. SSН­
пользователи смогут выполнять команды и получать результат их выполне­


ния, FТР-пользователи - обмениваться с вашим компьютером файлами .

. -.-. - --- - -. -. -.. - . -- - - -. - ... - -.. -. - .. -.. - . - . - - - - ..... - . .. - - .. - .. - -............. - .


(ASTRд*L1Nux·1 l .1ава 1 (1. llо.11,юва1с.111 11 1 р� 11111,1

Все учетные записи можно разделить на три вида: учетные записи обычных
пользователей, учетные записи системных служб и учетная запись root. С
учетными записями обычных пользователей все ясно - они имеют право
входить в систему разными способами (если тот или иной способ не запре­
щен настройками системы), для них определен домашний каталог (обычно
/hоmе/<имя_пользователя>), пароль и командная оболочка (как правило, в
последнее время используется /Ьin/Ьash).
Права обычных учетных записей:

• Право на вход в систему - по умолчанию обычный пользователь мо­


жет войти в систему самыми разными способами, если это не ограничено
настройками системы (например, модулями РАМ). Пользователь может
войти локально - через консоль или в графическом режиме через
дисплей-менеджер вроде gdm. Также никто не запрещает (опять-таки по
умолчанию) удаленный вход, например, по SSH или FTP, если на ком­
пьютере, в который осуществляется вход, установлены соответствующие
службы.
• Право на запуск программ, не требующих для своего выполнения
прав root - как правило, такие программы находятся в каталогах /Ьin и /
usr/Ьin. А вот из каталога /sЬin запустить программу может только супер­
пользователь. Программы, действие которых распространяется на всю
систему, например программы изменения сетевых интерфейсов,
программы разметки диска, находятся в каталоге /sЬin (super-Ьin). Что­
бы запустить эти программы, пользователю нужно получить полномочия
root. О том, как это сделать, будет сказано в следующем разделе.
• Обычный пользователь может создавать, удалять, читать, изменять,
запускать, устанавливать права и выполнять другие операции над фай­
лами, которые находятся в его домашнем каталоге. Как правило, это ка­
талог /hоmе/<имя_пользователя>. Хотя администратор может назначить
пользователю любой другой каталог, хоть /users/Ьagira, как правило, этого
никто не делает. Каталог /home может находиться физически на одном
разделе, что и корневая файловая система, а может находиться и на дру­
гом разделе и даже на другом диске. На крупных серверах, как правило,
под /home отводят целый диск или даже создают RАID-массивы дисков.
• Право на чтение файлов - обычный пользователь может читать боль­
шую часть файлов за пределами домашнего каталога. Исключения раз­

'. . ...
ве что составляют домашние каталоги других пользователей (если эти
другие пользователи явно не разрешили этому пользователю читать их

- --- - -.. - -.. - -.. ·- .... -.... -·. - -.. - -- . ·- -... - ... -.... -... - ...- - ... - .... - .. - - -
Лstra ljnux 1ASTRA*LINUX"]

файлы) и некоторые файлы/каталоги в /etc. Например, файл /etc/passwd


могут читать все пользователи, а вот файл /etc/shadow - только root.
• Пользователь не имеет право вносить изменения в конфигурацию
всей системы, то есть устанавливать программы, изменять глобальные
настройки устройств, параметры ядра, параметры загрузчика и т.д.
• Пользователь имеет право изменить свои пользовательские параме­
тры, например, обои рабочего стола, некоторые переменные окружения,
которые будут влиять только на его работу и т.д.
• Право на изменение своего пароля, но обычный пользователь не имеет
право изменять пароль других пользователей.

Учетные записи системных служб не имеют право входить в систему. Для


них не задан ни пароль, ни домашний каталог, а в качестве оболочки исполь­
зуется /Ьin/true или /Ьin/false - чтобы пользователь, используя учетную за­
пись службы, не мог войти в систему через консоль. От имени таких учетных
записей выполняются различные службы, например, от имени пользователя
www-data выполняется веб-сервер, gdm - учетная запись для GNOME
Display Manager и т.д.
Пользователь root - пользователь с максимальными правами, он может
делать все:

• Право на изменение любого файла - root может читать, записывать,


удалять любые файлы, в том числе и файлы в домашних каталогах других
пользователей.
• Право на изменение конфигурации системы - пользователь root мо­
жет изменять конфигурацию системы посредством редактирования фай­
лов в каталоге /etc, /proc, запуска конфигураторов системы.
• Право на запуск любых программ - root может запустить любую
программу, в каком бы каталоге она ни находилась.
• Право на создание, удаление, изменение (в том чи�ле изменение паро­
ля) других учетных записей.
• Право на установку и удаление программ.

.....................................................................................

l .1ава 16. По.11,3ош11 r.111 11 1 р� 11111,1

Власть пользователя root неограниченна. Так было до определенного мо­


мента, пока не появились системы принудительного контроля доступа вроде
SELinux, LIDS, Tomoyo, которые могут ограничить даже самого root. Вот
только беда в том, что SELinux, LIDS, Tomoyo и другие подобные системы
по умолчанию неактивны или даже не установлены, поэтому пока их не ак­
тивировать, пользователь root будет все равно самым главным.

Примечание. Напомним, что когда у вас привилегии пользова:­


теля root, приглашение командной строки заканчивается симво­
лом #, а когда вы работаете как обычный пользователь - $.

16.2. Получение полномоч1:1й root

Самый простой способ получить права root - это войти как root. То есть
при входе в систему вы указываете имя пользователя root и пароль, указан­
ный при установке. Проблема в том, что не во всех дистрибутивах этот трюк
сработает. Учитывая всю опасность, которую несет использование учетной
записи root, во многих дистрибутивах учетная запись root отключена, а вход
как root ограничен самыми разными способами. Включать учетную запись
root не рекомендуется - ведь злоумышленник знает, что учетка root есть
везде и ему не придется угадывать имя пользователя, останется только по­
добрать пароль root. А так вы исключаете даже саму возможность входа как
root. Тем более права root можно получить другим образом, о котором мы
поговорим далее. А пока рассмотрим способы блокировки входа (кроме
отключения учетной записи) root.
Часто вход как root ограничен на уровне менеджера дисплея. В дистрибути­
вах, где используется графическая среда КDЕ и менеджер экрана КDМ (К
Display Manager), нужно отредактировать файл /etc/alternatives/kdm4-config.
В нем нужно найти директиву AllowRootLogin и присвоить ей значение true,
чем вы разрешите вход как root в графическом режиме.
При использовании GDM (Gnome Display Manager) вход как root ограничен
не столько конфигурацией самого GDM, а столько РАМ-модулями. Нужно
открыть /etc/pam.d/gdm-password и найти строку, отвечающую за запрет вхо­
да как root. Она может выглядеть, например, так:

•..................................................................................-111
auth required pam_succeed_if.so user != root quiet
Лstra l,inux

Некоторые дистрибутивы разрешают заходить как root даже в графическом


режиме. Просто они отображают предупреждение о том, что работать как
root небезопасно. Пример такого дистрибутива-СеntОS.
В Astra Linux используется оболочка Fly, конфигурационные файлы которой
хранятся в каталоге /etc/fly. Это собственная разработка, которую не встре­
тить в других дистрибутивах. За графический вход в систему отвечает
fly-dm (Fly Display Manager), конфигурационные файлы которого находятся
в каталоге /etc/Xll /fly-dm. Основной файл конфигурации -fly-dmrc. Самое
интересное, что вход как root в Astra Linux по умолчанию разрешен -пара­
метр AllowRootLogin установлен в true (рис. 16.1). Поэтому если вам очень
сильно хочется войти как root в графический режим, вы можете это сделать,
но сначала вам нужно изменить пароль самого пользователя root -как это
сделать, будет показано далее. Пока нужно отметить, что вход как root что
в графическом, что в настольном режиме - очень опасная штука. Поэтому
если вы за безопасность, выключите данный параметр (значение/а/sе), а для
временного получения полномочий root используйте команду sudo (будет
показано далее).

Рис. 16.1. Файл конфигурацииjfу-dтrс

Настоятельно рекомендуется работать в системе как обычный пользователь,


а максимальные права получать только тогда, когда они вам действительно

..
нужны. Например, когда понадобится запустить какую-то программу, требу­

.,
ющую права root. При этом вам особо ничего не придется делать, кроме как
ввести пароль.

·-.. ·---................ -··· .: ......... ··--··.-···.-··--- ----· ------ .... -.... ___
1ASTRд*LINUX"] !.1ана 16. По.1ыова1е.ш и 1ру1111ы

Рассмотрим пример. Вы установили Astra, при установке создали учетную


запись mark и задали пароль. По умолчанию инсталлятор создает первую
учетную запись так, что она вносится в группу sudo - членам этой группы
можно выполнять команды с привилегиями root. Другими словами, создан­
ный во время установки пользователь уже является root, только с некоторы­
ми оговорками.
Настройки, позволяющие группе sudo выполнять команды от имени root,
хранятся в файле /etc/sudoers. В этом файле указываются все учетные
записи, имеющие право выполнять административные задачи. Когда вы по­
пытаетесь выполнить одну из таких задач, например, добавить нового поль­
зователя, графический интерфейс автоматически запросит у вас ваш пароль.
Аналогично, когда вы будете пытаться запустить командную оболочку (ко­
манда sudo bash) с правами root. Это будет не пароль root, а ваш пароль, то
есть пароль пользователя mark (рис. 16.2). Ему разрешено выполнять адми­
нистративные задачи, просто система пытается убедиться, что вы - это вы,
а не некто, кто оказался за вашим компьютером во время вашего отсутствия.

Рис. 16.2. Запуск командной оболочки с правами root - команда sudo bash.
Нужно ввести пароль пользователя mark, а не root!

Когда же вам нужна командная строка с правами root, не обязательно даже

. ..
переключаться в консоль. Достаточно открыть терминал и ввести команду


su. Она попросит вас ввести пароль root. После ввода пароля вы получаете
терминал с правами root. Это означает, что все команды, которые вы будете

.................................. ................................... .. .........


.\stra (jnux

вводить после ввода команды su и успешной аутентификации, будут выпол­


няться с правами root.

Примечание. Если учетная запись root отключена, то вы не смо­


жете использовать команду sudo, так как она предполагает ввод
пароля root, а вы его не знаете.

Когда вы - единственный администратор, команда su - идеальный вари­


ант. Но когда администраторов несколько, команда su - не выход, посколь­
ку пароль root нужно будет сообщить всем остальным администраторам.
Если потом возникнет нестандартная ситуация, выяснить, кто виноват, будет
сложнее.
На этот случай у пользователя root могут быть доверенные лица. Это может
быть помощник администратора, его заместитель - называйте, как хотите.
Есть лица, которым разрешено получать права root. Такие лица вносятся в
файл /etc/sudoers (если вам не лень прописывать каждого отдельно) либо в
группу sudo (так правильнее).
Редактировать файл /etc/sudoers можно только через команду visudo (рис.
16.3):

export EDITOR=nano
sudo visudo

... Рис. 16.3. Редактирование файла /etc/sudoers



. . .. . . . . . . . . . .. . . . . . . . . . .... . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . .. .
1 _JaB,I 1 (, Пo.JJ,IOR:ll('.111 11 1 р� llllhl

Первая команда устанавливает переменную окружения EDIТOR, задающую


удобный текстовый редактор, который будет использован для /etc/sudoers.
Вторая команда вызывает утилиту для редактирования файла /etc/sudoers.
Представим, что у нас есть пользователь bagira, которому нужно разрешить
делать все, что можно пользователю root. Для этого нужно добавить в /etc/
sudoers запись вида:

bagira ALL=(ALL:ALL) ALL

Можно также добавить запись:

%sudo ALL= (ALL:ALL) ALL

Она означает, что членам группы sudo можно делать все, что можно делать
пользователю root. Тогда всех администраторов-помощников нужно доба­
вить в группу sudo (далее будет показано, как это сделать).
Сохраните файл и выйдите из редактора. Войдите как пользователь, которо­
му вы предоставили право sudo. В нашем случае - это пользователь bagira.
Далее введите команду, которая требует прав root через команду sudo:

sudo <команда>

Например:

sudo bash

Обратите внимание: система запрашивает пароль пользователя, а не


пароль root. Пользователь указывает свой пароль, а система знает, что ему
разрешено получать права root. В итоге наши помощники не знают пароль
root и смогут выполнять определенные действия с правами root под своим
именем.
Как правило, вам не нужно вообще редактировать файл /etc/sudoers. Приве­
денная информация о его формате - только для общего развития. На прак-

•. ------------------------------.-...........---------..-..--.----.-..--.---. --.. ---&1


Astra l,inux

тике вам нужно просто добавить пользователя в группу sudo, чтобы у него
появилась возможность получать права root:

sudo usermod -а -G sudo bagira

Данная команда изменяет группу для пользователя bagira, добавляя (-а) в


список групп пользователя группу (-G) sudo.
Контролировать получение прав sudo можно командой':

# tail /var/log/auth.log I grep sudo

Посмотрите на рис. 16.4. Для примера, 6 июля 2022 года в 7 .16 пользователь
mark пытался выполнить команду sudo для выполнения команды bash. То
есть в журнале отображаются не только попытки использования sudo, но и
журналируются даже вводимые пользователями команды.

Рис. 16.4. Журнал аутентификации auth.log

Если вам нужно получить некоторый аналог команды su, чтобы вы могли
вводить сразу неограниченное количество команд с максимальными права­
ми без приставки sudo, используйте следующий трюк - запустите с макси-

1 В некоторых дистрибутивах журнал аутентификации называется secure, а не auth.log.



....................................................................................
1 1,\В,1 1(, JJ11.11,ю1н11l'.III 11 1 р� llllbl

мальными правами оболочку bash. Все команды, вводимые в этой оболочке,


будут выполнены с максимальными правами:

sudo bash

Закрыть такой сеанс можно командой exit.


Прежде чем перейти к следующему разделу, разберемся, как сменить пароль
пользователя root. Для этого нужно просто �адать пароль:

sudo passwd root

Сначала нужно ввести ваш пароль, затем новый пароль для root, после этого
- подтвердить пароль. После этого вы сможете войти в систему как root в
консоли. Для входа в графическом режиме нужно редактировать файл, отно­
сящийся к РАМ, как было сказано ранее. Отметим, что активация пользова­
теля root - занятие небезопасное, гораздо правильнее использовать коман­
ду sudo. На личном компьютере еще такое мероприятие допускается, но на
сервере - такое делать воспрещено.

16.3. Управление учетными записями


пользователей
16.3.1. Создание учетной записи пользователя

Создать новую учетную запись пользователя можно командой adduser.


Пример:

sudo adduser evg

В большинстве случаев adduser просто добавляет в файл /etc/passwd


учетную запись пользователя. Но в Astra Linux данная команда запраши­
вает не только имя пользователя (которое передается команде в качестве


первого параметра), но и пароль пользователя. Также есть возможность

·-----------------------------------------------------------------------------------
.\stra Linux

ввести дополнительную информацию о пользователе, если есть такая


необходимость (см. рис. 16.5).

Рис. 16.5. Создание нового пользователя в Astra

Если при создании пароль задан неверно (вы задали слишком простой или
слишком сложный пароль и хотите его изменить), можно сменить пароль с
помощью команды passwd:

sudo passwd имя пользователя

Напомню, что для добавления учетной записи пользователя нужны права


root, который пользователь может получить через su или sudo, если он вне­
сен в /etc/sudoers и ему разрешена операция добавления пользователя.
В Astra Linux есть также графический конфигуратор и создать пользователя
можно не только с помощью команды adduser. Чтобы открыть графический
конфигуратор и создать пользователя, выполните следующие действия:

1. Откройте Панель управления.


2. Перейдите в раздел Безопасность и запустите Управление политикой
безопасности.


11:t---·-····--···-------·---······························-·--···········-···········
1 1 ,111,1 1(, 110.11, юва н·.111 11 1 р� 11111,1

3. Перейдите в раздел пользователя и нажмите кнопку+ на панели инстру­


ментов.
4. Заполните информацию о пользователе и нажмите зеленую галку на па­
нели инструментов для сохранения пользователя (рис. 16.6).

GEC:OS:
,_
!

о�-�,сnд(
r . . ., "
н.��- -:t�
t]if-Ы'Dn-laund'I 11S
H#'wl«I ....
Ц&uw."
!LR�

Рис. 16.6. Создание пользователя, графический метод

16.3.2. Файлы /etc/passwd и /etc/shadow

При добавлении учетной записи происходят следующие действия (вкратце):

• Добавляется запись в файл /etc/passwd - это небольшая база данных о


пользователях в текстовом формате. Этот файл могут просмотреть все
пользователи.
• Если при создании учетной записи утилита запрашивает пароль, то он
будет внесен в файл /etc/shadow. Пароли в этом файле хранятся в зашиф­
рованном виде, а доступ имеет только root. Команда passwd <имя>, из­
меняющая пароль пользователя, вносит изменения как раз в этот файл.
• Создается домашний каталог /hоmе/<имя>, и в него копируется содержи­
мое каталога /etc/skel.
• Создается почтовый ящик пользователя в каталоге /var/spool/mail.

, __ ----------------------------------------------------. ------------------�--. ---IJII


\�t.-:1 l.illll\

• Владельцем каталога /hоmе/<имя> и всех файлов и каталогов в нем на­


значается создаваемый пользователь.

Рассмотрим формат файла /etc/passwd:

имя_пользователя:пароль:UID:GID:полное_имя:домашний_каталог:оболочка

Вот фрагмент этого файла:

evg:x:1000:1000:evg:/home/evg:/bin/bash
mark:x:1001:1001: :/home/mark:/bin/bash

Формат файла /etc/passwd приведен в таблице 16.1.

Таблица 16.1. Формат фaйлa/etc/passwd

Номер Описание
поля Название
Имя, использующееся при входе в ·
1 Имя пользователя
систему
Поскольку пароль пользователя хра-
нится в файле /etc/shadow, то в файле /
2 Пароль
etc/passwd вместо пароля просто ука-
зывается символ 'х'
3 UID Идентификатор пользователя

4 GID Идентификатор группы пользователя


Устанавливается администратором и
ни на что не влияет. В крупных орга-
низациях имя пользователя помогает
установить контакт с пользователем.
Полное имя поль-
Это поле может также содержать
зователя

�·
номер телефона, номер комнаты и
прочую информацию, которую запра-
шивает adduser при создании пользо-
вателя

....................................................................................
. *
(ASTRA LINUX"J 1 l,IB,I 1 (1 110.11,юван•.111 11 1 р� llllbl

Домашний ката- Обычно это /hоmе/<имя пользовате-


6
лог пользователя ля>

Программа, которая будет запущена


при входе пользователя в систему из
консоли (для графического режима
7 Оболочка
это поле не имеет значения). Список
доступных оболочек хранится в файле
/etc/shells

В файле /etc/shadow полей больше, чем в /etc/passwd. Как и в случае с /etc/


passwd, поля разделяются двоеточиями:

1. Имя пользователя. Совпадает с именем пользователя в файле /etc/passwd.


2. Зашифрованный пароль. Позже мы поговорим о том, как распознать алго­
ритм шифрования, которым был зашифрован пароль.
3. Количество дней (с 1 января 1970 года), когда пароль был сменен в
последний раз.
4. Число дней до смены пароля. Если в этом поле О, то пароль может быть
сменен в любой момент.
5. Количество дней, после которых пароль должен быть сменен. Обычно
здесь значение 999999, которое показывает, что пользователь может ни­
когда не менять свой пароль.
6. Число дней, в течение которых пользователь получает предупреждение о
необходимости изменить пароль. Обычно такие предупреждения пользо­
ватель получает за неделю (7 дней) до часа "Х".
7. Число дней после окончания действия пароля, когда еще пользователь
может работать со старым паролем. Если после этого срока пользователь
не сменит пароль, учетная запись будет заблокирована.
8. Число дней, начиная с 1 января 1970, после которых пароль будет забло­
кирован.
9. Не используется.


. ... -....... -... - -. - -. -... -....... -... - -.. - -...... -. -. -.. -.. - -.. - -... - -- .. - -. - - - - ...
Astгa Linнx

Обычно последние три поля не используются. По зашифрованному паролю


можно понять, какой алгоритм шифрования использует система. Посмотри­
те на начало зашифрованного пароля:

• $1$-MD5. Ранее часто использовался, сейчас чаще используется SHA-


512, поскольку в МD5 обнаружились математические уязвимости.
• $2$, $2а$ - Blowfish. Чаще используется в FreeBSD/OpenВSD, чем в
Linux.
• $5$ - SHA-256.
• $6$ - SHA-512. Используется в современных дистрибутивах.

Форматы файлов /etc/passwd и /etc/shadow были приведены "для общего раз­


вития", чтобы вы понимали, что происходит. Модифицировать учетную за­
пись пользователя правильнее с помощью команды usermod, а не с помощью
редактирования файла /etc/passwd. Конечно, можно внести небольшие изме­
нения, например, изменить полное имя пользователя. А вот для изменения
остальных параметров, например, домашнего каталога, правильнее исполь­
зовать usermod, чтобы потом не делать много ручной работы.

16.3.3. Изменение и удаление учетных записей

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


нужно использовать команду usermod, но прежде поговорим об изменении
пароля, так как изменение пароля - это тоже, по сути, изменение учетной
записи.
Для установки и изменения пароля пользователя используется команда
passwd:

# passwd <имя>

Если пользователь хочет изменить собственный пароль, то указывать имя не


нужно:

$ passwd

&1---------------------------------------------------------------------------------·
/ 1а11,1 /(, llo.11,IOIШll'.III II IJ)�lllll,I

А вот теперь можно приступить к рассмотрению команды usermod. Формат


вызова этой команды следующий:

# usermod [параметры] учетная_запись

Параметры команды usermod описаны в таблице 16.2.

Таблица 16.2. Параметры команды usermod

Параметр Описание

Добавляет пользователя в дополнительную


-а, -append
группу. Используется только с параметром -G
-с, --comment Добавляет комментарий для учетной записи
комментарий пользователя
Задает новый домашний каталог пользовате-
ля. Если указать параметр -т, то текущий до-
-d, --home каталог машний каталог пользователя будет перене-
сен в новый домашний каталог, который будет
создан, если не существует
Указывает дату устаревания учетной записи
пользователя. По достижении этой даты учет-
ная запись пользователя будет заблокирована.
-е, --expiredate дата
Дата указывается в формате ГГГГ-ММ-ДД.
Если дату не указывать, то устаревание учет-
ной записи будет отключено
После указанного числа дней, которые прой-
дут после устаревания пароля, учетная запись
будет заблокирована. Значение -1 означает,
-f, --inactive дни
что эта возможность не используется, а О -
запись будет заблокирована сразу же после
устаревания пароля
Указывает имя или GID первичной группы
пользователя Группа с таким именем/GID
должна существовать. Все файлы в домашнем
-g, --gid группа
каталоге пользователя, которые принадлежа-

----
ли бывшей первичной группе, теперь будут
принадлежать новой группе

.-------------. -- . -- - -- . ---. -. ·- ---- --- - .. - ----. --------. ---. --------. -------..--


\st.-:1 l,i1111,

Список дополнительных групп, в кота-


рых находится пользователь. Перечисление
-G, --groups группа][,
групп осуществляется через запятую без
группа2, ... , группаN}
дополнительных пробелов. Например, -G
group 1,group2

-/, --login новое_имя Изменяет имя пользователя на новое имя.

Блокирует учетную запись пользователя.


-L, --lock
Нельзя использовать этот параметр с -р или -1

Перемещает домашний каталог. Используется


-т, --move-home
вместе с параметром -d
При использовании с -и позволяет указать не
-о, --non-unique уникальный UID (идентификатор пользовате-
ля)

Шифрованное значение пароля, которое воз-


вращает функция crypt. Использовать этот
-р, --password пароль параметр не рекомеНдУется, поскольку дру-
гие пользователи увидят незашифрованный
пароль в списке процессов

Выполняет изменения в каталоге chroot и ис-


-R, -root chroot пользует файлы конфигурации из этого ката-
лога

Задает оболочку для пользователя. Если обо-


-s, --shell оболочка лачка не указана, то будет использована обо-
лачка по умолчанию

Задает новый UID пользователя, который дол-


-и, --uid UID
жен быть уникальным

-И, --unlock Разблокирует учетную запись пользователя

...
Новый пользователь SELinux для пользова-
-Z, --selinux-user SEUSER

•.
тельского входа

.- -- - -- - -- - - ----- - - -- - - - ---- ---- - ---- ------------- ----- - -------- ------. ------ --- -
(ASTRд*LINUX"J 1 1,111,1 1(, 1111.11,IOIHlll.'.III II l!)�llllbl

Рассмотрим несколько примеров:

# usermod -d /home/new home -m mark


# usermod -1 mark
# usermod -G admins,sudo mark

Первая команда задает новый каталог для пользователя mark. Теперь он бу­
дет называться /home/new_home. Старые файлы (из каталога /home/ubuntu)
будут перемещены в новый домашний каталог.
Вторая команда блокирует учетную запись пользователя mark. Третья ко­
манда вносит пользователя mark в группы admins и sudo.
Теперь рассмотрим команду userdel (см. табл. 16.3):

# userdel [параметры] пользователь

Таблица 16.3. Параметры команды userdel

Параметр Описание
Удаляет учетную запись, даже если пользователь
работает в системе. Также будет удален домашний
каталог и почтовый ящик, даже если другой пользо-
ватель использует тот же домашний каталог. Если в
файле /etc/login.defs параметр USERGROUPS_ENAB
-f, --force
равен yes, то будет удалена и первичная группа поль-
зователя, даже если она является первичной и для
другого пользователя. Довольно опасный параметр,
который может привести систему в нерабочее состо-
яние
Удаляет домашний каталог пользователя и почто-
вый ящик. Файлы этого пользователя, созданные на
-r, --remove
других файловых системах, нужно искать и удалять
вручную
Выполняет изменения в каталоге chroot и использует
-R, --root chroot
файлы конфигурации из этого каталога
Удаляет все пользовател.ьские сопоставления


-Z, --selinux-user
SELinux для учетной записи пользователя

·----------------------------------------------------------------------------------1!11
.\sti-:1 (,iпu, [ASTRд*LINUX"]

Пример удаления учетной записи ubuntu, домашний каталог и почтовый


ящик также будут удалены:

# userdel -r ubuntu

16.3.4. Группы пользователей

Для более простого управления пользователями их можно объединять в


группы. Например, можно задать ограничения ресурсов для группы пользо­
вателей. Тогда они будут распространяться на всех пользователей, входящих
в группу, и вам не придется их устанавливать для каждого пользователя от­
дельно.
Но, прежде чем устанавливать права для группы, нужно эту группу создать.
Добавить группу можно командой groupadd, однако ничего плохого не слу­
чится, если вы просто отредактируете файл /etc/group (не groups, а именно
group!) и добавите группу вручную. При добавлении группы следите, чтобы
ID группы бьm уникальным. Если же вы не хотите ни за чем следить, тогда
просто введите команду groupadd:

# groupadd [параметры] имя группы

С параметрами команды groupadd можно ознакомиться в справочной систе­


ме - man groupadd.

16.4. Модули РАМ

Подключаемые модули аутентификации РАМ (PluggaЫe Authentication


Modules) предоставляют администраторам дополнительные методы под­
тверждения подлинности пользователя. Модули РАМ - это не новинка в
мире Linux. Они были разработаны очень давно, но до сих пор есть даже в
самых современных дистрибутивах Linux, поскольку заменить их, по сути,
нечем.

1!11----------------------------------------------------------------------------------.•
(ASTRд*LINUX"] 1.,ана 16. По.1ыова1е.111 и 1ру1111ы

Модули РАМ позволяют использовать несколько схем аутентификации.


Большинство приложений, которые нуждаются в проверке подлинности
пользователя, используют РАМ. Модули РАМ позволяют реализовать аль­
тернативную аутентификацию, например, по отпечаткам пальцев или по сет­
чатке глаз, но для этого необходимо дополнительное оборудование, напри­
мер, сканер отпечатков. В этой книге мы рассмотрим традиционный вариант
использования РАМ- когда аутентификация происходит посредством вво­
да пароля с клавиатуры.
Основной файл конфигурации называется /etc/pam.conf. В каталоге /etc/
pam.d/ находится конфигурация для разных сервисов, которые поддержива­
ют РАМ, например, в /etc/pam.d/sshd находится конфигурация РАМ-модулей
для SSH, в /etc/pam.d/fly-dm-конфигурация пароля для менеджера дисплея
Fly Display Manager и т.д. В каталоге /etc/security также есть файлы конфигу­
рации, относящиеся к РАМ, например, файл ассеss.соnf управляет доступом
в систему.
Безопасность вашей системы зависит от используемых вами модулей. Мо­
дули хранятся в каталоге /liЬ/security или /lib64/security (для 64-битных си­
стем), однако некоторые дистрибутивы не следуют этому стандарту. К при­
меру, в некоторых системах модули можно найти в каталоге /usr/liЬ/security.
При желании можно написать и собственные модули, но для начала следует
р;цобраться с уже имеющимися. Ниже приведен список наиболее часто ис­
пользуемых модулей. Больше информации по каждому из них можно полу­
чить, набрав man модуль, к примеру, man pam_pwcheck. Обратите внимание,
что нет "стандартного списка" модулей. Их состав варьируется от дистрибу­
тива к дистрибутиву.

• pam_access - разрешает или запрещает доступ, в зависимости от IР­


адреса, имени пользователя, имени хоста или доменного имени и т.п. По
умолчанию правила доступа определены в файле /etc/security/access.conf.
Когда пользователь входит, проверяются правила доступа до· первого
совпадения, и принимается решение, разрешить или запретить доступ.
Также смотрите модуль pam_time-тaм другие ограничения.
• pam_cracklib и pam_pwcheck - предоставляют функции проверки
прочности пароля (проверки на легкость угадывания или повторяемость).
У пользователя спрашивают пароль, и если он проходит предустановлен­
ные правила и считается прочным, тогда нужно ввести его еще раз для
проверки правильности ввода.


··················································································C!I
• pam_deny- безусловно запрещает доступ. Этот модуль можно исполь­
зовать для блокирования пользователей как политику по умолчанию (см.
также pam_permit).

• pam_echo- выводит предустановленное текстовое сообщение. См. так­


же pam_motd.

• pam_env - позволяет присвоение значений переменным окружения.


Правила по умолчанию берутся из файла /etc/security/pam_env.conf.

• pam_ехес - вызывает внешнюю программу.

• раm_lаstlоg-выводит дату и время последнего входа в систему.

• pam_limits - устанавливает ограничения на системные ресурсы, ис­


пользуемые пользователем. Ограничения по умолчанию берутся из фай­
ла /etc/security/limits.conf.

• pam_Iistfile -разрешает или запрещает сервис в зависимости от значе­


ний в файле. К примеру, если вы хотите открыть FТР-доступ лишь для не­
которых пользователей, перечень которых указан в файле /etc/ftpusers_ok,
нужно добавить строку auth required рат_listfile.so item = user sense = allow
file =letc/ftpusers_ok onerr =fail в файл /etc/pam.d/ftpd (см. также модуль
pam_nologin).
• pam_mail - сообщает пользователю о наличии свежей электронной
почты.
• pam_ mkhomedir -создает домашний каталог пользователя, если он не
существует на локальной машине. Таким образом, можно использовать
централизованную авторизацию (к примеру, в NIS или LDAP) и создавать
домашние каталоги лишь при необходимости.

• раm_mоtd-выводит "сообщение дня". См. также модуль pam_echo.

• pam_nologin-запрещает доступ, когда существует файл /etc/nologin.

• pam_permit-безусловно разрешает доступ - очень небезопасно! (см.


также модуль pam_deny).

• pam_rootok - разрешает доступ для пользователя root без дополнитель­


ных проверок. Обычно этот модуль используется в /etc/pam.d/su, чтобы
пользователь root мог войти под любым другим пользователем даже без

.....................................................................................
1 1,1ва 1(, 110.11.юнан•.111 11 1 р�11111,1

ввода пароля. Файл должен содержать следующие строки (обратите вни­


мание на вторую строку, см. модуль pam_wheel):
auth sufficient pam_rootok.so
auth required pam_wheel.so
auth required pam_ unix.so
• pam_succeed_if- проверяет некоторые характеристики учетной записи,
к примеру, принадлежность к определенной группе, значение UID и т.п.

• pam_time - запрещает доступ к службе в зависимости от дня недели и


времени дня. По умолчанию правила берутся из файла /etc/security/time.
conf. Однако запрет накладывается лишь на момент входа в систему. Спо­
соба принудительно заставить пользователя выйти из системы нет.

• pam_umask- устаJ:Iавливает маску создания файлов.

• pam_unix или pam_unix2 - классическая аутентификация в UNIХ­


стиле, основана на файлах /etc/passwd и /etc/_shadow (см. также модуль
pam_userdb).

• pam_userdb - аутентифицирует пользователя с помощью базы данных


(см. также модуль pam_unix).

• pam_warn - заносит название службы, номер терминала, пользователя


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

• pam_wheel - позволяет rооt-доступ лишь для членов группы wheel.


Часто этот модуль используется для su, чтобы лишь избранные пользова­
тели могли пользоваться этой программой. Пример использования можно
найти в описании модуля pam_rootok.

Если книга не посвящена отдельно РАМ, лучше всего рассматривать РАМ на


отдельных примерах.

16.4.1. Ограничиваем доступ к системе по IР-адресу

Файл /etc/security/access.conf используется модулем pam_access.so, чтобы


определить, каким пользователям позволено входить в систему и с каких

,.
IР-адресов.

................................................................................ ...
\st,·a l.i11ux

Если открыть файл access.conf, то в нем будет достаточно много различных


примеров, которые хорошо прокомментированы. Если вы знаете английский
язык, то не составит особого труда во всем разобраться самостоятельно.
Формат этого файла следующий:

разрешения : пользователи : источники

Разрешение может начинаться с символа "+" (доступ разрешен) или "-"


(доступ запрещен). Если нужно указать несколько пользователей, то их име­
на разделяют пробелом. Если нужно сделать исключение для некоторых
пользователей, то перед их именами указывают служебное слово ЕХСЕРТ.
Третье поле может содержать список из одного или более имен консолей
(tty) - для несетевого доступа к системе, имен узлов (для сетевого досту­
па), доменных имен (начинаются с"."), IР-адресов узлов, IР-адресов сетей
(заканчиваются"."). Также можно указать все источники(ALL), ни один из
источников(NONE) или только локальные источники(LOCAL).
Теперь несколько примеров:

-:ALL ЕХСЕРТ root:ttyl

Первая консоль - это только консоль root. Другим пользователям запреще­


но ее занимать. Мы запрещаем доступ(-) всем пользователям(ALL) кроме
(ЕХСЕРТ) пользователя root на консоли tty 1.
Следующий пример - разрешение регистрации как root с определенных IР­
адресов:

+ root 192.168.1.1 192.168.1.4 192.168.1.9


+ root 127.0.0.1

Если нужно разрешить регистрацию root со всей подсети 192.168.1.0, тогда


укажите адрес этой подсети, указав точку вместо О:

....
+ root 192.168.1.


--.-------.----.---·.--- ----. ·----.---....................-...-..-....--· ..-.... .
[ASTRд*LINUX·] l.1ава 16. По.1ыован�.ш 111ру1111ы

Самый жесткий пример - запрещаем root вообще входить в систему:

root ALL

Примечание. Обратите внимание, что комментарии в этом фай­


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

Чуть выше мы разрешили вход пользователя root с определенных IР-адресов.


К сожалению, одного только редактирования access.conf будет недостаточ­
но. Нужно еще отредактировать соответствующие файлы в /etc/pam.d. Нас
интересует регистрация по SSH (telnet уже не используется, поэтому вы бу­
дете регистрироваться по SSH) и обычная регистрация в системе. Поэтому
нам нужно отредактировать файлы /etc/pam.d/sshd и /etc/pam.d/system-auth.
В этих файлах вам нужно добавить строчку:

account required /lib64/security/pam_access.so

Если у вас 32-разрядная система, тогда нужно добавить немного другую


строку:

account required /liЬ/security/pam_access.so

16.4.2. Ограничиваем время входа в систему

Безопасностью системы лучше управлять, когда вы бодрствуете. Поэтому


имеет смысл разрешить регистрацию только в это время, например, с 8:00 до
19:00 (вдруг кто-то немного задержится на работе).
Откройте файл /etc/security/time.conf и добавьте в него строку:

login;tty* & !ttyp*; !root & admin & !Al0800-1900


··················································································88
.\st1·:1 J,iпнх

Здесь мы разрешаем пользователям регистрироваться только с 8:00 по 19:00.


На пользователей root и admin это правило не распространяется. Также в
файле time.conf вы найдете еще несколько примеров.
Как и в случае с предыдущим файлом, вам нужно изменить файлы /etc/
pam.d/sshd и /etc/pam.d/system-auth, в которые нужно добавить строку:

account required /lib64/security/pam_time.so

или строку (для 32-разрядной системы):

account required /liЬ/security/pam_time.so

16.4.3. Ограничение системных ресурсов с помощью РАМ

С помощью РАМ-модулей можно ограничить системные ресурсы, что по­


лезно для защиты системы от DоS-атаки. Принцип DоS-атаки заключается
в том, что злоумышленник узурпирует все ресурсы системы, в результате
обычным пользователям ничего не остается. Ограничив системные ресурсы,
вы можете смягчить последствия DоS-атаки на ваш сервер. Конечно, полной
защиты этот способ не даст, но все равно ваш сервер будет продолжать рабо­
тать, хоть и медленно. Все же это лучше, чем ничего.
Ограничить системные ресурсы можно с помощью /etc/security/limits.conf.
Формат записей в этом файле такой:

домен тип ресурс значение

В качестве домена указывается или имя пользователя, или имя группы поль­
зователей (@имя). Также можно указать звездочку (*), если ограничение
должно распространяться на всех пользователей.
Ограничения бывают мягкими (soft) и жесткими (hard). Мягкое ограничение
можно незначительно превысить, жесткое превысить нельзя.
Возможные значения третьего поля задают тип ограничиваемого ресурса и


представлены в таблице 16.4.

................................................................................... ,
11,111,11(1 1111.11,Юllall'.III 111р�1111ы

Таблица 16.4. Ресурсы, которые можно ограничить с помощью limits.conf

Элемент Описание

core Позволяет ограничить размер файла ядра (в килобайтах)

cpu Задает максимальное процессорное время (в минутах)

Определяет максимальный размер сегмента данных (в ки-


data
лобайтах)
Позволяет указать максимальный размер файла (в килобай-
fsize
тах)
Определяет максимальное количество параллельных реги-
страций пользователя. По умолчанию пользователю раз-
maxlogins
решается войти неограниченное количество раз разными
способами - по SSH, FTP, с разных консолей и т.д.

Задает максимальное число одновременно открытых фай-


nofile
лов
Определяет число процессов, которые может запустить
nproc
пользователь
Задает приоритет, с которым будут выполняться процессы
priority
пользователя или группы
stack Максимальный размер стека (в килобайтах)

Последнее поле определяет значение лимита. Теперь несколько примеров:

* hard maxlogins 3
@ssh users hard nproc 5
@ssh users hard fsize 24576

В первом случае мы ограничиваем число одновременных. регистраций поль­


зователей до 3 (консоль, Xll, если есть и SSH- этого более чем достаточ­
но). Во втором пользователям из группы ssh_users мы разрешаем запускать

•.
.--..-... -- - - - . -.. --................. -....-...........--.. --...- -...-.. -- ..........
Astra Linux

не более 5 процессов одновременно. Также SSН-пользователям не разреша­


ется создавать файлы размером более 24 Мб.
Обратите внимание: здесь мы просто задаем лимит на максимальный раз­
мер файла. В принципе, 24 Мб вполне достаточно даже для хранения фото­
графий с зеркальной камеры и больших документов Word, содержащих изо­
бражения и другие объемные объекты. А видео и файлы большего размера
пусть пользователи хранят или на своих компьютерах, или входят иным спо­
собом, например, по FTP, где можно более качественно ограничить опера­
ции с файлами.
После редактирования /etc/security/limits.conf никакие другие файлы редак­
тировать не нужно. Но описанные вами изменения будут действовать для
новых сеансов пользователей, поэтому желательно перезагрузить систему,
чтобы изменения действовали сразу для всех пользователей.
Если вам нужна дополнительная информация о РАМ, предлагаем ознако­
миться с официальной документацией, доступной по адресу:

https ://mirrors. edge. kernel. org/puЬ/linux/libs/pam/


a!t················-·············-·······-···········································
Глава 17.

Настройка неб-сервера

*
ASTRA LINUX
Не секрет, что очень часто Linux, в том числе и Astra Linux, применяется в
роли операционной системы для веб-сервера. Она столь популярна в этом
направлении, что мы решили в этой книге уделить отдельное внимание соз­
данию и настройке веб-сервера. Начнем мы с настройки веб-сервера.

В данной главе будет произведена установка программного обеспечения,


необходимого для реализации веб-сервера. По сути, нам необходима связка
Apache + РНР + MySQL. В сети очень много руководств по организации
такой связки. Повторяться и писать еще одно подобное руководство не хо­
чется, тем более все равно они не раскрывают всех нюансов подобной уста­
новки. А нюансы могут заключаться в том, что устанавливаемая CMS не
поддерживает версию РНР, которую вы установили. И узнаете вы об этом
только тогда, когда будете устанавливать CMS и она не пройдет провер­
ку системных требований. В этой главе мы подготовим наш веб-сервер под
установку CMS Magento. Это довольно требовательная CMS: разные ее вер­
сии требуют разных версий РНР, а также, кроме базовых пакетов, она требу­

--
ет множества расширений РНР.

- - - - - -- - - - - - - - - - -- - - - - - - - -- - - -- - - - - -- - - -- - - - - - -

-- - -- - -- - - --- - - --- -- --- - -- - - -- - -- .
[ASTRд*LINUX"J 1 1,111.1 1 7 11 at· 1 ршi1,а вt•ii-c..-pвt•pa

17.1. Установка и настройка Apache

Администратор может использовать в качестве веб-сервера или Apache, или


nginx. Выбор зависит от предпочтений администратора. В этой книге мы бу­
дем использовать Apache, при необходимости всегда можно перенастроить
сервер на работу с nginx (хотя некоторое внимание nginx мы все же уделим
- там, где вопросы касаются нетривиальной настройки).
Установить веб-сервер можно так:

sudo apt install apache2

Здесь мы устанавливаем пакет apache2. Команда sudo подразумевает исполь­


зование rооt-прав. Если вы вошли на свой сервер уже как пользователь root,
тогда ее вводить не нужно, и команда будет сокращена до следующей:

apt install apache2

После установки нужно настроить сервер. Как минимум, вам нужно указать,
что ваш сервер будет использовать купленное ранее доменное имя.
Первым делом нужно зайти в панель управления доменным именем и до­
бавить А-запись для вашего домена, указывающую на IР-адрес вашего VDS­
cepвepa. Как это сделать? Проще всего обратиться в службу технической
поддержки регистратора, у которого вы покупали доменное имя, поскольку
регистраторов очень много и все они часто используют панели управления
собственной разработки, поэтому невозможно в книге привести руководство
абсолютно для всех регистраторов. Тогда бы книга называлась "Как управ­
лять доменом".
Далее желательно установить файловый менеджер Midnight Commander, ко­
торый позволит производить операции с файлами более удобно:

sudo apt install mc

Перейдите в каталог /etc/apache2/sites-enaЫed и откройте файл 00-default.

•.
conf. Мы не будем создавать отдельные веб-серверы для каждого сайта .

. . .. . . ... . ..... . . ....... . -....................................................... ...


Astra Linux

Будем считать, что у нас есть один сайт и его конфигурация как раз будет
храниться в файле 00-default.conf. Реальный пример конфигурации приве­
ден на рис. 17.1.

Рис. 17.1. Конфигурация сервера

Основные директивь1:

• ServerName - здесь нужно указать купленное доменное имя.


• DocumentRoot - указывает, где будут храниться файлы сайта, мы ис­
пользуем каталог по умолчанию /var/www/html.
• ServerAdmin - можно указать адрес электронной почты администрато­
ра сервера.

...
Мы сейчас не будем подключать SSL-сертификат, а сделаем это чуть позже.

•.
Осталось запустить сервис веб-сервера:

. . - .. - ... - - -.. - -.. - ..... -.. - -. - . - -.. - -.. - . -. -. - - - - - -. - - -... -.. - - - .. - - .. - . - . - - .. - -


!�1ана 17. Нас I poiii-.:a неб-сервера

sudo systemctl start apache2.service

Аналогично, для перезапуска и останова сервиса можно использовать сле­


дующие команды:

sudo systemctl restart apache2.service


sudo systemctl stop apache2.service

17.2. Установка сервера баз данных. Создание


базы данных и пользователя

Для установки СУБД MySQL нужно ввести команды:

sudo apt install mysql-server mysql-client


sudo mysql secure installation

Первая команда устанавливает необходимые пакеты - сервер и клиент. Вто­


рая запускает настройку так называемой безопасной инсталляции, в ходе ко­
торой будут произведены:

1. Установка пароля для МуSQL-пользователя root. Обратите внимание, что


этот пользователь и системный пользователь root - две разные сущно­
сти, поэтому постарайтесь, чтобы и пароли у них были разные.
2. Удаление тестовой базы данных.
3. Запрет подключения к серверу баз данных извне, только с локального
узла. Это означает, что к СУБД сможет подключиться ПО, работающее
только на этом сервере, а не все желающие. Не беспокойтесь: к вщпему
магазину смогут подключаться все пользователи, просто они не смогут
напрямую подключаться к БД, что нежелательно с точки зрения безопас­
ности.

После этого нужно ввести команду:

•. . . . . . . . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . .. . .. . . . . .. .· -ID
mysql -u root -р
CREATE DATAВASE magento2;
CREATE USER magento2user@localhost IDENTIFIED ВУ 'password';
GRANT ALL PRIVILEGES ON magento2.* ТО magento2user@localhost IDENTIFIED ВУ
'password';
FLUSH PRIVILEGES;
exit

Здесь запускается клиент и от имени МуSQL-пользователя root выполняют­


ся запросы. Первый запрос создает базу данных magento2, второй - созда­
ет пользователя magento2user, от имени которого Magento будет обращаться
к СУБД. Третий запрос - предоставление полномочий пользователю
magento2user ко всем таблицам базы данных magento2. Естественно, вместо
'password' укажите какой-то сложный пароль.
Последний запрос; осуществляет применение полномочий, а команда exit -
выход из клиента mysql.

17 .3. Установка и настройка РНР. Выбор версии

Для установки РНР и самых популярных расширений введите команду:

sudo apt install php php-cli openssl libcurlЗ php-curl php-gd


php7.0-xml php-intl php-zip php-mЬstring php-soap php-mysql php-json
libapache2-mod-php php-xsl php-bcmath php-ldap composer

Кроме расширений РНР будет установлен и пакет libapache2-mod-php, свя­


зывающий РНР и Apache - он нужен, чтобы веб-сервер умел выполнять
РНР-скрипты.
Теперь нужно настроить РНР и Apache. Первым делом откройте файл кон­
фигурации РНР (Х- версия):

sudo mcedit /etc/php/7.X/apache2/php.ini

В нем нужно установить лимит памяти:

-
memory_limit = 512М

- ---- -- -- - --- - --- - - -- - - --- - --- - - ---- --... - .. - - -- - - -. - - - - . -- .. - --... ---. --.. - - -.. - .
Можно установить и другие параметры, но об этом мы поговорим далее в
этой книге, когда пойдет речь об оптимизации сервера.
Сохраните файл, выйдите из редактора и добавьте необходимь1е модули
Apache:

sudo a2enrnod rewrite

Также, чтобы нормально работали SEF URL Magento, нужно открыть ваш
файл конфигурации /etc/apache2/sites-enaЫed/000-default.conf и добавить в
секцию VirtualНost строки:

<Directory /var/www/htrnl/rnagento test>


Options Indexes FollowSyrnLinks MultiViews
AllowOverride All
</Directory>

Все, можно перезапускать Apache:

sudo service apache2 restart

17.4. Директивы файла конфигурации Apache

Основной файл конфигурации Apache называется /etc/apache2/apache2.conf.


Конфигурация Apache просто огромна:

• Основной файл конфигурации apache2.conf "весит" более 7 Кб и содер­


жит 224 строки конфигурации.
• Посредством директивы Include в конфигурацию Apache включают­
ся другие файлы из каталога /etc/apahce2. Например, директива lnclude
ports.conf в основном файле конфигурации говорит о том, что в месте ди­
рективы нужно вставить содержимое ports.conf. Аналогично, вы можете
создать файл my.conf и вставить его содержимое с помощью директивы
IIiclude my.conf.
• С помощью директивы IncludeOptional включается содержимое всех фай­
лов конфигурации из каталога /etc/apache2/sites-enaЫed. Как правило, в

•.-----------.---.----------------------------------.---------.--..----. --------. ---111


этих файлах конфигурации принято хранить описание виртуальных
.\stra l,inux

узлов, или, попросту говоря, сайтов. Принцип прост. Сам файл конфигу­
рации для определенного сайта помещается в каталог sites-availaЫe (до­
ступные сайты), а затем на него создается ссылка в каталоге sites-enaЬled
(включенные сайты). Если сайт нужно временно отключить, то чтобы не
удалять его конфигурацию, просто удаляют ссылку на файл конфигура­
ции из каталога sites-enaЫed.

Теоретически вы можете хранить всю конфигурацию в файле apache2.conf.


Тогда ваш файл конфигурации будет еще больше. Вряд ли вам будет удобно,
но такая возможность есть.
Директивы конфигурационного файла сервера Apache можно условно раз­
делить на такие группы:

1. Общие. К общим директивам относятся глобальные директивы, влия­


ющие на работу всего WеЬ-сервера. Это директивы ServerName, Server­
Type, Port, User и Group, ServerAdmin, ServerRoot, PidFile, DocumentRoot,
UserDir.
2. Директивы протоколирования: EпorLog, TransferLog, HostnameLookups.
3. Директивы ограничения доступа: AllowOverride, Options, Limit.
4. Директивы управления производительностью: StartServers, MaxSpa­
reServers, MinSpareServers, а также директива CacheNegotiatedDocs.
5. Директивы обеспечения постоянного соединения с клиентом: Timeout,
KeepAlive, KeepAliveТimeout.
6. Директивы настройки отображения каталога. Оформить отображение
каталогов можно с помощью директив настройки отображения катало­
гов: Directorylndex, Fancylndexing и AddlconВyType.
7. Директивы обработки ошибок. Директивой обработки ошибок НТТР­
сервера является директива EпorDocument. С ее помощью можно устано­
вить реакцию на любую ошибку сервера, например, на ошибку 404 (до­
кумент не найден).
8. Директивы перенаправления: Redirect, Alias и ScriptAlias.
9. Директивы для работы с многоязычными документами: AddLanguage
и LanguagePriority.
10. Директивы обработки МIМЕ-типов. Настроить свой сервер для обра­
ботки различных МIМЕ-типов можно с помощью директив DefaultType,
AddEncoding, AddType, AddHandler и Action.

-----------------------------------------------------------------------------------'
l .1ава 17. Hac,poiiкa веб-сервера

11. Директивы создания виртуальных узлов: Virtua!Нost, Listen, BindAd­


dress.

Директив много, но вам не нужно редактировать все директивы сразу. Вы


можете постепенно кастомизировать ваш веб-сервер - по мере поступле­
ния задач от руководства. Как минимум, вам нужно изменить две следую­
щие директивы:

• ServerName - директива, которая определяет имя сервера Apache. При­


чем здесь должно быть задано официальное имя сервера в таком виде,
в котором оно должно появляться в строке адреса браузера. Данное имя
должно быть зарегистрировано в сервере DNS вашей сети.
• ServerType - директива, которая определяет тип сервера. По умолчанию
используется значение standalone. Если вы хотите достичь максимальной
производительности вашего WеЬ-сервера, не изменяйте эту опцию.

Другие полезные директивы веб-сервера приведены в таблице 17 .1.

Таблица 17.1. Некоторые директивы файла конфигурации Apache

Директива Описание

Директивы User и Group определяют идентифи-


каторы пользователя и группы, от имени которых
будет работать сервер. Данные идентификаторы
присваиваются серверу, если он запущен в авто-
номном режиме. Можно использовать как имена
пользователей, так и их числовые эквиваленты
- UID. По умолчанию используется имя поль-
зователя www-data. Из соображений безопасно-
User и Group
сти не рекомендуется изменять это значение и
присваивать имя реального пользователя. В этом
случае WеЬ-сервер получит доступ только к тем
файлам, которые разрешены для чтения для всех
пользователей. Нужно заметить, что указанный
пользователь и группа должны существовать в
вашей системе. Ни в коем случае не запускайте
сервер от имени пользователя root!


·---------------------------------------------------------------------------------fВ
Задает электронный адрес вебмастера вашего
WеЬ-узла. Если возникнут какие-то проблемы,
связанные с работой сервера, то по этому адресу
будет отправлено соответствующее сообщение.
Обычно используется значение webmaster@
ServerAdmin
Your Host.com. Пользователь webmaster, как
правило, не существует реально в системе. Для
определения имени (псевдонима) webmaster ис­
пользуется файл псевдонимов электронной
почты /etc/aliases

В этой директиве указывается местонахождение


файлов конфигурации сервера Apache. По умол­
ServerRoot
чанию для этих целей используется каталог /etc/
apache2

Данная директива используется для поддержки


виртуальных хостов и применяется, чтобы сооб­
щить серверу, какой IР-адрес следует прослуши­
BindAddress
вать. Значением данной директивы может быть
"*" (любой адрес), IР-адрес или полное имя до-
мена

Определяют расположение журналов сервера


Apache. Обычно для этих целей используется
каталог /var/log/apache2. В журнале errorlog
протоколируются диагностические сообщения,
а также сообщения об ошибках, которые по­
рождают СGI-сценарии. В журнале trasferlog
ErrorLog и протоколируются запросы клиентов. Если вклю­
ТransferLog чена директива HostNameLookups, то вместо IР­
адреса клиентов будут регистрироваться имена
компьютеров. Данные директивы можно ис­
пользовать для задания отдельных журналов для
каждого виртуального узла. При определении
виртуального узла (см. далее) вы можете задать
другие журналы, индивидуальные для этого узла


&1-----------------------·-····---·--··-------··---·---··-------··--··-·-············
1 1,1на 17 llat·1 poiiкa вt·fi-ct·pвt·pa

Задает промежуток времени в секундах, в тече­


ние которого сервер продолжает попытки возоб­
новления приостановленной передачи данных.
Timeout Значение директивы Timeout распространяется
не только на передачу, но и на прием данных.
Если вам нужно получать большие файлы, реко­
мендую увеличить данное значение

Разрешает постоянные соединения, то есть та­


KeepAlive кие соединения, в которых производится более
одного запроса за один раз

Определяет таймаут для постоянного соедине­


KeepAliveTimeOut
ния

Иногда поступающих запросов настолько мно­


го, что компьютеру не хватает ресурсов для за­
грузки новых копий сервера в память и их вы­
MaxClients
полнения. Директива MaxClients определяет
максимальное число копий сервера, которые мо­
гут выполняться одновременно

После обработки определенного коли-


чества запросов, указанного в директиве
MaxRequestsPerChild
MaxRequestsPerChild, копия сервера завершает­
ся, а вместо нее запускается новая

Позволяет вам связывать Apache с определен­


Listen ным IР-адресом и (или) дополнительными пор­
тами

Директива, определяющая местонахождение


корневого каталога документов вашего сервера.
DocumentRoot Значение по умолчанию - /var/www/html. Как

.
правило, для каждого виртуального узла задает­
ся собственное значение для DocumentRoot

.
.,...
······--····························-·············································---
.\str·a [.inux

Задает названия подкаталога в домашнем катало­


ге пользователя, из которого берутся документы.
В этом случае вы активизируете возможность
UserDir использования пользовательских каталогов.
\ Если вы не хотите включать эту возможность,
укажите UserDir DISAВLED. Более подробно
эта директива будет рассмотрена позже

Позволяет задать название документа, кото­


рый будет возвращен по запросу, который не
содержит имя документа. С помощью данной
директивы можно задать несколько имен фай­
лов. Значениями по умолчанию являются index.
html, index.php, index.htm, index.shtml, index.cgi,
Directorylndex Default.htm, default.htm, index.phpЗ. Например,
если вы введете в строке адреса броузера http://
localhost, то будет возвращен один из указанных
в директиве Ditectorylndex документов. Если в
каталоге будет несколько документов, описан­
ных в Directorylndex, то будет возвращен пер­
вый из них (в данном случае - index.html)

При получении запроса, не содержащего имя до­


кумента, сервер передаст один из файлов, ука­
занных в директиве Directorylndex. Если такой
файл не существует, клиенту будет возвращено
Fancylndexing оглавление каталога. При включении директивы
Fancylndexing в оглавлении каталога будут ис­
пользованы значки и описания файлов. Если ди­
ректива Fancylndexing выключена, оглавление
будет представлено в более простом виде

..... •
--- ................................................ - - .......- ···--· ........... .
l .1arш 17. Hac,poiiкa веб-сервера

Сопоставляет значок с типом файла. Значок бу­


дет использоваться при выводе каталога, если
включена директива Fancylndexing. Директива
AddlconВyType имеет следующий формат:

AddlconByType (ТЕХТ, URL) mime-type

Параметр ТЕХТ определяет текстовое описание


типа, которое увидят пользователи, использую­
щие текстовый браузер, или пользователи, у ко­
торых отключено отображение рисунков. Пара­
метр URL определяет адрес значка, а параметр
mime-type - это тип файла, с которым нужно
сопоставить значок. Полный перечень МIМЕ­
AddlconByТype
типов приведен в файле apache-mime.types. В
качестве имени файла можно задать не только
МIМЕ-тип, но и символы, которыми заканчива­
ется имя файла, но для этого нужно использо­
вать директиву Addlcon вместо AddlconВyType

AddiconByType (VID,/icons/movie.gif) video/*


Addicon /icons/binary.gif . bin .ехе

Первая директива сопоставляет с типом vid­


eo значок /icons/movie.gif. Вторая директива
сопоставляет с бинарными файлами * .Ьin и * .ехе
значок /icons/Ьinary.gif. Значок по умолчанию
задается директивой Defaultlcon

Если запрашиваемый клиентом тип не соответ­


DefaultТype ствует ни одному из МIМЕ-типов, используется
МIМЕ-тип, указанный в директиве DefaultType

Для сокращения времени передачи файла кли­


ентам используется сжатие данных. Браузеры
имеют встроенные программы для распаковки,
AddEncoding
запускаемые при получении архивов определен­
ных МIМЕ-типов. Именно эти МIМЕ-типы и
указываются в директиве AddEncoding
". ------------------------------... -... -.. --------------------. -. -.... -. ---. -. --. -· ID
\stп1 l.i1н1\ (ASTRд*LINUX")

В большинстве браузеров можно задать пред­


почитаемый язык. Благодаря этому вы можете
. предоставлять документы на разных языках.
Директива AddLanguage сопоставляет расшире­
ние файла с аббревиатурой языка. Для русского
AddLanguage языка используется аббревиатура ru, для англий­
ского - еп. При этом в корневом каталоге ваше­
го сервера могут находиться несколько индекс­
ных файлов на разных языках. Например, для
русского языка нужно использовать имя файла
index.html.ru, а для английского - index.html.en

Если на вашем сервере размещены докумен­


ты на разных языках, то с помощью директивы
LanguagePriority можно указать приоритеты раз­
личных языков. Например, вы установили ди­
рективу LanguagePriority так:

LanguagePriority en ru

Клиент вводит в строке адреса своего браузера


адрес http://www.server.com/. Если в свойствах
LanguagePriority браузера имеется возможность задать предпочи­
таемый язык, то возвращен будет файл на нуж­
ном языке, если такой существует. Если браузер
клиента не поддерживает такую возможность,
будет возвращен файл на языке, имеющем наи­
более высокий приоритет. В рассмотренном слу-
. чае (см. пример) это английский язык. Если файл
на нужном языке, например, на немецком, не
существует, то будет возвращен файл на англий­
ском языке. Для того чтобы сервер поддерживал
нужный вам язык, предварительно установите

...
правильное значение директивы AddLanguage

:
•.
- - - - - - - - . - - - - - - - - - - - - - . - - - . - - - . - - . - - - - - - - - - - - - - . - - - . - - - - . - - - . -- -. . - - . - - - .. . - - . - -
1 1,1н,1 \7 llar1p11ii1..:a вrб-rrpвrpa

С помощью директивы Alias можно предоста-


вить доступ не только к файлам, находящимся в
каталоге, указанном директивой DocumentRoot,
Alias
и его подкаталогах, но и в других каталогах. По
умолчанию определен только псевдоним для ка-
талога /icons

Аналогична директиве Alias, но позволяет задать


ScriptAlias
месторасположение каталога для СGI-сценариев

С помощью этой директивы можно добавить


AddТype новый МIМЕ-тип, который не указан в файле
apache-mime. types

Директива AddHandler позволяет сопоставить


определенный МIМЕ-тип с каким-нибудь об-
работчиком. А с помощью директивы Action
можно определить какое-нибудь действие для
AddHandler и Action обработчика. Например, вы можете запустить
какую-нибудь программу для обработки файла
данного типа. Пример:
AddHandler text/dhtml dhtml
Action text/dhtml /cgi-bin/dhtml-parse

Директива, сопоставляющая коды ошибок сер-


ErrorDocument
вера URL-aдpecaм на этом же сервере

Используется для перенаправления с ОДНОГО


Redirect
адреса на другой

В таблице 17.1 не рассмотрены директивы Location и Directory, которые


заслуживают отдельного разговора. Директива Directory определяет свой­
ства каталога, например:

<Directory />

'
Options Indexes Includes FollowSymLinks

. . ...
AllowOverride None
</Directory>

..................................... -... - . - ... - - .. - - - . - - - . - - - . - -- - . -- - ... -


\stп1 l.inux (ASTRд*LINUX')

Свойства каталога можно указывать в директиве Directory или в файле


.htaccess, который находится в том каталоге, для которого необходимо уста­
новить нужные параметры.
В блоке Directory могут находиться директивы управления доступом. К ним
относятся директивы AllowOverride, Options, Limit. Рассмотрим по поряд­
ку все эти директивы. Директива AllowOverride может принимать значения,
указанные в табл. 17.2.

Таблица 17.2. Значения директивы AllowOverride

Значение Описание

Сервер Apache будет игнорировать файлы .htaccess. Река-


None мендую установить данную опцию, так как это повысит
производительность сервера

Пользователи имеют право переопределять в файлах


All .htaccess глобальные параметры доступа. Из соображений
безопасности лучше не использовать этот режим

Options Разрешает использовать директиву Options

Limit Разрешает использовать директиву Limit

Разрешает использование директив AuthName, AuthType,


AuthConfig
AuthUserFile и AuthGroupFile

Разрешает использовать в файлах .htaccess директивы


Filelnfo
AddType и AddEncoding

С помощью директивы Options можно определить функции сервера, кото­


рые будут доступны для использования в определяемом каталоге. Данную
директиву можно использовать как в файле apache2.conf, так и в файлах
.htaccess. Допустимые опции для директивы Options представлены в табл.
17.3.

....................................................................................

1ASTRA\,Nux·1 1 1,111,1 17 llar1 р11111,а неfi-прнера

Таблица 17.3. Допустимые опции директивы Options

Опция Описание

Не разрешается использование каких-либо


None
функций

All Разрешаются все функции

Разрешается использовать символические


FollowSymLinks ссылки. С точки зрения безопасности не реко-
мендуется использовать этот режим

Разрешается использование символических


ссылок, если ссылка указывает на объект, ко-
SymLinkslfOwnerMatch
торый принадлежит тому же пользователю,
что и ссьmка

ExecCGI Разрешается выполнение СGI-сценариев

Если эта опция вь1ключена, сервер не будет


Indexes передавать содержимое каталога при отсут-
ствии файла index.htmVindex.php

Разрешено использование серверных включе-


Includes ний. Рекомендую отключить эту опцию, по-
скольку это сильно нагружает сервер

Разрешает использование серверных вклю-


IncludesNoExec чений, но запрещает запуск из них внешних
программ

Директива Limit ограничивает доступ к файлам в определенном каталоге.


Параметр метод определяет метод передачи, например GET или POST.
Директиву Limit можно использовать внутри блоков Directory, Location или
в файле .htacccess.
В блоке Limit можно использовать такие директивы: allow (разрешить),
deny (запретить), order (порядок), require (требуется). Директивы allow и

,.
deny аналогичны директивам allow и deny файла конфигурации сервера

................................................................................ ..
ProFTPD. После директивы allow следует слово from, после которого мож­
но указать IР-адрес, адрес сети1 домен или просто имя компьютера. Слово
al/ обозначает все компьютеры. Например, вам требуется запретить доступ
всем компвютерам, кроме компьютеров, которые входят в домен ru:

<Limit GET>
order deny, allow
deny from all
allow from ru
</Limit>

Следующий пример показывает, как разрешить доступ компьютерам только


из вашей сети. Пусть при этом ваша сеть имеет адрес 192.168.1.0:

<Limit GET>
order deny, allow
deny from all
allow from 192.168.1.
</Limit>

Директива order определяет порядок выполнения директив allow и deny.


Кроме значений allow,deny и deny,allow, директива order может содержать
значение mutual-failure. В этом случае доступ будет отказан всем компьюте­
рам, которые явно не указаны в списке allow.
Директива Location позволяет задать определенный URL-aдpec, который
предназначен для обозначения каталогов, файлов или групп файлов. Обозна­
чить группу файлов можно с помощью шаблонов, например, шаблон * .html
определяет все файлы, имена которых заканчиваются на .html. В URL-aдpec
не включаются протокол и имя сервера. Пример:

<Location URL>
директивы управления доступом
</Location>

17 .5. Определение виртуальнь1х узлов

Концепция виртуальных хостов позволяет серверу Apache поддерживать


несколько WеЬ-узлов - попро�ту говоря, несколько сайтов. Получается, что
один WеЬ-сервер заменяет несколько серверов, и вместо одного узла поль-
118··..................................................... ---. --·--· -----·---.. ··-·-·
[ASTRд*LINUX.J 1 _1,ша 17 llac1pнiiкa 1н•б-сrрвt•ра

зователи видят отдельные WеЬ-узлы. Это очень удобно, если нужно органи­
зовать персональные WеЬ-узлы пользователей или собственные WеЬ-узлы
подразделений компании, например, sales.mycompany.com.
Сервер Apache можно настроить несколькими способами: чтобы запускал­
ся один сервер, который будет прослушивать ВСЕ обращения к виртуаль­
ным серверам, или запускать отдельный процесс для каждого виртуального
сервера. В первом случае один сервер будет одновременно обслуживать все
виртуальные. Если вас интересует такой вариант, нужно настраивать вир­
туальные серверы с помощью директивы VirtualНost. Настройка отдельных
процессов для каждого сервера осуществляется с помощью директивы
Listen и BindAddress.
В этом разделе рассматривается именно первый случай, поскольку он наи­
более часто используется на практике. Внутри блока директивы VirtualHost
можно использовать любые директивы, кроме ServerType, BindAddress, Lis­
ten, NameVirtualНost, ServerRoot, TypesCon:fig, PidFile, MinRequestPerChild,
MaxSpareServers, MinSpareServers, так как некоторые из них относятся к
основному НТТР-серверу (например, ServerType), а некоторые - ко второ­
му варианту настройки виртуальных серверов и здесь неприемлемы. Обя­
зательно должны присутствовать директивы ServerName, DocumentRoot,
ServerAdmin и EттorLog.
Виртуальные серверы можно идентифицировать по имени или по IР-адресу.
Идентификация по имени имеет существенное преимущество перед иденти­
фикацией по IР-адресу: вы не ограничены количеством адресов, имеющимся
у вас в распоряжении. Вы можете использовать любое количество виртуаль­
ных серверов, и при этом вам не потребуются дополнительные адреса. Такое
возможно благодаря использованию протокола НТТР/1.1. Данный протокол
давно подцерживается всеми современными браузерами.
В листинге 17 .1 приведен файл конфигурации реального виртуального узла,
изменено только имя сервера.

Листинг 17.1. Конфигурация виртуального узла

# Поддерживаем протокол НТТР (порт 80) для перенаправления на НТТРS-версию


# Если клиент вводит адрес http://example.com, выполняем перенаправление на
# https://example.com
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/


</VirtualHost>

··················································································88
# Основная конфигурация
<VirtualHost *:443>
ServerAdmin it@example.com
# Имя узла
ServerName example.com
# Псевдоним и IР-адрес
ServerAlias www.example.com 111.111.111.115
# Каталог документов
DocumentRoot /srv/www/example.com/htdocs
# Журнал ошибок
ErrorLog /srv/www/example.com/logs/error_log
# Журнал доступа
CustomLog /srv/www/example.com/logs/access log combined
# Включаем поддержку SSL
SSLEngine on
# Подключаем SSL-сертификат
SSLCertificateFile /etc/ssl/sert.pem
SSLCertificateKeyFile /etc/ssl/server.key
SSLCertificateChainFile /etc/ss1/chain.pem
# Настройка каталога документов
<Directory /srv/www/example.com/htdocs/>
Directoryindex index.php
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from All
</Directory>
</VirtualHost>

17.6. Пользовательские каталоги

Директива UserDir включает подцержку пользовательских каталогов. Эта


директива определяет общее название подкаталога в домащних каталогах
всех пользователей. По умолчанию используется каталог puЫic_html. Дан­
ная возможность очень удобна при использовании ее в большой корпорации,
где каждый сотрудник имеет собственную страничку. Аналогичное решение
можно использовать для сервера кампуса, где администратору лень созда­
вать отдельный виртуальный узел для каждого студента.
Раньше эта возможность часто использовалась на серверах, предоставляю­
щих бесплатных хостинг. Может быть, помните адреса вида:
http :/lwww.chat.ru/-mypage?
Сейчас же все чаще используется технология виртуальных серверов, кото­
рую мы рассмотрели ранее, но знать, что такое каталоги пользователей и

·1111-------------------------------------------··-···---·--------·----·---··--······-'
1 1,1на 1- Н:11:1 po1ii-a Bl'0-1.'l'PBl'pa

как с ними работать, тоже не помешает. Тем более что домашние каталоги
настраиваются намного быстрее и проще, чем виртуальный сервер - нужно
всего лишь определить директиву UserDir и указать месторасположения до­
машних каталогов.
Доступ к файлам, расположенным в этих каталогах, производится с помо­
щью указания через наклонную черту пользователя после имени сервера.
Например, пусть имя сервера www.server.com, имя пользователя - mark,
тогда URL-aдpec будет выглядеть так:
http://www.server.com/~mark/
При этом сервер самостоятельно определит, где именно расположен домаш­
ний каталог пользователя. Если домашний каталог пользователя /home/mark,
то сервер передаст клиенту файл /home/mark/puЫic_htmVindex.html.

17.7. Оптимизация веб-сервера

Сервер Apache для каждого соединения запускает отдельную копию, кото­


рая будет обрабатывать запросы клиента. Управлять запущенными копиями
позволяют директивы StartServers, MinSpareServers, MaxSpareServers.
Директива StartServers задает количество копий, которые будут созданы
при запуске исходной копии сервера. При этом исходная копия сервера по­
лучает запросы и передает их свободным копиям. Это позволяет равномерно
распределить нагрузку между отдельными процессами и повысить произ­
водительность сервера, однако на практике все не так хорошо, как хотелось
бы. Существенного прироста производительности можно добиться только
в случае большой загрузки сервера. По умолчанию запускается пять копий
сервера.
Если число поступающих запросов превышает количество запущенных ко­
пий сервера, запускаются дополнительные процессы-серверы. Эти процессы
не завершаются после обработки своего запроса, а продолжают находиться в
памяти. Директива MaxSpareServers позволяет указать максимальное чис­
ло таких процессов. Если это количество превышено, то лишние процессы
завершаются. Если количество "серверов на подхвате" меньше, чем задано
директивой MinSpareServers, запускаются дополнительные копии.
Сервер Apache ведет журнал доступа других компьютеров. Если вы вклю­
чите директиву HostnameLookup (значение оп), то в журнал будет записано
'-················································································1111
.\st,·a l,in11x 1ASTRд"'L1Nux·1

доменное имя компьютера-клиента: Если эта опция выключена (ojj), в жур­


нал будет записан IР-адрес клиента. Включение данной опции замедляет ра­
боту сервера, так как требуется дополнительное время на ожидание ответа
от сервера DNS. Поэтому из соображений оптимизации сервера директиву
HostnameLookup нужно выключить.

17.8. Защита сервера Apache

По окончании настройки сервера запретим изменение и удаление файла кон­


фигурации apache2.conf:

sudo chattr +i /etc/apache2/apache2.conf

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

sudo chattr -i /etc/apache2/apache2.conf

Не нужно, чтобы посторонние глаза смогли посмотреть, а руки - изме­


нить (и выполнить) файлы, находящиеся в каталогах /etc/apache2 и /var/log/
apache2:

sudo chmod 700 /etc/apache2


sudo chmod 700 /var/log/apache2

IIEI···························································-······················

Глава 18.

Подключение SSL­
сертификата

*
ASTRA LINUX
\str-.1 l,i1111,

Хотим мы того или нет, но переход на https неизбежен. Активно стимулирует


владельцев к переходу на безопасную версию http компания Google - как
минимум, в адресной строке Chrome (да уже и других браузеров) будет
отметка о том, что соединение не защищено, как максимум, поисковые ре­
зультаты с сайта не будут появляться в так называемых rich snippets, что до­
вольно плохо для интернет-магазинов.

18.1. Заказ сертификата

Здесь все достаточно просто: выбор огромен и по сути, если вам нужен
просто значок "защищено" в адресной строке браузера, то все равно, у кого
купить SSL. Это можно сделать у вашего провайдера, у поставщиков непо­
средственно сертификатов вроде Comodo. Выбирайте сертификат по цене
- где предоставят более выгодные условия, там и покупайте.
Сертификаты отличаются не только вендором и ценой. При покупке серти­
фиката нужно обратить внимание на его тип, определяющий функционал
сертификата.


Три основных типа:

1118... --. ---.----.--.. ---... -..--... --...-.................-.. --........--..--.. ---..


l_1,шс1 IS llo,1к.1ю•1c1111cSSl,-ccp111ф11ю11:1

1. DV (Domain Validation) - используется для подтверждения домена.


Данный сертификат подтверждает, что пользователь находится именно
на том сайте, на который он осуществил переход, то есть такой серти­
фикат удостоверяет сервер, обслуживающий сайт. DV-сертификат не со­
держит информации о компании-владельце, поэтому не может считаться
безопасным для оказания коммерческих услуг. Если вы будете обраба­
тывать платежи, поступающие от ваших клиентов, самостоятельно, то
такой сертификат нельзя считать безопасным. Если же обработкой
поступающих платежей занимается другой сервис, например PayPal, а
ваш сайт только выполняет перенаправление на страницу покупки, то
можно обойтись DV-сертификатом. Если вы вообще ничего не продаете,
а вам нужен сертификат, чтобы слева от имени вашего сайта в браузере не
было строки Не защищено, то данный тип сертификата тоже подойдет.
2. OV (Organization Validation) - используется для подтверждения ор­
ганизации и домена. Сертификат этого типа позволяют подтвердить не
только доменное имя, но и организацию-владельца веб-сайта. Подлин­
ность организации проверяется по регистрационным данным юриди­
ческого лица, которые пересылаются провайдеру SSL-сертификата при
заказе ОV-сертификата. Такие сертификаты наиболее популярны на се­
годняшний день.
3. EV (Extended Validation) - служит для расширенного подтверждения
организации и домена. Данный сертификат обладает tамым высоким
уровнем доверия со стороны других узлов. Если вам нужна строгая кон­
фиденциальность передаваемых данных (например, обработка платежей
именно на вашем сайте), то вам нужен ЕV-сертификат.

Шифрование между браузером и сайтом обеспечивают все типы сертифика­


тов. Если вам нужно только организовать шифрование трафика по HTTPS,
вы можете выбрать любой тип сертификата. Как правило; выбирают DV как
самый дешевый.
У всех этих сертификатов есть дополнительные опции WildCard и SAN. Пер­
вая подтверждает домен и все его поддомены следующего уровня. То есть
можно купить сертификат DV с опцией WildCard для домена example.com и
использовать его для подтверждения не только example.com, но и всех его
поддоменов следующего уровня, то есть computers.shop.com, phones.shop.
com, software.shop.com и т.д.
Опция SAN подтверждает домены по списку, указанному при получении
SSL-сертификата.
,...--...--...-...-...-....-.... -.----.. --............... ·-........ --.. --..... -. --1111
\!'itra l,i1111x

ЕV-сертификаты заслуживают отдельного разговора, поскольку являются


самыми дорогими. Они подразумевают расширенную периодическую про­
верку данных владельца сайта для предотвращения подмены этих данных.
Так, если ОV-сертификат считается действительным на протяжении всего
своего срока, и проверка организации осуществляется только при покупке
сертификата, то в случае с ЕV-сертификатом такая проверка может осущест­
вляться несколько раз (с определенной периодичностью) на протяжении
всего срока действия сертификата.
Изначально все продаваемые SSL-сертификаты были типа OV, то есть под­
разумевали проверку данных организации. Но спрос рождает предложение,
и появились более дешевые DV-сертификаты с упрощенной проверкой, под­
разумевающей проверку только самого домена. Мошенники могут исполь­
зовать DV-сертификаты в своих целях - ведь при наличии такого сертифи­
ката браузер не будет предупреждать пользователя о возможных проблемах
с подлинностью сайта. Отчасти виновником этой проблемы стали браузеры,
требующие SSL-сертификат. В погоне за зеленым значком в адресной строке
многие стали покупать SSL-сертификаты, платить за OV никому не хочется
(да и иногда нет самой организации, которую нужно проверять, например,
когда сертификат покупает частное лицо для личного сайта), и провайдеры
SSL-сертификатов стали предлагать более дешевые DV-сертификаты.
При желании можно вообще не покупать SSL-сертификат. Вы можете
настроить бесплатный сертификат Let's Encrypt и не платить ни копейки.
В этой главе будет показано, как это сделать. Для нашей цели - зеленый
значок в адресной строке - данного бесплатного сертификата вполне
достаточно. Единственный недостаток - его нужно перегенерировать каж­
дые 3 месяца. Но эту задачу можно поручить cron, поэтому можно сказать,
что сертификат SSL можно получить бесплатно. В следующем разделе будет
показано, как прописать полученный сертификат (без разницы - купили
вы его или получили бесплатно) в конфигурационных файлах веб-серверов
Apache и nginx, а затем будет рассмотрен процесс получения бесплатного
сертификата.

18.2. Настройка Apache


В результате заказа сертификата вам будут предоставлены два файла - SSL­
файл сертификата (расширение рет) и ключевой файл (расширение key).
Оба эти файла нужно поместить в каталог /etc/ssl.

1111------------------------. --------. ------------. ----. ------------------------------.
1 1ава 1:-:. По,11,;,11о•н·111н· SSl,-ccp11 1ф11ю11a

Перейдите в каталог /etc/apache2/sites-availaЫe. В нем хранятся конфигура­


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

<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com ххх.ххх.ххх.ххх
DocumentRoot /srv/www/example.com/ht docs
ErrorLog /srv/www/example.com/logs/error_log
CustomLog /srv/www/example.com/logs/access log comЬined env= !loopback

SSLEngine on
SSLCertificate /etc/ssl/example.pem
SSLCertificateKeyFile /etc/ssl/server.key
</VirtualHost>

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


80, который будет работать как перенаправление - на https-вepcию сайта.
Можно было бы сделать это и через .htaccess, но поскольку у нас есть доступ
к конфигу сервера, то можно сделать это прямо здесь.
Далее мы описываем виртуальный хост для порта 443 (используется SSL).
Настройки такие же, как и для обычной версии сайта (ServerName,
DocumentRoot и т.д.). Отличие заключается только в наличии трех SSL­
директив. Первая включает SSL, вторая задает РЕМ-файл, третья - КЕУ­
файл (имена файлов, понятное дело, у вас будут отличаться).
После этого нужно сохранить файл конфигурации и перезапустить Apache:

sudo systemctl restart apache2.service

или (в зависимости от вашего дистрибутива)

sudo servic� apache2 reitart

•. ------. --------. --------.---.---..---.---..---.---..---. ---.---..---.----.---.---1111


*
\,t,·a l.ilНI\ 1ASTRA LJNux·1

Обратитесь к вашему сайту. Если вместо надписи Не защищено появилось


изображение зеленого замка, то все хорошо и настройку можно считать за­
вершенной.

Примечание. Иногда замок отображается не зеленым, а серым


и не закрытым, а открытым. Это означает, что не все ресурсы
сайта загружаются по протоколу https. Откройте исходный код
страницы и произведите поиск по строке "http://" (без кавычек).
Ваша задача - найти адреса ресурсов (JS, CSS, картинок), кото­
рые загружаются по протоколу http. Исправьте URL проблемных
ресурсов на https:// и снова обновите страницу сайта. Если вы
все сделаете правильно, вы увидите зеленый замок соединения.

18.3. Настройка nginx

Когда сертификат уже есть, осталось дело за малым - настроить веб-сервер.


Переходим к нужному файлу конфигурации виртуального узла и приводим
его к виду:

server {
listen 443 ssl default_server;
listen 80;
server narne <имя>;

ssl_certificate /пyть/fullchain.pern;
ssl certificate key /пyть/privkey.pern;

root /var/www/<кaтaлoг>;
index index.php index.htrnl;

location /.well-known/acrne-challenge
root /var/www/<кaтaлoг>;

# Другие параметры


Обратите внимание на следующие моменты:

1111 ..................................................................................

1 .1<11ы I Х llo.11,.1ю•1c1111c SSL,-cc1н 11ф1н,а I а

1. Данный виртуальный узел является сервером по умолчанию (default_


server). Если в друrом конфигурационном файле уже есть default_server,
то произойдет конфликт и придется выбрать сервер по умолчанию.
2. Мы слушаем порты 443 и 80. Порт 80 пока не убирайте - он пригодится,
если движок сайта пока еще не готов к SSL.
3. Директивы ssl-* задают путь к сертификату и ключу сертификата. Про­
верьте правильность пути.
4. Каталоги в директивах root должны быть одинаковы.
5. В конфигурационном файле Apache ключевой файл имел расширение
key, сейчас - рет. Никакой ошибки нет. Некоторые сертификаты по­
ставляются в виде двух файлов с расширениемрет. Узнать, какой из них
ключевой, можно по названию самого файла. Let's Encrypt- не исключе­
ние. При заказе этого сертификата вам будет сгенерировано два файла -
fullchain.pem и privkey.pem. Второй файл - ключевой, и при настройке
Apache его нужно указать в директиве SSLCertificateKeyFile.

Заставим nginx перечитать конфиг:

sudo nginx -t && sudo nginx -s reload

18.4. Генерирование сертификата Let,s Encrypt

Let's Encrypt - это новый центр сертификации (СА), предоставляющий бес­


платные и автоматизированные SSL/ТLS-сертификаты. На данный момент
Let's Encrypt поддерживается большинством современных браузеров, в том
числе IE и даже старыми операционными системами, такими как Windows
Vista. По сути, все, что вам нужно знать, - что он бесплатный и поддержи­
вает автоматическое обновление.

18.4.1. Установка клиента Let's Encrypt

Установим клиент с помощью команды:

sudo git clone https://github.corn/certbot/certbot /opt/letsencrypt

, _ ----. ---..----. -..... -..-....-. --------...... --..... -... -... -·.. --........ -..-. t1D
\stгa I.iщ1x

Если git не установлен, то сначала нужно установить его, а потом уже уста­
навливать клиент для Let's Encrypt (далее certbot). Файлы будут загружены
в каталог /opt/letsencrypt.

18.4.2. Каталог webroot-path/. well-known/acme-challenge/

Данный каталог позволяет серверу Let's Encrypt убедиться, что ваш сайт
пытается получить бесплатный SSL-сертификат. Каталог нужно создавать
в корне веб-сервера. Например, если корень у вас /var/www/shop, то в нем и
нужно создать нужный каталог:

cd /var/www/shop
mkdir .well-known
mkdir .well-known/acme-challenge
find . -type d -ехес chown www-data:www-data {} \;

18.4.3. Файл конфигурации

Теперь нужно создать файл конфигурации для вашего домена. Если ваш
домен называется example.com, то файл будет называться /etc/letsencrypt/
configs/example.com.conf. Содержимое файла:

# Ваш домен (хотя и можно создать один сертификат для нескольких доменов,
# мы рекомендуем создавать отдельные сертификаты и, следовательно, отдельные
# файлы конфигурации для разных доменов)
domains = example.com

# Размер ключа
rsa-key-size = 2048 # или 4096

# Сервер сертификации
server = https://acme-vOl.api.letsencrypt.org/directory

# Адрес, на который будут приходить напоминания об обновлении


email = my-email

# Отключаем ncurses UI
text = True

# Задаем путь к каталогу .well-known (см. выше)


1!!8-.......... -........ --... --.. --..---.--....... ----. -.................. -.......... .
11,111а IK llo1к.1ю•н·1111t•SSl,-ct·p111ф11ю11a

authenticator = webroot
webroot-path = /var/www/shop/

18.4.4. Заказ сертификата

Настало время запросить сам сертификат. Во второй команде вам нужно за­
менить точное имя файла конфигурации:

cd /opt/letsencrypt
$ ./certbot-auto --config /etc/letsencrypt/configs/example.com.conf certonly

В результате в каталоге /etc/letsencrypt/live/<нaзвaниe сайта>/ будет сгенери­


ровано два файла - fullchain.pem и privkey.pem. Их и нужно будет пропи­
сать в конфигурационном файле сервера, как было показано ранее .

18.4.5. Автоматическое обновление сертификата

Наш сертификат будет действителен в течение 90 дней, после чего должен


быть обновлен. Для обновления можно использовать следующий сценарий
renew-letsencrypt.sh:

#!/Ьin/sh

cd /opt/letsencrypt/
./certbot-auto --config /etc/letsencrypt/configs/my-domain.conf certonly

if [ $? -ne О ]
then
ERRORLOG=·tail /var/log/letsencrypt/letsencrypt.log·
echo -е "The Let's Encrypt cert has not been renewed!\n\n "
$ERRORLOG
else
nginx -s reload
fi

exit О

•·-------------------------------------------------------------------------·--··-·-IВI
В расписание cron нужно добавить строку:
О О 1 JAN,МAR,МAY,JUL,SEP,NOV * /path/to/renew-letsencrypt.sh

И не забудьте создать каталог /var/log/letsencrypt/ (если он еще не создан) и


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

18.5. Настройка редиректа

Остались последние штрихи, например, настройка обязательного редиректа


с http на https (если вы решите оставить /isten 80 в настройках nginx). Для
этого в файл .htaccess добавьте строки:

RewriteEngine On
RewriteCond %{SERVER_PORT}' ! л443$
RewriteRule .* https://%{SERVER_NAМE}%{REQUEST_URI} [R=301,L]

18.6. Готовим движок сайта к SSL

Мало настроить SSL на веб-сервере, нужно движку сайта указать, что он ра­
ботает по SSL, иначе он будет генерировать ссылки http://, а не https://. Здесь
все зависит от движка, и более подробные инструкции вы можете получить
в документации по нему. Именно поэтому ранее мы рекомендовали не уби­
рать работоспособность обычного протокола http - чтобы вы могли зайти
в панель управления сайтом для его настройки на SSL.

18.7. Конвертирование сертификатов разных


форматов

Довольно часто для успешной установки SSL-сертификатов на разных


платформах и устройствах нужно преобразовать их в другой формат. Так,

1D ................................................................................. .
1 _,ава I Х_ llо,1к1ючс111н· SSl,-ccp1 11ф11ю11 а

Windows-cepвepы используют, как правило, РFХ-формат, а для Apache нуж­


нь1 РЕМ-файлы, имеющие расширение .crt или .cer. Попытаемся разобраться,
какие форматы бывают и как конвертировать их из одного формата в другой.
Рассмотрим часто используемые форматы SSL-сертификатов:

• РЕМ - самый распространенный формат сертификата. Файлы в таком


формате имеют расширение .pem, .crt, .cer и .key (файл приватного клю­
ча). Сами по себе файлы являются обычными АSСП-файлами, закодиро­
ванными в формате Base64. При открытии такого сертификата в тексто­
вом редакторе вы видите строку ---BEGIN CERТIFICATE---, после чего
следует закодированный сертификат, а после - строка ---END CERТIFI­
CATE---. Веб-сервер Apache использует формат РЕМ. В одном файле мо­
жет содержаться несколько SSL-сертификатов и даже приватный ключ. В
этом случае каждый сертификат отделяется от остальных тегами BEGIN
и END. Однако Apache требует, чтобы сертификаты и приватный ключ
были в разных файлах.
• DER - бинарный тип сертификата - в отличие от РЕМ, где сертифи­
кат хранится в АSСП-файле. Файлы сертификатов в этом формате часто
имеют расширение .cer, но можно встретить и расширение .der. Если пе­
ред вами файл с расширением .cer, то для вычисления его формата нуж­
но открыть его в текстовом редакторе. Если вы увидите теги начала и
окончания сертификата (BEGIN/END), то это формат РЕМ. Формат DER
используется, как правило, на Jаvа-платформах.
• PKCS # 7 / Р7В - файлы сертификата в этом формате хранятся в форма­
те Base64 ASCII и имеют расширение файла .р7Ь или .р7с. В файлах нахо­
дятся теги начала и окончания сертификата -"-- BEGIN PKCS7--"
и""- - END PKCS7 --" . Данный формат поддерживается Windows
и Java Tomcat.
• PFX - бинарный формат, при использовании этого формата в зашифро­
ванном файле хранятся ваш личный сертификат сервера, промежуточные
сертификаты центра сертификации, а также закрытый ключ. PFX файлы,
как правило, имеют расширение .pfx или .р12. Обычно используется в
Windows для импорта и экспорта файлов SSL-сертификатов и приватного
ключа.

Таблица 18.1 содержит команды конвертирования SSL-сертификатов из од­

•..................................-·..···----........................-·.......····-ID
ного формата в другой.
\stп1 l.irшx

Таблица 18.1. Команды конвертирования

Направление Команда

PEM->DER openssl х509 -outfonn der -in certificate.pem -out certificate.der

openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.


РЕМ-> Р7В
р7Ь -certfile CACert.cer

openssl pkcsl 2 -export -out certificate.pfx -inkey privateKey.key


РЕМ->PFX
-in certificate.crt -certfile CACert.crt

DER->PEM openssl х509 -infonn der -in certificate.cer -out certificate.pem

Р7В-> РЕМ openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.


Р7В-> PFX ceropenssl pkcsl2 -export -in certificate.cer -inkey privateKey.key
-out certificate.pfx -certfile CACert.cer

PFX->PEM openssl pkcsl2 -in certificate.pfx -out certificate.cer -nodes

&1----------------------------------------------------------------------------------·

Глава 19.

Выбор и установка панели


управления сервером

*
ASTRA LINUX
.\stra (,i11ux

Далеко не всегда удобно администрировать систему Astra Linux посредством


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

19.1. Коммерческие решения

Как правило, пользователям хостинга (веб-сервера, где ресурсы распределе­


ны между несколькими клиентами) предоставляется доступ к панели управ­
ления (далее ПУ) без возможности выбора самой панели. От установленной
панели зависит, насколько удобным будет управление хостингом. При выбо­
ре хостинга нужно обращать внимание не только на характеристики тарифа,
но еще и на используемую ПУ. Иногда при всех равных наличие удобной или
знакомой (часто используемой) "админки" определяет выбор пользователя.
Панель управления может пригодиться не только в случае, когда вы настра­
иваете сервер для хостинг-провайдера. Ее иногда полезно установить для
самого себя - для удаленного управления сервером. Конечно, всегда можно
подключиться к серверу по SSH и произвести все необходимые операции.
Но веб-интерфейс куда удобнее SSH и есть множество операций, которые в

EI--------------------------------------------------------------------------------_,
1.1,11!,1 J '1 B1,1fiop 11 �с I а11ш1�-а ll,lllt'.111 � 11paH.lt'IIIIII Cl'(Jllt'(IO\I

панели управления можно сделать за пару кликов мышки, а не вспоминать


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

19.1.1. cPanel

Часто используемая "админка", популярная не только на зарубежных, но и


на отечественных ресурсах. На первом хостинге автора данного обзора была
установлена именно cPanel.

· ··• · •

1
cPanel

• г:-:r:;, , ;,
_ ___
_ ______________ ц • • а ,.
lil н,;,� :• ;::•�1 t,: ::pfr:r !•-!!),.

=C:=:ak!J��!:'
Pтim1ryDom.11in
de1Y1Q.c��-,cm

t)(.�t-. v,,,,.,:;r,Cr;�r;,;

HorneDi�<tory
�1'!"::i!!noco,':"

•..
О•.о••,Ы•"'
, .,,
.,о,с,�

•'«••··
.;;.,-:!(!vf\D-:>l"!"чis>�

.l.шu,bl!t:,r

О:�� и,.��
'19З.2)"4Вt.,,

Рис. 19.1. cPanel

Официальный сайт - www.cpanel.net, демоверсия доступна по адресу:


https://demo.cpanel.net:2083/cpsess8730353636/

Преимущества:

• Высокая производительность.
• Удобный текстовый редактор и диспетчер файловой системы.
• Простая и быстрая установка дополнительных модулей.

'----------------------------. --... ---.. ------.---.-. ---.--. --------.. --... --... ---18


• Наличие русификации.
• Удачно реализованы функции бэкапа.

Недостатки:

• Перегруженность функциями, что делает ее не очень удобной для новичка.


• Ограниченн�це возможности по управлению DNS.
• Имеются проблемы с обновлением панели.
Панель хорошо подходит для хостинг-сервера с огрОf1НЫМ количеством кли­
ентов, для отдельных проектов (например, при ее установке на виртуальный
сервер для администрирования отдельного сайта) она не подойдет -
эффект будет как от стрельбы из пушки по воробьям.

19.1.2. DirectAdmin

Не менее популярная панель управления. Посмотрите на ее скриншот: в ней


нет ничего лишнего, зато есть все функции, необходимые для управления
сайтами. Можно управлять записями доменной системы имен, учетными за­
писями FTP, почтой, базами данных, расписанием планировщика cron и т.д.
Инструменты, как и в случае с cPanel, разбиты на группы для облегчения по­
иска. Рекомендуем пользователям, которые знакомы с основами Linux, иначе
будет сложно разобраться.

�ni"�,,., ,
ct.""9t'l'n0w;>'11 ,,..,_.,,.,._с
suь,о,.,_м�
DNSКAn111.,.-_,,M
5щ)ОоttСе<!Ь!,
le,,:""e� "-'11'\0d�la
:::-.::�::cr:1(0,,ectG'\fl
11Н�..,
csнteiRe,.o,eaoaщps

c,,,.,pos
�=�� Р-•
S,,ell:�''"""""
.-r,;:,e,
�!'>tl<ft'Qlori

Рис. 19.2. DirectAdmin



....................................................................................
(ASTRд*LINUX"J 1 1.111,1 l 'i Bыiiop 11 �t· 1 а11ов�,:а ш111t·.111 � 11рав.1t·111н1 н·1н1t·1111\1

Преимущества:

• Разработана на С++ и функционирует как отдельный сервис, поэтому


производительность еще выше, чем у cPanel.
• Не зависит от наличия веб-сервера, использует собственный сервер, ра-
ботающий на порту 2222 (по умолчанию).
• Удобные средства резервного копирования.
• Возможность реселлинга ресурсов.
• Неограниченное количество доменов и пользователей.
• Простота использования.
• Простота установки, настройки, поддерживается автоустановщик моду­
лей.

Недостатки:

• Сложность локализации (хотя русская локализация имеется).


• Нет встроенной справочной системы (если клиенту что-то будет непо­
нятно, вместо чтения документации ему придется обращаться в службу
поддержки).

DirectAdmin рекомендуем как для администраторам хостинга, так и конеч­


ным клиентам. Также ее с успехом можно установить на виртуальный сер-
вер для управления отдельным проектом.
Демоверсия доступна на сайте:
https://www.directadmin.com/demo.html

19.1.3. ISPManager

Данная панель отличается хорошо продуманным интерфейсом, поэтому от­


лично подойдет "чайникам". Ее интерфейс чем-то напоминает интерфейс
обьiчных настольных Windоws-приложений, имеются качественные перево­
ды на русский язык. Также в "админку" встроены обучающие видеоролики


и имеется хорошая справочная система.

·························-··-··························-··························IВ
\,t,·a 1.iщ,х

• •
нlspma1ыger
* с :..,.г,к •
lmщ1ifyAV а ISPman��,

�.,,"..-,""-�"""'""""""f\ea,•n-o.
_,,.crta<,�-•-�_,, __._S.182.

С-••�••.!1(}-;
r�,-,.i;,c,o..,
,;;;, ·•··
�1�"3\)5\l<C w,....c-,-t,H�"7C! 2<:"19--"6-<::}11,;,1(},З':! ;(,!,;4}-C:!o;.,cc-l

'"'"•�'"'P'""•'t1(}
,,.,._,,,,,,.,�,--�•!>

Рис. 19.3. ISPManager

Преимущества:

• Понятный веб-интерфейс.
• Визарды настройки системных демонов.
• Отличный перевод на русский.
• Удобная и продуманная справочная система.
• Неограниченное количество сайтов и пользователей.
• Возможность кастомизации с указанием собственного лого.

Недостатки:

• Ограниченные возможности миграции пользователей (перенос между


серверами).
• Требует установки веб-сервера.

ISPManager идеально смотрится на виртуальном сервере. Эта панель боль­


ше подходит для отдельного проекта, чем для установки на хостинг-сервер.
Демоверсия:


https ://ispmgr1. demo. ispsystem. net: 1500/ispmgr

1111 ·........................... -..................... --· .. ----. -.. --..------..--.... .


1ASTRA"LINUX.) 1 1,11\,1 1 l) B1.1iiop 11 �с 1 :.111111н.:а llalll'.111 � IIJ).tB. ll'IIIIИ Cl'J)l\l'JIO\I

19.1.4. Plesk

Разработчиком является компания SWSoft, но в наши дни она распространя­


ется компанией Parallels.

ф Мои подnио:и

с�,,. no.;nlIO("; 4,•,11 ,,.,�ноп, r>е.sьюе.111>1�. nс�моощу,,:: u>i1 �тs.-....,... мк,�><1


...(�O��i,� ��'01 t р,,.,н�� ><IO,S"POl,J""'-"'0 "IX>(.T;),l'<,:C,N µа Щ8.,.,,... С\<;,,;,,�,.,'

CtntOSLin:;,7.•.17Gll(Corr)
r.�1 Pl1'$1<0ny,
&e!)Ulll 17."-11.00..cL�-.,20.r.ocм�oti...:.м<!t'"r
!!!О'i'Ф:118()4;35

ТAtкtxn- ��,,,.,.,, �4 W,41,"1,

- l½.н,.,.,��t",i.$t

�-�J<jG;;4i,

АРкем1р.,.
.:.,к,,.,e·,irw
01k1noptн«М

Рис. 19. 4. Plesk

Преимущества:

• Богатый набор функций с поддержкой плагинов.


• Возможность установки плагинов из ПУ.
• Возможность реселлинга.

Недостатки:

• Интерфейс нам показался недостаточно удобным.


• Перегруженность модулями, которые большинству не нужны.

Просмотреть демоверсию можно по адресу:

https:/lsupport.plesk. com/hc/en-us/articles/1150014 О 7434-Нow-to-access-Plesk­


demo-online-servers

Учитывая перегруженность функциями, возможность реселлинга, Plesk


больше подходит для хостинг-провайдеров, чем для отдельных пользовате­
лей.
, _ --.--. -·---·--· -----.--..-----------.. ----. ---.. --·. -... -. -. ·-..·---. ---·. ---. -ID
1ASTRA.LINux·1

19.1.5. Рекомендации
Поскольку все панели управления, представленные в этом разделе, - плат­
ные, то первое, на что нужно смотреть, - на стоимость лицензии (цены
могут быть несколько иными в зависимости от даты прочтения этой книги).
'
Недорогая панель ISPManager обойдется от 4.51$ (версия Lite) до 13.54$
(версия Business) в месяц. Для индивидуального проекта вполне хватит вер­
сии Lite, а для сервера хостера - только Business.
Та же cPanel обойдется (в зависимости от тарифного плана) - от 20$ до 45$
в месяц. Plesk ненамного дешевле - от 10$ до 45$ в месяц.
DirectAdmin тоже не из дешевых - от 16.8$ до 32.5$ в месяц, но у нее есть
тарифный план Personal всего за 26.9$ в год, выходит стоимость одного ме­
сяца всего 2.25$ - это дешевле даже, чем у ISPManager.
Определите, какую сумму вы готовы платить в месяц, затем сравните функ­
ционал панелей управления - будут ли доступны нужные вам функции за
ваш бюджет? Если да, то можете смело покупать выбранный вариант. Если
же нет, нужно или повышать бюджет, или посмотреть на бесплатные реше­
ния, представленные в следующем разделе. Таблица 19.1 содержит сравне­
ние некоторых характеристик платных панелей управления. Возможно, она
поможет вам определиться, что для вас лучше.

Таблица 19.1. Характеристики панелей управления

Plesk cPanel ISPManager DirectAdmin

Debian, UЬuntu,
CentOS,RНEL, CentOS, Debian, Free-
CentOS,
Поддерживаемые C\oud Linux, CloudLinux, BSD,RНEL,
Debian,
ос Amazon Linux, RНEL,Ama-
UЬuntu
CentOS,
Virtuozzo Linux, zon Linux CloudLinux
Windows Server

Стоимость лицензии
на I хост в месяц 4.51$-
10$ - 45$ 15$- 45$ 2.24$- 32.5$
(на сайте разработ- 13.54$
чика)
Apache
Поддержка Apache
Поддерживаемые Apache Apache
Nginx на ста-
веб-серверы Nginx Nginx


дии тестиро- Nginx
вания

ID---···· ·-··-·······-·-········ ...-·····-·····.................... -····-··-···--···.


1 1,11<,\ 1 ') B1.1iiop 11 �с I а1юв�,:а 11a11l' 111 � 11paB. ll'IIII\I l'C()lll'(IO\I

Управление досту-
+ + + +
пом по FTP

Поддерживаемые MySQL MySQL MySQL


MySQL
СУБД MSSQL PostgreSQL MariaDB
Управление почто- + + +
+
вым сервисом

Настройка доменов + (через внеш-


+ + +
и записей DNS ний сервис)

Установка скриптов + + +
+
иСМS
+ (незначи-
Плагины/модули + + тельное ко- +
личество)

Альтернативные + + + +
версии РНР

Файловый менеджер + + + +

Резервное копиро-
+ + + +
вание

Мобильное прило- Для iOS и -


жение Android

Организация хо-
Есть в вер-
стинга (создание Есть в некоторых В версии
Есть сии ISPMan-
реселлеров и тариф- редакциях Standart
ager Business
ных планов)

19.2. Бесплатные решения


19.2.1. Webmin

Webmin - полностью бесплатная панель управления (ПУ), входящая в


состав популярных дистрибутивов Linux. Для ее установки даже не придет­

•. -.......-...--....-... -.... -.......--.---..---.---.----.---..--..--..---... -..--· 1111


ся подключать сторонние репозитарии.
\st,·a 1.iпн, [ASTRд*L1Nux·1

0 �-- О 'fl

"', Настройка Webmin


1

•-!"'---
Q ',,1-.:,f(i, 11 i!IJ -

Wftitrun1 870

ii
-·-­
·--
(,)p,/,ji;t!Jiol(>I*�
t�ra><11jot


,_ --� 61 еР

-- -· •
Twu,f:.М,Q<E
kt•-м•� r-ы�i

w
,_,,..
"""""'
&
........... [i] 1
н.кr�м

"
�-t�
y.:�ni.

� �

Рис. 19.5. Webmin

Преимущества:

• Простота установки, удобный интерфейс.


• Русификация "из коробки''.
• Не зависит от веб-сервера и может быть установлена на уже работающий
сервер.

К недостаткам можно отнести отсутствие поддержки как таковой, в боль­


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

19.2.2. VestaCP

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


от Webmin, выполнена полностью.
Преимущества:
• Простой интерфейс пользователя. Как ни крути, Webmin смотрится весь­
ма древне на фоне "весты".


• Готовность к работе "из коробки". Как только вы ее установите, можно
сразу приступить к работе.

.....................................................................................
(ASTRд*LINUX"J 1 1,1в,1 1 '1 B1,1iiop 11 �с I анош,а 11аш-.111 � 11рав.1t·111111 ct·1н1t·po\l

Недостатков тоже хватает:

• Поддержка у "весты" есть, но она платная.


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

,.�r а �,.,, �� , • ••-.. '¾•i,•> �-� �"'..,, f 1'"''"


• •
USER

о
user

,),.,.,;,.,.....-,l>',,_,,..... 11,r­
�&.М;:\bl-'•"' 2· 1(:

admin

.,. о
Рис. 19.6. VestaCP

19.2.3. ISPConfig

Бесплатная админка с открытыми исходниками. Панель управления


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

• Подходит для администрирования нескольких серверов.


• Возможность осуществления биллинга.


• Модульная структура.

•·············································································c···-ID
1ASTRA.LINux·1

Недостатки:

• Для индивидуального проекта функционала слишком много.


• Сложность установки.

,1 .. * :.
Hf,1e
IJ-ЫH&-SЦ@!-'
AvailaЫe Modules
r.;vui·,,..,�'>l\•�fi<!�J,,,,,.;,

'"'"'
5Р{:с,,!?:;'


V'St!rvtr
T,b.S.,,,,,>1;"""""'""''�­
-..,_-.,::r,:6\-t<1SfC<>o"')

о
=.,..•-,J,1J«>""e,,.�­
,�-•...... ,,,,,
...� �"11""
S�tem

s"""
Qo"' ...

Websit(I Harddisk. Quota

Рис. 19. 7. ISPCon.fig

19.2.4. Ajenti

Бесплатная ПУ разработки Евгения Панькова. Разработчик отказался от под­


держки Apache, отдав предпочтение веб-серверу nginx.

Преимущества:

• Удобный функционал по управлению веб-серверами и сайтами.


• Модульная структура.
• Удобный интерфейс пользователя.

Недостатки:

• Нет поддержки Apache.


• Сложности с редактированием конфигурационных файлов.
/ 1,11\,\ l '1 B1.1iiop 11 � l' 1 allOlll,a llallt'. llt � 11().111. ll'IIIIII Cl'/)1\l'/IO\t

ajenti.org +ADOW!OGП Z
LН:н.,лщ 12 04,2 LtS
�('onf�uнt

0:l'!ui:пн
� Hpt:im,r, Е

а,

,J�Но-н:"

i!!t.og•

• н

• н

• н

�l.>f1"V,iAH

f№MyiQt

Q«r,;1цx

QOp•nVf>N

Рис. 19.8. Ajenti

19.2.5. Рекомендации

Нужно определиться, какой продукт выбрать. Если инсталляция планирует­


ся на только что купленный сервер, где еще не установлено какое-либо ПО
(в т.ч. веб-сервер), неплохим вариантом будет VestaCP. Это удобная и
быстрая панель управления с удобным интерфейсом. Да, у нее нет бесплат­
ного файлового менеджера, но с этим можно мириться.
ISPConfig не подходит для индивидуальных проектов. Для небольшого
хостинг-сервера - отличный выбор, но для одного VDS ее функционал бу­
дет избыточным. Да и сложность установки говорит не в пользу ISPConfig.
Ajenti - неплохая и быстрая админка, но она не подойдет пользователям,
отдавшим предпочтение веб-серверу Apache. Если по тем или иным при­
чинам вам нужен Apache, эту панель можно сразу вычеркивать из списка
претендентов.
Webmin хороша тем, что она входит в состав любого дистрибутива Linux и
не привязывается к веб-серверу. Другими словами, установить ее достаточ­

,
но просто. В отличие от VestaCP, вам не придется возвращать сервер в состо­
яние сразу после установки (то есть удалять уже наверняка установленные

........ ·-···········-----····-··--····--···-·-·-·-··-· - -.........................


\st,·a l.inю: (ASTRA*LINUX")

и настроенные сервисы) для установки этой панели управления. Именно по


этой причине Webmin будет рассмотрена в следующем разделе.

19.3. Установка панели управления Webmin на


сервер
19.3.1. Знакомство с Webmin

Панель Webmin, как и VestaCP, является бесплатной. Вот только если под­
держка у VestaCP платная, но она есть, то у Webmin поддержки как таковой
нет - ни платной, ни бесплатной. Если у вас что-то не получилось, вы мо­
жете попросить помощи на форумах сообщества Webmin по адресу:
http ://www.webmin.com/community.html
К счастью, какие-либо сложности с настройкой и использованием Webmin
возникают редко, поэтому не думаю, что вам когда-либо придется познако­
миться с сообществом.
Возможности у Webmin типичные для панели управления Linux-cepвepoм:
управление учетными записями пользователей, настройка служб и серви­
сов, создание почтовых ящиков, мониторинг работы системы. В поставке
по умолчанию Webmin содержит более 500 различных скриптов, которые
можно использовать для настройки различных компонентов системы. Благо­
даря этим скриптам возможностей у Webmin будет больше, чем у VestaCP,
где некоторые модули, например, файловый менеджер, придется покупать
(50 долларов пожизненно или 3 доллара в месяц).

19.3.2. Установка Webmin

Первым делом установите файловый менеджер mc, чтобы было удобнее


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

...
sudo apt install mc


. . . . . . .. . . . . . . . .. . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . .. . .. . . . . .. . . .. . .
Гтша 19 Выбор и �с• анов�,:а 11а11е.111 у11рав.1е111111 сервсро,1

Далее нам нужно подключить репозитарий с webmin. Для этого откройте


файл /etc/apt/sources.list и добавьте в него строки:

deb http://download.webmin.com/download/repository sarge contrib


deb http://webmin.mirror.somersettechsolutions.eo.uk/repository sarge
contrib.

Добавьте GРG-ключ:

wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc

Осталось обновить списки пакетов и установить пакет webmin:

sudo apt-get update


sudo apt install webmin

Чтобы веб-интерфейс мог беспрепятственно работать, нужно обновить пра­


вила брандмауэра (разрешить порт 10000):

sudo ufw allow 10000

Собственно, на этом все. Панель управления Webmin установлена.

19.3.3. Вход в панель управления

Запустите браузер и введите адрес:

https://ip адрес сервера:10000

Браузер сообщит, что сертификат SSL не является доверенным, добавьте со­

...
ответствующее исключение в браузер (рис. 19.9). После этого вы увидите
форму входа - используйте имя пользователя и пароль с привилегиями root
(рис. 19.10) .

....... .............. ............... ......................... ................ .. ..


.\stп1 l,irшx

О ln,;.ecure conne<.tl<н, х

You ,не about to override how Fir"cfox ldentJftes this sде,


• Legitlmate bank.s, stortts, i,nd othi!r puЫk sltes wlH not .iask you to do thls.

Reporterro ���Certificate
,
Certlflc•te Status
ThJs. s!te attempts to identlfy itsetf with invalid 1nrormation.

Wron9Slte

The certificate b�ton9s to а difre-rent slte, whlch Фutd mean th�t someone !s tr)'ing to
impersonatethis site.
Unknown 1dentltv
46.229.22
The с�,tifi('.dte is not trusted be<.:ause: it ha!in't been vetified as issued Ьу а tru'ited authority
Тhecertlfi usi1"19 а se,uresi9nliture.
Тhecertifi

Errorcode·

с.нн:еt

Рис. 19.9. Добавляеftt исключение безопасности

♦ Login to Webmin х

�Webmin
Уо11 niust enter а username and
password to loфn to the �er an
46.229,220.117

Рис. 19.10. Вход в Webmin

Основной экран Webmin довольно прост, и в тоже время весьма информа­


тивен. Если вы раньше использовали Webmin, то наверняка заметили из­
менение дизайна в лучшую сторону. Действительно, у современных версий
Webmin интерфейс тоже современный и уже не отдает началом 2000-х, как
было раньше.
11111· .................................................................................
(ASTRA�LINux·] J 1,11\,1 J<) B1,1iiop 11 �L•tallOlll,a ШIIIL'.111 �11pat1.IL'IIII\I L"L'JIIIL'J)O\I

По умолчанию язык интерфейса - английский. Русифицировать Webmin


очень просто. Зайдите в конфигурацию самой панели (рис. 19.11), выберите
раздел Language, далее - выберите русский язык из списка (рис. 19.12) и
нажмите кнопку Change language. После проделанных манипуляций язык
будет изменен на русский (рис. 19.13).

С. (1)WtbmlnConfigunit, )(

1 �
""'""' д. Jf
'"'
Р�оч�шs
• --•· а
0,i!!lllH1'1'J 6
,-,.,,.

.,
IPAc<:ot w,Ьm,,
""'"''""'
logging U,i!ftм�:ЮE $111,e,mand
Qrtюl MJre:at!•
fnwironment

а :& 11А lr,


,,,,...
� � [П

'
lnd€xP;iqe HP\)llllle
Awr.�icalIOf;
rw:�F.кto, Rea�:.ig,1 0�!
1-,цJuk!Т>'tltt:
w...,,.,
Wi!!Jrnili чanootk:&1iм МО!.IIМш (',W.�� П\оl:1�

·rrлt�
�tfer.нs
_,·&-_
""'"
[ЖJ
ICIW'l.ocking
1
,,,,...
Мol:>ile!:w.>,a

Вюcilfl!Ж>tt•
andUsm
0
"""•"""
Sl&IOO
{,'<\l!ectiм
Ь,
.чtvan1:-.ed
Oplior!S
DI09;iпg
Logfii@


«Q �

Рис. 19.11. Конфигурация панели управления

+ Language
Ths page allows youto choos• wt,;ch lanquзge №ЬmmwiR us, fo.-msplay;,,gШe,, promots """,,,.,._,
1
WeЬmin Lanouage
Displ,ly in lanigшg. 1 [нu,,;.n1a�.uтf:в)·: .. •.. . . _::.]
Charкt..,- s•t for НТМL �s ♦"; Oetennined Ьу language
Uae Nlnquag&, spкifiю Ьу Ьrowur?

0 Change language-

Рис. 19.12. Выбираем яjык

..
На: этом все. Webmin готова к использованию. Далее можно управлять серве­
ром посредством панели управления .

•.
.... . .... . .... .... .... .. ... . . .. .... .. ... .... ..... . . .. ......... .... . ..... ... . . .. ..
\st п1 l ,i 1111 х [дSTRд*LINUX']

С) (1)H.JCТl)<)i'lk•WeЬmifl Х

111 l!D -

" t? Настройка Webmin


WeЬmin 1.870


V!'\jJilel��D!

.,
ДОСТ'(l'�!Ю
/Д JY
"""'
ni~�
• •
.............. /.A(Щ'fllМ
�Ьmin
,&
Ot'l!!paЦl«ll+loil

пе�-еж-
nfi8ЫII

Ol(P'f*�-

n ф � 4!? � 1n [!]

-
ГАШ!t«�! о&..ж1- Twc�F,кto< l<'til'l'(J\)ffil Cnl!l!;,ж нa,l№-ili!3'\'


дyr!!,!rlOфffll:ш ntмыVv'f>llmifi
WeЬrnill .t.uth<,nticatioo мо.цу;�е-1 катнЦ)lоli "'CJl'fJle'OI

-
i & [i1 1 �
VJ

�'
�,';)М!Щi!',1 Jюr·Фw
Н.ЮТ�t! ЗatiМl<мpoent

""'"'
Ажж.<1•1#,Ж б,'1t,itlfljl)e,J(<I Дur>oflt<МT'-Jlbl ОТпадЮ'-
UOOW\Ьi!ЫJ.
ф,liioofi·

"
дос-туr�
y:::rpci7icт1:1

т
LogFilt}

f!1 �

"

Рис. 19.13. Панель управления русифицирована

1111·····............................................................................ . •
Глава 20.

ПовыIIIение
производительности
сервера
Лstra (,iпux (ASTRд*L1Nux·1

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

20.1. Чек-лист производительности сервера


Если сервер (сайт) работает медленно, необходимо проверить следующее:

1. Количество клиентов и конфигурацию сервера - здесь все просто,


если, скажем, месяц назад сайт работал нормально, а сейчас начал "тор­
мозить", посмотрите на количество клиентов, одновременно·работающих
с сайтом. Это можно сделать, например, с помощью команды netstat I grep
http I grep ESTAB (нас интересуют только установленные соединения, а не
соединения с ТIМЕ_WAIТ и другими статусами). Если клиентов много,
тогда рассмотрите модернизацию оперативной памяти и выделите боль­
ше места под работу каждого процесса РНР (далее будет показано, как
это сделать). Если же клиентов немного (рис. 20.1) или сайт тормозит из­
начально, сразу после его настройки, то дело в чем-то другом.
2. Настройки Apache - некоторые настройки Apache существенно влияют
на производительность. Такие настройки уже были рассмотрены ранее, и
мы не будем повторяться.
3. Версия РНР - установка правильной версии РНР позволит добиться су­


щественного ускорения. Так, по данным инструмента РНР Benchmarks

1118------------.---.----.---.--. --.... --....... ---...... ---.. --.. --.........-. -.. --..


1�1ава 20. llшH,llllt'llllt' IIJ)Oll НЮ.IИ It'.\Ь/\ОС 111 сервера

(с отчетом вы можете ознакомиться по адресу https://kinsta.com/Ыog/php­


benchmarksl) версии РНР 7.0 и 7.1 в 2.5 раза быстрее, чем версия 5.6.
Версии 7.3 и 7.4-в 3 раза быстрее, чем версия 5.6. Но нужно понимать,
что не каждая версия РНР подходит для вашего ПО. Например, Magento
2.3.х требует версии 7.1.3, 7.2.0 и 7.3.0. Magento 2.2.х, наоборот, не под­
держивает версию 7.3 (иногда версия CMS подбирается под определен­
ное расширение, которого нет для другой версии, поэтому нет возможно­
сти установить самую последнюю версию CMS). Все эти моменты нужно
учитывать при смене версии РНР.
4. Директива memory_limit - данная директива ограничивает объем па­
мяти, выделяемый процессу РНР. Бывает так, что оперативной памяти
у сервера достаточно, а под один процесс выделено мало ОЗУ, поэтому
тяжелые CMS начинают "тормозить". Здесь нужно просто увеличить ко­
личество ОЗУ. Часто память ограничивается на уровне 256 Мб, этого на
сегодняшний день мало, и в зависимости от CMS и нагрузки на сервер
нужно увеличить это число до 512 - 1024 Мб.
5. Директива max_execution_time - устанавливает максимальное вы­
полнение сценария РНР. Некоторые сценарии выполняются достаточно
долго. Например, переиндексирование индекса URL Rewrite на одной из
машин с Magento 1 занимало около 14 часов. А теперь представим си­
туацию. Планировщик запускает периодически перестроение индексов.
Процесс индексатора видит, что индекс требует перестроения, и начинает
работу. Но выполниться не успевает, поскольку РНР преждевременно за­
вершает его. И так будет продолжаться до бесконечности - а потом мы
ломаем голову, почему индексы не перестраиваются и почему сервер тор­
мозит. Нормальная практика-установка этого значения в О, чтобы вре­
мя выполнения не ограничивалось. Либо же установка большого значе­
ния, например, 5-7 часов, а может и больше-в зависимости от ситуации.
6. Настройка сжатия и кэширования - включение сжатия страниц
позволяет уменьшить объем передаваемых клиенту данных - данные
будут переданы раньше, нагрузка на сервер будет ниже. Довольны ока­
жутся все - и клиент, и администратор. Потери производительности,
необходимые на сжатие контента и его распаковку (на клиенте), вполне
оправданы. Настройка кэширования позволяет задать время кэширова­
ния контента на стороне клиента. Сервер "отдает" заголовки, устанавли­
вающие время кэширования определенных ресурсов - картинок, CSS и
т.д. Браузер, прокэшировав один раз ресурс, больше не будет его загру­
жать, пока не выйдет время, указанное сервером. В результате имеем:
сайт загружается быстрее, а нагрузка на сервер ниже.
. -------------------------.. -· .... -·.... --.......................-....-........ -.--1111

Astra 1-inux

7. Включение кэширования на стороне сервера- для этого используют­


ся специальные инструменты вроде Pagespeed и Memcached.
8. Настройка CMS - иногда параметры самой CMS не предполагают опти­
мизации. Например, в настройках CMS можно включить минимизацию
CSS/JS и их объединение в один файл. В результате вместо 20 запросов к
серверу (для загрузки скриптов и таблиц стилей) будет всего два запроса
- один на загрузку стилей, другой- скриптов. Учитывая, что код мини­
мизирован (из него удалены лишние пробелы и комментарии), то время
загрузки страницы снижается. Такой трюк возможен не всегда, особенно
со скриптами - начинаются всевозможные конфликты, но попробовать
стоит.
9. Переход с Apache на nginx. Считается, что nginx более производитель­
ный, чем Apache, к тому же он поддерживает НТТР 2.0, что дела­
ет загрузку сайтов быстрее. К тому же у него также есть собственная
система кэширования, позволяющая достичь неплохих результатов. Од­
нако она не очень подходит для сайтов, которые часто модифицируются
и работают в режиме продакшена - дело в том, что не предусмотрено
команды очистки кэша. Для очистки кэша нужно перезагрузить сервис
nginx, а на время перезагрузки пользователя могут увидеть ошибку 502,
••• •

i-oct,"hosti ng: ,,,,,,,._,,, 'htdocsn netstat I grep http ! grep ESTAB
t.:рб 0 0 10.10.1. 20 https 93-78-122-182.pol 53106 ::sTABLISHED
tсрб 0 0 10 10.1 20 http::; 93-78-122-182 . pcl ; 53105 ESTABLISHED
tсрб 0 0 10.10.1 20:http,; 9�.76.118. 73:47092 ESTABLI'jHED
tсрб 0 1398 10 10.1. 20· https s-79-110-132-220. :61402 ESTABLISHED
tсрб 0 0 HЭ.10.1 . .:!0:https 94. 76.118 73:-Н090 ESTABLISHED
tсрб 0 0 10.10.1.20:https 94.76.118.73:47090 ESTABLISHED
rootw-hosting sr" ·.,..;,,;;v! ihtdacs.i::

Рис. 20.1. Вывод команды netstat I grep http I grep ESTAB

11%1----------------------------------------------------------------------------------·

(ASTRд*LINUX.J 1 _1,111,1 �()_ llо111,111н·111н· щю1в1ю,111 1 t'. 11,1юс, 11 сервера

WordPress 5.3
400

300

200

100

О РНР 5.6 РНР 7.0 РНР 7.1 РНР 7.2 РНР 7.3 РНР 7.4
Requests/Sec КIПStO

Рис. 20.2. График производительности (источник: kinsta.com)

20.2. Смена версии РНР и его настройка

Здесь все зависит от того, какой у вас сервер. Если у вас обычный физиче­
ский сервер или же виртуальный сервер с полноценным rооt-доступом, то
загляните в предыдущие главы - это будет полезно для установки нужной
версии РНР. Да, все придется делать вручную, но другого выбора у вас нет.
Если же у вас виртуальный сервер, управляемый через панель управления, то
сменить версию РНР можно в панели управления. Правда, четкие инструк­
ции зависят от используемой панели управления. Так, на ресурсе cloudways
для смены версии РНР нужно выполнить следующие действия:

1. Войдите в панель управления серверами.


2. Выберите ваш сервер.
3. Перейдите в раздел Settings & Packages, на вкладку Packages.
4. Нажмите значок карандаша напротив версии РНР.
5. Выберите другую версию РНР (рис. 20.3) и нажмите кнопку Save.


··················································································-1111
\sti-a l.i1111,

6. Дождитесь, пока система поменяет версию РНР. Помните, что ваше ПО


может перестать работать после смены версии РНР! Поэтому смена вер­
сии РНР - это очень ответственный шаг.

$EПINGS & l'AC�AGES

5
BAS;C ADVANCEO Р!) РНР б ANCE

РНР7.0
о
РНР71

РНР 7.2

SMlP РНР7.3

Рис. 20.3. Смена версии РНР

Теперь нам нужно установить максимальные лимиты для доступной про­


цессу памяти и доступного времени выполнения. Опять-таки, все зависит
от того, какой у вас сервер. При наличии полноценного rооt-доступа (или
физического сервера), откройте файл конфигурации РНР. Как правило, это
/etc/phpN/apache2/php.ini (N - номер версии РНР ) и установите новые зна­
чения для директив max_execution_time и memory_limit (рис. 20.4). После
этого заставьте сервер перечитать файл конфигурации или попросту пере­
загрузите его.

Примечание. Для директивы max_execution_time значение


указывается в секундах. Например, 3600 - это 1 час. Значение О
отключает проверку времени выполнения и сценарии могут вы­
полняться вечно.

Создайте сценарий info.php в корне вашего веб-сервера:

<?php
phpinfo();
?>

----------------------------------------------------------------------------------'
1 claBa 20. JlOBl,IШetllle ttp011 JB0,1111 e.IЫIOC 111 Сервера

Рис. 20.4. Редактирование php.ini

Выполните этот сценарий (http://имя_cepвepa/info.php) и убедитесь, что из­


менения вступили в силу и сценариям доступны выделенные ресурсы.
Если же вы используете Cloudways или подобные сервисы, изменить необ­
ходимые параметры можно в панели управления. В случае с Cloudways они
находятся на вкладке Ваsiс.раздела Settings & Packages (рис. 20.5). Просто
установите нужные значения и нажмите кнопку Save changes.

BAS!C ADVANCED PACКAGES MAtNГENANCE

22000
Vё'!tk:i!ol SCWing

,о ме
SMTP

SAVECHAН<iE$

• Рис. 20.5. Изменение параметров РНР

.....................................................................................
Лstra l,inux

20.3. Настройка сжатия и кэширования

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


это является частью спецификации протокола НТТР 1.1. Сжатие текстовых
форматов (например, CSS, Javascipt или HTML) сможет уменьшить их
объем до 70%. Работает это следующим образом:

• Прежде чем отправить ответ, сервер выполняет сжатие данных.


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

Кэширование также помогает ускорить загрузку страницы. Когда ресурс


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

Рис. 20.6. Средства разработчика Chrome

Далее будет показано, как включить сжатие и кэширование в двух самых по­
пулярных веб-серверах - nginx и Apache.


18---------------... -· ...···-··-··............. -----.... --......................... .
( ASTRA*LINUX.J 1 !,Ша 20 lloш.1111l'IIIН' lljIOIIШ0,11111'.ll,IIOCIII Cl'PB!'pa

20.3.1. Настройка nginx

Файл конфигурации nginx называется /etc/nginx/nginx.conf. Его нам и при­


дется редактировать. В файл конфигурации сервера (или отдельного хоста,
если нужно включить сжатие не для всех сайтов, а только для конкретного)
нужно добавить следующие строки:

#GZIP
gzip on;
gzip min length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/xml;
# Выделяем буфер для gzip
gzip_buffers 32 4k;
# Устанавливаем уровень сжатия, от 1-9
gzip_comp_level 9;
# Убираем поддержку IЕб
gzip_disaЫe "msieб";
# Устанавливаем версию http для использования gzip (1.0 или 1.1)
gzip_http_version 1.1;
# Разрешаем использовать статику
gzip static on;
gzip_vary on;
# Определяем, какие типы файлов нужно сжимать
gzip_types text/css text/javascript text/xml text/plain text/x-component
application/javascript application/x-javascript application/json
application/xml application/rss+xml font/truetype application/x-font-ttf
font/opentype application/vnd.ms-fontobject image/svg+xml;

Теперь настроим кэширование. При настройке времени кэширования пом­


ните и об обратном эффекте кэширования. Если вы внесете изменения в
ваши стили или скрипты, то пользователи увидят их, только когда загрузят
новую версию. Чтобы увидеть изменения раньше, нужно будет очистить кэш
браузера, а как это сделать, как показывает практика, знают не все пользова­
тели. В любом случае приведенный конфиг предполагает хранение файлов
в кэше 1 сутки (86400 секунд). Если вы вносите изменения в сайт редко,
можно увеличить это время до 10-30 суток. Для статического контента, ко­
торый никогда не меняется (выложили файл и забыли о нем), кэширование
включено сроком на 1 год.

# Хранить кэш 24ч\1 сутки


expires 86400s;


# Добавляем заголовки (хедеры)

······································································-········-··-EI
\stп1 l,i1111x (ASTRд*LINUX"j

add_header Pragma puЫic;


add_header Cache-Control "max-age= 86400, puЫic, must-revalidate, proxy­
revalidate";
#add_header "X-UA-CompatiЫe" "IE=Edge,chrome=l";

# Правила rewrite для версированного CSS + JS через директиву filemtime


location ~* л.+\.(cssljs)$ {
rewrite л(.+)\.(\d+)\.(cssljs)$ $1.$3 last;
# Задаем, сколько будет храниться кэш
expires 31536000s;
# Выключаем логирование
access_log off;
log_not_found off;
# Добавляем заголовки (хедеры)
add header Pragma puЫic;
add header Cache-Control "max-age =31536000, puЫic";
}

# Агрессивное кэширование для статических файлов


location ~* \.(asflasxlwaxlwmvlwmxlavilbmplclassldivxldocldocxleotlexe
lgiflgzlgziplicoljpgljpegljpelmdblmidlmidilmovlqtlmp31m4almp41m4vlmpeg
lmpglmpelmpplodblodclodflodglodplodslodtlogglogvlotflpdflpnglpotlppslp
ptlpptxlralramlsvglsvgzlswfltarlt?gzltifltifflttflwavlwebmlwmalwofflwril
xlalxlslxlsxlxltlxlwlzip)$ {
# Задаем, сколько будет храниться кэш
expires 31536000s;
# Выключаем логирование
access_log off;
log_not_found off;
# Добавляем заголовки (хедеры)
add header Pragma puЫic;
add header Cache-Control "max-age=31536000, puЬlic";

Включить НТТР2 можно в директиве listen:

server
listen 443 ssl http2;

Чтобы проверить, что сайт работает по НТТР2, установите расширение


НТТР2 indicator для Firefox или Chrome.


ID----. -------------. -----------..-...--. -. ---. --.. ---. ---. ·---. ---.. ---. ----. ---.. -.
J 1,11\,1 _:'11 110111,1 llll'll lll' ЩJOII !ВО 111 1 l'. l l,IIOC 1 11 l'l'l)Bl'pa

20.3.2. Настройка Apache

Файл конфигурации Apache называется /etc/apache2/apache2.conf. Это ос­


новной файл конфигурации. Если нужно изменить конфигурацию для опре­
деленного сайта, поищите его конфиг в папке /etc/apache2/sites-availaЬle.
По умолчанию модуль mod_deflate должен быть включен в Apache. Но луч­
ше убедиться и выполнить проверку и поискать следующую строку в конфи­
ге веб-сервера Apache:

LoadМodule deflate module modules/mod deflate.so

Мы можем определить, какие типы файлов нужно сжать:

AddOutputFilterByType DEFLATE text/html text/plain text/css


application/javascript

Установите следующую конфигурацию в виртуальный хост Apache, и это


включит сжатие mod_deflate для вашего сайта.

<Directory /var/www/html/>
<IfModule mod mime.c>
AddType application/x-javascript .js
AddType text/css .css
</IfModule>
<IfModule mod deflate.c>
# Сжимаем HTML, CSS, JavaScript, Text, XML и шрифты
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml

'-------.... --.. --.-------------------------. -----------------. ---. ---------------111


---------------------------------
, ' .

AddOutputFilterByType DEFLATE image/x-icon


AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
# Следующая строка для .js и .css
AddOutputFilter DEFLATE js css
AddOutputFilterByType DEFLATE text/plain text/xml application/xhtml+xml
text/css application/javascript application/xml application/rss+xml
application/atom_xml application/x-javascript application/x-httpd-php
application/x-httpd-fastphp text/html
</IfModule>
<IfModule mod setenvif.c>
# Удалить ошибки браузера (требуется только для очень старых браузеров)
BrowserMatch лмozilla/4 gzip-only-text/html
BrowserMatch лмozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
<IfModule mod headers.c>
Header append Vary User-Agent env= !dont-vary
</IfModule>
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip dechunk Yes
mod_gzip _ i tem_include file . (html? 1 txt I css I js I php I pl) $
mod_gzip_item_include handler лcgi-script$
mod_gzip_item_include mime лtext/.*
mod_gzip_item_include mime лapplication/x-javascript.*
mod_gzip_item_exclude mime лimage/.*
mod_gzip_item_exclude rspheader лcontent-Encoding: .*gzip.*
</ifModule>
</Directory>

Для включения кэширования можно вынести конфигурацию за пределы ос­


новного файла и создать файл .htaccess в корневом каталоге документов. Со­
держимое этого файла будет следующим:

# Кэширование в браузере на стороне пользователя


<IfModule mod_expires.c>
# Включаем поддержку 'директивы Expires
ExpiresActive On
# Задаем время для хранения файлов (картинок) в кэше для каждого типа
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"


ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"

....................................................................................
fASTRд*LINUX"J 1 1,111,1 .::'(1 llo111.1111t·11щ• 11\IOIIШO\ll lt'.ll,IIOt'I II сt•рвера

ExpiresByType text/x-javascript "access 1 year"


ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus l year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>
# Cache-Control
<ifModule mod headers.c>
# Задаем 30 дней для данного типа файла
<filesMatch "\. (icolpdflflv I jpg I jpeglpng I gif I swf)$">
Header set Cache-Control "max-age=2592000, puЫic"
</filesMatch>

# Задаем 30 дней для данного типа файла


<filesMatch "\. (css I js)$">
Header set Cache-Control "max-age=2592000, puЫic"
</filesMatch>

# Задаем 2 дня для данного типа файла


<filesMatch "\. (xml I txt)$">
Header set Cache-Control "max-age=l72800, puЫic, must-revalidate"
</filesMatch>

# Задаем 1 день для данного типа файла


<filesMatch "\. (htmllhtmlphp)$">
Header set Cache-Control "max-age=l72800, private, must-revalidate"
</filesMatch>
</ifModule>

# Использование кэша браузеров


FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ". (jpgljpeglgiflpnglicolcssljs)$'�>
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>

# Запрет отдачи НТТР-заголовков Vary браузерам семейства MSIE


<IfModule mod setenvif.c>
BrowserMatch "MSIE" force-no-vary
BrowserMatch "Mozilla/4. (0-9] {2}" force-no-vary
</IfModule>

Чтобы все это добро работало, вам нужно включить модули headers и expires.

...
Это делается командами:


..... ...... ................................................................. ..... .
\,t,·a l .i1111x (ASTRд*L1Nux·j

# a2enmod headers
# a2enmod expires
# service apache2 restart

Последняя команда перезагружает сервер - в принципе, вам все равно это


нужно было сделать, чтобы он перечитал конфигурационный файл. Конеч­
но, можно было бы обойтись reload, но тогда бы модули headers и expires не
были бы загружены, если до этого вы их не использовали.

20.4. Включение кэширования на стороне


сервера
Теперь поговорим о кэшировании на стороне сервера. Хорошо, если движок
сайта обладает возможностью кэширования страниц - это может суще­
ственно повысить его производительность. Для многих CMS разработаны
расширения кэширования. Вы можете использовать эти расширения или же
настроить инструменты Pagespeed и Memcached на сервере.
Выбрать средство кэширования поможет следующий алгоритм:

• Существуют ли расширения кэширования на вашей CMS:


» Да - можете использовать их. Если они платные, то или их придется
покупать или использовать инструменты сервера.
» Нет - использовать инструменты сервера.
• Планируете ли вы смену CMS?
» Да - используйте инструменты сервера, тогда ничего не придется
решать с кэшированием после установки новой CMS, все уже будет
работать.
» Нет - можно использовать расширения кэширования для CMS.
Далее будет показано, как настроить Pagespeed и Memcached для сервера
Apache.

20.4.1. Настройка Pagespeed


Первым делом нужно определить разрядность операционной системы. Ко­

.....
нечно, сегодня найти 32-разрядный VDS - еще та задача, но все же. Введи­
те команду:

----- -------.---. -.-...--...-----·........-............-.-...-..--..---..--.. _,


1 1,11:,1 �() lloBJ,lllll'IIIH' lljIOIIIIIO lll ll'.11,IIOl'I II l'l'IJlll'pa

uname -а

Если увидите в выводе х86_64 - ваша система 64-разрядная и нужно ввести


следующие команды:

cd /tmp
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed­
staЫe current amd64.deb
sudo dpkg -i mod-pagespeed-staЬle_current_amd64.deb

Для 32-разрядной системы нужно ввести команды:

cd /tmp
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed­
staЫe current i386.deb
sudo dpkg -i mod-pagespeed-staЫe current i386.deb

Хотя, как правило, ваша система окажется 64-разрядной, и последний абзац


можно было бы и не писать. Но мало ли. Вдруг кому-то пришла в голову
светлая мысль организовать веб-сервер на 32-битной машине.
После этого нужно перезапустить Apache:

sudo service apache2 restart

Собственно, на этом все. Больше ничего делать не нужно.

20.4.2. Настройка Memcached

Демон Memcached позволяет добиться существенного ускорения загрузки


страниц. Он доступен из репозитариев UЬuntu:

sudo apt install memcached

После установки демона нужно узнать порт, на котором он работает. Введи­


те команду:
'----.---.---..--...-------. ---. ----. ---. ---. ------------. ----. ----. --------------111
\sti-a l.irшx

netstat -tap I grep memcached

Порт будет выведен после слова localhost, например localhost: 11211. Это
стандартный порт для Memcached, который нужно указать в конфигурации
mod_yagespeed.
Для ускорения РНР-приложений нужно установить пакет php-memcached:

apt install php-memcached

Осталось настроить mod_yagespeed на работу с помощью Memcached. Для


этого откройте файл /etc/apache2/mods-availaЫe/pagespeed.conf:

mcedit /etc/apache2/mods-availaЫe/pagespeed.conf

Произведите поиск по строке ModPagespeedMemcachedServers. Раскоммен­


тируйте строку:

# ModPagespeedMemcachedServers localhost:11211

Она должна быть такой:

ModPagespeedМemcachedServers localhost:11211

Перезапустите Apache:

sudo service apache2 restart

После этого можете наблюдать некоторое ускорение работы вашего сайта.


Для более тонкой настройки обратитесь к документации по memcached.

20.5. Ускорение CMS


В этом разделе будет рассмотрено ускорение Magento 2 - одной из самых
требовательных к ресурсам CMS. Приведенные советы будут актуальны и
для других CMS, но интерфейс панели управления, ясное дело, будет от­
личаться.

...
Часто свежеустановленная Magento работает очень медленно. Особенно си­
туация ухудшается после установки нестандартной темы оформления. Без
скипа магазин работает еще более или менее, но как только "одели" тему,

. ··-.... ......... - .. - - .. - -... -... - -... - - .. - - - .. - - . - . - .. - - ... - - ... - -........ -..... .


(ASTRд*LINUX.] 1 1,11\,1 20 lloвl,llllt'IIЩ' IIJIOll 1110 111 H'.11,IIOC 111 t't'JJllt'pa

начинаются заметные тормоза. Рано или поздно, конечно, вам все равно при­
дется добавить ресурсов (количество vCPU и оперативной памяти), но до
этого нужно выжать максимум из того, что есть. Добавить ресурсов всегда
можно.

20.5.1. Включение кэша

Включение кэширования существенно ускоряет загрузку страниц магазина.


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

1. Выберите все выключенные типы кэша.


2. Из списка выберите действие Включить.
3. Нажмите кнопку Отправить.

На рис. 20.7 показано, что один из типов кэша отключен. Это кэш разметки
страницы. В данном случае система вынуждена проверять разметку каждый
раз при генерировании страницы, что, разумеется, негативно сказывается на
производительности.

Управление кэшем Q. 41С» .L ,....-. •



('�


1�-·:,jili:iiqiiiф�м•ч



=-_;о::,:;,



с::=-=з

Рис. 20. 7. Включаем кэш

. - - . - -... -... - -·. - -- .. -... -.... -................ --... -- . - - --- - -...- -- - - -- -- - ..- - - ....
(ASTRA.LINUX"]

20.5.2. Включаем сжатие и объединение JavaScript и CSS

Тема оформления и расширения добавляют множество JavaScript-cцeнapиeв


и CSS. Ускорить загрузку этих ресурсов можно путем включения сжатия
(минимизации - когда из кода удаляются все лишние пробельные символы)
и объединения сценариев в один большой блок кода. Логика проста - мини­
мизация уменьшает размер передаваемых данных, а объединение ресурсов в
один файл сокращает количество запросов к серверу. Например, у вас было
20 сценариев JavaScript, следовательно, браузер должен бьш сделать 20 за­
просов к серверу. Вместо этого будет один запрос.
Перейдите в Магазины, Конфигурация, Расширенные, Разработчик,
Настройки Javascript /Настройки CSS. Включите параметры Объедине­
ние файлов JavaScript / Группирование файлов CSS (или Объединение
файлов CSS - название параметра зависит от локализации Magento). Так­
же включите параметры Минифицировать файлы JavaScript и Минифи­
кация СSS-файлов. На рис. 20.8 с настройками JavaScript все хорошо -
они объединяются и минимизируются. А вот файлы CSS отравляются как
есть - без группировки и минимизации. Это тоже может быть причиной
плохой производительности.

Настрой11:и 1av.1Script э
06-wд•-� Ф-irnжJ•v.-sc,-;p� (Д�
·•= ....�-..
. ,.. .

..
BiЛIO'IIIT"J•v•S(t1ptBurn:l�na
...
-�,-- ............
:...,. , , ,...; - - - - -
- .................. ....... . ..

М•имфмц•роРТt,, Ф•lin..i Jav,1S<:r!p(

Tr,1nii.11ons11·,[•IIY
r'-"•--�1

LogJS Епо, i 10 S•и>Qf\ StQf:�:


....
;; �, '·�•;>,,;,;_.� ··,;;•'>

Vucl-.,J,,.,,.r,,,"',"'"""'-"'�!<r<:J'.""""''

CSS настройки е

М1111<114"-1<ацк11 CSS-фa>inoв


Рис. 20.8. Параметры JS/CSS

111!1----------------------------------------------------------------------------------·
1 1:111,1 :( 1 l loвы111l'll lll' 111ю111110 1111 l•.11.11щ· 1 11 l.l'IНll'pa

20.5.3. Оптимизируйте изображения

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


слайдер на домашней странице подразумевает использование картинок раз­
мером 1920х1080, то не нужно использовать картинки в 2-3 раза больше -
это только увеличит время загрузки страницы.
Существенно уменьшить размер JРЕG-картинок можно, если уменьшить ка­
чество до 80%: визуально это не будет заметно, а вот размер файла станет
намного меньше.
Также для ускорения загрузки изображений можно использовать CDN.
Правда, они платные в большинстве случаев, но, тем не менее, использова­
ние CDN позволяет ускорить загрузку изображений, поскольку изображения
будут загружаться с ближайшего к пользователю сервера.

20.5.4. Использование Flаt-катеrорий и продуктов

Перейдите в раздел Магазины, Конфигурация, Каталог, Каталог, Витри­


на и установите параметры, как показано на рис. 20.9. Вы должны включить
параметры Использовать плоский каталог категории и Использовать
плоский каталог продукции.

;щ; Фili!ЧнА

'""'•-n.e_,.._..,,.

..
•!:"" , ... ..-�·
"--•"'..,. npc,,r«<>•,.. ''"""""'j
�·-·-···· ·•--'""'"''-'"""""•

•. Рис. 20.9. Настройки плоских катш,огов категорий и продуктов

...................... .............................. . .................. . ... ...... ..


\,t,·a l .i1111\

Подобные настройки уменьшают количество запросов к Бд, и сайт будет


работать быстрее.

20.5.5. Переводим Magento в production-peжим

Magento сама по себе нерасторопная система. А в режиме разработчика она


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

php bin/magento deploy:mode:set production

Переводить в режим production нужно только тогда, когда сайт полностью


готов - установлены все необходимые расширения, тема оформления, вне­
сены изменения в CSS/JS. Разница в том, что в режиме разработчика все
изменения вносятся сразу же. В режиме production вам нужно выполнить
развертывание системы после внесения изменений, иначе вы их попросту не
увидите. Команда, выполняющая развертывание статических файлов:

php bin/magento setup:static-content-deploy -f

Для дополнительной информации о режиме разработчика обратитесь к до­


кументации Magento.

20.5.6. Настройка MySQL

При настройке MySQL обратите внимание на параметры раздела Fine


Tuning. Опять тут все зависит от размера вашей базы данных и от размера
оперативной памяти. На рис. 20.1 О приведена конфигурация рабочего сер­
вера.

- •
------ -- ------------ - ----- --- -------- - -- ---- ---- ------- - - -- - - -- ------------- - -- --.
1. ,ава �О. Повышс1111с 11ро11 шо.1111с.1ыюс 111 сt•рвсра

Рис. 20.10. Конфигурация MySQL для Magento


··---·---············-···-···-····················································-ID
� • ® �

....
ASTRA LINUX ....
Глава 21.

Настройка почты на
веб-сервере
(ASTRд*LINUX"J

Залог успешной работы веб-сервера - правильная настройка почты. Ведь


если почта настроена неправильно, он не сможет отправить пользователям
важные уведомления:

• Письмо со ссылкой подтверждения регистрации - пользователь не


получит письмо со ·ссылкой для подтверждения учетной записи и не смо­
жет зарегистрироваться.
• Письмо с уведомлением о заказе - это не так страшно, но все равно
неприятно.
• Письмо администратору с уведомлением о возникших проблемах -
администратор ничего не узнает о проблемах на сервере.

Для успешной работы отправки писем РНР должен быть настроен правиль­
но. В этой главе будет показано, как это сделать.

... •
--.. --... - ...... - - . - - - -- . - -- .. -.... -.. - -.. - -- - -- - - - ---.. - -.. - --- - - ...--... - -... --.
[ASTRд*LINUX.j 1.,ава 2l.llac1poiiю11ю•11ы на всб-ссрвсрс

21.1. Проверяем, работает ли почта

Напишем небольшой сценарий mail.php:

<?php
mail ('ваш email', 'Test', 'Hello') ;
?>

Выполним сценарий:

php mail.php

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

21.2. Принцип настройки

Для отправки почты нам нужен SМТР-сервер. Но далеко не все облачные/


обычные провайдеры предоставляют своим клиентам почтовые серверы.
Это первый момент. Второй заключается в том, что стандартная функция
mail() не поддерживает аутентификацию, а все современные SМТР-серверы
просто так письма не отправляют.
Выход есть. Мы создадим почтовый ящик, установим программу-посред­
ник ssmtp, настроим ее соответствующим образом, а затем укажем РНР, что
нужно отправлять почту через эту программу. Все довольно просто, и на все
про все (с регистрацией почты) у вас уйдет не более 15 минут.

21.3. Установка и настр'ойка ssmtp

Итак, регистрируйте почтовый ящик, от имени которого ваш магазин будет


отправлять письма. Возможно, такой ящик уже создан. Чтобы продолжить
далее, вам нужны следующие сведения:

•.
. -... - -.... - ....... - -... -... -... -........ -............. -... -..................... ..
\str·a l.i1111\

• IР-адрес или доменное имя вашего почтового сервера.


• Порт, через который происходит отправка (чаще всего 587 или 465).
• Имя пользователя (часто это ваш email).
• Пароль.

Примечание. С недавних пор Google ограничил доступ к SМТР­


сервису и настроить его для работы с ssmtp уже не выйдет, но
существуют и другие SМТР-сервисы, так что это особенно не
проблема.

Теперь можно приступить к установке ssmtp:

sudo apt install ssmtp

После этого открываем файл конфигурации /etc/ssmtp/ssmtp.conf и приво­


дим его к следующему виду:

# Почта пользователя root


root= root@localhost
# Yes - будет писаться отладочная информация (в случае проблем)
# No - ничего писаться не будет
debug=No

# Параметры SМТР-сервера - имя и порт


mailhub = имя сервера:587

# Перезаписать домен:
# rewritreDomain= your.shop.com

# Имя пользователя
AuthUser=email@host.com
AuthPass=PrettySecretPassword
UseSTARTTLS=Yes

21.4. Настройка РНР


Откройте нужный файл php.ini. Он хранится, как правило , в каталоге
/etc/php7/apache2/php.ini или /etc/php5/apache2/php.ini (если используется


РНР 5). Найдите параметр sendmail_path и установите его так:

111--------·--··--···--------------··---··--···-····-···-········-···--···-···-···-···
1 1,111,1 .::' 1 llac 11ю111,а 1111•111,1 11а нt·ii-t·t·1н1t'l)l'

sendmail_path = /usr/sbin/ssmtp -t

Теперь попробуйте отправить почту функцией mail(). Все должно быть нор­
мально. Если же нет, функция mail() сразу же вам сообщит о проблеме, и это
будет не просто сообщение, а сообщение с подробным описанием ошибки.

21.5. Возможные проблемы

Нужно понимать, что не только РНР будет использовать ssmtp. Эта програм­
ма при установке заменяет системную программу sendmail, следовательно,
почта, отправляемая другими процессами, также будет поступать на указан­
ный в конфигурационном файле почтовый ящик. Самый опасный процесс
- cron. В его расписании могут быть команды, выполняемые раз в минуту.
Следовательно, раз в минуту cron будет отправлять администратору отчет
о выполнении команд. На практике �то приведет не только к захламлению
почтового ящика, но и к тому, что Google перестанет вас обслуживать
(посчитает спаммером, так как вы очень часто отправляете почту).
Что делать? Нужно отредактировать расписание cron как минимум для трех
пользователей - текущего (от имени которого вы обычно работаете), www­
data и root. Соответствующие команды:

crontab -е
crontab -е -u www-data
crontab -е -u root

В расписании нужно убедиться, что в качестве параметра МAILTO указана


пустая строка:

МAILTO=""

Вот теперь с почтой должно быть все хорошо. Если что-то пойдет не так, вы
всегда сможете просмотреть журнал /var/log/mail.log (рис. 21.1).


.....................................................................................
\stпt l.i1111,

Рис. 21.1. Журнш, mail.log

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


1111--···· --··· -... -.....................................................--........... .
Глава 22.

PeIIIeниe типичных
проблем

*
ASTRA LINUX
\stп1 l.irш,

Во время эксплуатации веб-сервера на Linux (и Astra Linux не


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

22.1. Сайт недоступен. Поиск причины

Иногда сайт "падает", попросту говоря - становится недоступным. Если


ваш сайт - не ваша персональная страничка, то простой может стоить как
денег, так и репутации. С репутацией понятно. С деньгами тоже - вы не
смож�е продавать свой продукт, если сайт "лежит". Чем быстрее вы пойме­
те, в чем причина, тем лучше. А чтобы оперативно узнавать, что сайт недо­
ступен, рекомендуем или установить агент мониторинга вроде Zabbix (это
сложнее, зато сообщаемая статистика более качественная - можно узнать и
о нагрузке на сервер, и о переполнении дискового пространства и т.д.), или
воспользоваться сервисами вроде Яндекс.Метрика - такие сервисы перио­
дически опрашивают веб-сайт и отправляют уведомление администратору,


если сайт недоступен.

111-------------·---.---...-----...-...---..---------------------.. ------------------.
1ASTRt'LtNux·1 1 1,11',.1 .'.' l't'llll'lllll' 1111111'1111,1\ 11\Юfi.lt'\I

Далее мы рассмотрим три наиболее вероятных причины "падения" сайта.


Будем считать, что сайт "крутится" на виртуальном сервере, а если на физи­
ческом, то с "железом" все в порядке и нет никаких аппаратных неисправ­
ностей.

22.1.1. Закончилось дисковое пространство/свободные иноды

Самая банальная причина падения сайта. Во время работы сетевые сервисы


вроде Apache, MySQL генерируют приличные объемы данных - журналы,
временные файлы, не говоря уже о загружаемых пользователями данных.
Сервису просто некуда дальше писать данные, и он "крашится". Также при­
чиной падения того же Apache может быть чрезвычайно большой размер
журнала. Проверить свободное дисковое пространство можно командой
df-h.
Мы рекомендуем следующее:

• Чтобы регулярно не проверять дисковое пространство, установить сер­


вис мониторинга для автоматизации данного процесса. Можно настроить
тот же Zabbix или написать сценарий на bash для мониторинга дискового
пространства.
• Настроить logrotate для ротации и сжатия файлов журналов основных
сервисов. Как правило, после установки logrotate все необходимые
настройки уже будут в конфигурационных файлах, администратору оста­
нется только убедиться в том, что logrotate запускается автоматически.
Далее будет показано, как это сделать.

Куда подевало·сь дисковое пространство?

• Временные файлы - загляните в /tmp. Как правило, оттуда можно уда­


лить сразу все.
• Файлы сессий - каталог зависит от настроек движка.

...
• База данных - для сокращения ее размера базу данных можно оптими­
зировать. Также можно выполнить специфические для движка запросы.

•.
- - - - - - - -- - - -- - - - - - -- - - - -- - - -- - - - - - - - - - -- - - - - - - - - - -- - - --- -- - - - - - - - - - - -- - -- - - - - - - -
(ASTRд*LINUX"]

Например, для WordPress следующий запрос удаляет комментарии со


спамом, что может существенно сократить размер базы данных:
DELETE FROM wp_com mentmeta WНERE com ment_id NOT IN (SELECT comment_id
FROM wp_comments)
• Мэйл-боксы - стандартные почтовые ящики мало кто проверяет, а они
могут быть заспамлены. Обычно они хранятся в /var/mail. Несколько ги­
габайтов спама- вполне реально.
• Журналы- просмотрите в /var/log. Лучше всего настроить logrotate для
ротации и сжатия журналов, но если некоторые журналы слишком боль­
шие и из-за них сервис не запускается, их можно удалить.
• Резервные копии - возможно, вы не воспользовались услугой резерв­
ного копирования, а настроили создание бэкапов с помощью системного
ПО. В этом случае проверьте каталог с бэкапами и удалите старые резерв­
ные копии.

А теперь внимание! Иногда заканчивается не свободное место, а свободное


количество инодов (i-node). Результат такой же- система не может создать
файл, и сайт "падает" из-за подвисания сетевого сервиса. Куда подевались
иноды? Некоторые движки, например Magento, генерируют слишком много
файлов сессий (обычно хранятся в /var/session, но все зависит от настроек
движка). Такие файлы очень маленькие, места практически не занимают,
зато крадут драгоценные иноды. Одна из тактик - регулярно чистить ката­
лог сессий. В cron добавляется вот такой сценарий:

cd /var/session
for i in sess *; do rm -fv $i; done

Недостаток этого способа в следующем:

• При удалении сессий стирается вся информация о пользователе, напри­


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

....
• На одном из сайтов популярность была такова, что сессии очень быстро
съедали все доступные иноды. Приходилось запускать их чистку чуть ли

- ........ - ... - -.. - -........ - ... - - . - - - - .... - - - - -....... -.. - -.. - - - .. - -... -- . - - _,
(ASTRд*LINUX.) 1 1,1н,1 22 Pr1ш·1111t• 1 111111•1111,1\ 11poii.1t'\J

не раз в час, иначе сайт нормально не работал. Сами понимаете, раз в час
всех пользователей, в том числе и менеджеров, будет "выбрасывать" с
сайта - дело не очень хорошее.

Альтернативное и более правильное решение заключается в создании еще


одного диска (или раздела) с файловой системой reiserfs. Она не блещет про­
изводительностью, зато позволяет в одном блоке хранить несколько файлов
- пока размер блока физически не заполнится. Reiserfs полностью реши­
ла проблему с инодами. Теперь сервер спокойно держит миллионы файлов
инодов, и чистить /var/session приходится довольно редко - на данном сер­
вере автоматическая чистка вообще выключена и производится вручную ад­
министратором раз в месяц при регулярном обслуживании сервера.

22.1.2. Нехватка прочих ресурсов

Кроме дискового пространства, не нужно забывать о памяти и ресурсах про­


цессора. Здесь поможет команда htop, которая показывает не только запу­
щенные процессы, но и потребляемые ресурсы.
Одна из причин падения сайта - нехватка ресурсов, особенно если речь
идет о монстрообразных движках вроде Symfony, Magento и т.д. Они чув­
ствительны не только к оперативке, но и к количеству ядер.
Если у вас виртуальный сервер, вам повезло - добавить новые ресурсы
можно с помощью пары кликов мышкой. А вот с физическим сложнее -
придется докупать оперативную память и модернизировать сервер вручную.
Все это - время и деньги.

22.1.3. Неправильная конфигурация сервера

Мало выделить ресурсы, важно еще их правильно использовать. Если


программное обеспечение использует ресурсы неэффективно, сайт может
"падать". Типичный пример - "крушение" Apache из-за нехватки макси­
мального количества процессов, которые может запустить Apache. В логах

•. ... .... .. .... . . . ............ ................... .... ........ . ... --..... -. --.--··--ID
сообщение выглядит примерно так:
, ,·а 11111\ [ASTRA LINUX"j

[Sat Jun 27 11:59:59.443036 2020] [mµn_prefork:error] [pid 37252] АН00161: server


reached МaxRequestWorkers setting, consider raising the МaxRequestWorkers setting

Здесь все, казалось бы, просто. Нужно открыть конфиг /etc/apache/apache2.


conf и повысить значение MaxRequestWorkers. Но не спешите этого делать.
Сначала выполните htop и посмотрите размер процесса Apache. Например,
пусть процесс Apache занимает 100 Мб. Если вы установите 150 одновре­
менных процессов, то понадобится 150х100, то есть почти 15 Гб памяти, и
это нужно учитывать. Не забывайте, что для системы и других процессов
(того же MySQL) также нужна память. Поэтому не переусердствуйте с этим
параметром и не забывайте добавлять необходимые ресурсы в панели управ­
ления сервером.
Если же установить MaxRequestWorkers больше, чем может поместиться в
памяти, в логах появится неоднозначная запись:

[Sat Jun 27 15:29:04.747616 2020] [core:notice] [pid 37252] АН00051: child pid 32103
exit signal Segrrentation fault (11), possiЫe coreduпp in /var/coreduпps

Экспериментальным путем было выяснено, что причина в нехватке опера­


тивной памяти.
Сервис MySQL, особенно с его движком lnnoDB, тоже требователен к пра­
вильной настройке. База данных может легко подвиснуть при сохранении
изменений вот с такой ошибкой:

SQLSTATE[HY00 0]: Genera l error: 1205 Loc k wa it timeout e x c e eded; try


r e s tarting transaction

Если MySQL еще жив, можно попробовать от админа БД ввести запрос:

SET GLOBAL in nodb lock wait timeout 1 20;

Этот же оператор поможет, если перезапуск MySQL временно невозможен.


Для постоянной установки значения конфигурации нужно открыть файл
/etc/my.cnf и установить новое значение:

18·······························:···········································-······· •
1 1,111.1 .::'.::' Рt·шt·н�н· 1111111•1111.1\ 11pofi.н·,1

[mysqld]
innodb lock wait timeout=l20

После этого нужно перезапустить MySQL и попробовать поработать при но­


вом значении.
Ошибки в работе могут быть вызваны и неправильной установкой параметра
innodb_buffer_poo/_size. В этом случае в логе может быть такое сообщение:

Memory size allocated for the temporary tаЫе is more than 20% of
innodb_buffer_pool size.

Такое сообщение будет сгенерировано, если размер памяти, выделяемый для


временной таблицы, на 20% больше, чем значение innodb_buffer_pool_size.
Нужно просто увеличить значение этого параметра.
В большинстве случаев журналы помогут в расследовании падения сервера
- в них даже приводятся четкие указания относительно того, какие пара­
метры нужно изменить для нормальной работы сайта. Если подытожить, то
причины падения сайта сводятся к нехватке ресурсов и неправильной кон­
фигурации программного обеспечения.

22.2. Сценарии автоматического перезапуска


служб в случае сбоя

Очень плохо, когда сайт падает. Гораздо хуже, когда он падает по непонят­
ной причине. Иногда на установление причины сбоя может понадобиться
продолжительное время, если все это время сайт будет "лежать", админи­
стратора могут просто уволить. К счастью, есть решение, позволяющее не­
много скрасить "горечь падения", и оно будет описано в этом разделе.
Суть решения в следующем: нужно настроить/написать самому средство
мониторинга работоспособности сайта. Если сайт "упал", это средство будет
перезапускать сервисы Apache и MySQL (или только Apache - все зависит
от специфики сайта и причины сбоя) .

•.----------------------------------------------------------------------------------1111
\sti-a \,i1111x (ASTRд*LINUX"]

Решение, конечно же, временное. Нужно найти и устранить причину па­


дения, но зато такой "костыль 1' позволяет быстро восстановить работо­
способность сайта: руководство даже не заметит сбой. Что же касает­
ся обычных пользователей, то даже если кто-то и получит ошибку
Server Error, через минуту сайт уже будет работать, и вряд ли кто-то
будет особо жаловаться.
Проверять работоспособность сайта можно двумя способами: или пытать­
ся получить реальный файл (можно для этого создать пустой файл в корне,
важно получить 200-й ответ от сервера), или же мониторить наличие серви­
сов apache/mysql в памяти. Второй способ не защищает от ситуации, когда
сервисы "подвисли" - в памяти они есть, но на самом деле сайт "лежит".
Первый способ не позволяет убедиться в работоспособности MySQL: файл
веб-сервер может и "отдать", а база данных может не работать.

22.2.1. Проверка работоспособности веб-сервера

Проще всего проверить работоспособность веб-сервера путем обращения к


его главной странице: если получен ответ 200, значит, с сервером все хоро­
шо. Ваsh-сценарий будет выглядеть так (адрес можно заменить на https://,
если используется защищенный протокол):

#!/Ьin/bash

if curl -s --head --request GET http://site.name I grep "200 ОК" > /dev/null;
then
echo "Site is UP"
else
echo "site is DOWN, restarting Apache"
/ usr/sЬin/service apache2 restart
fi

Вызов сценария нужно поместить в расписание cron. Периодичность зави­


сит от частоты падения сервера -если сервер сбоит иногда, можно раз в
5-10 минут, если сайт "лежит" часто-раз в минуту. Да, это создаст допол­
нительную нагрузку на сервер, но зато обеспечит его перезапуск в течение
одной минуты.


al---·.. -.. ---..-.... -... --.. --..---. ------------.. -...-. -. ---. --· -----·----. -------.
(ASTRд*L1Nux·] 1 1,111,\ �� l'l'llll'lllll' 1111111'1111,1\ 111)011.ll'\I

22.2.2. Проверка работоспособности MySQL

Напишем небольшой РНР-сценарий, подключающийся к БД и возвраща­


ющий 1, если соединение удалось, и О, если соединение не работает. Соб­
ственно, код этого сценария очень прост:

<?
include "config.php"; // Здесь параметры доступа к БД

$mysqli = new mysqli($DBHOST, $DBUSER, $DBPASSWD, $DBNAМE);

if ($mysqli->connect errno)
echo "О";

else "1"; // connect ok


?>

Затем создается Ьаsh-сценарий, подобный этому:

#!/Ьin/bash
RESULT=$(/usr/Ьin/php test-mysql.php)
if [ $RESULT -eq О ]; then
echo "Restarting MySQL"
/etc/init.d/mysqld restart
fi

Как и в случае с первым нашим Ьаsh-сценарием, вызов этого сценария нуж­


но поместить в расписание планировщика. Можно объединить эти два Ьаsh­
сценария в один и вызывать все сразу.

22.2.3. Если падают процессы

Если процессы не виснут, а "падают", то есть после сбоя вообще нет про­
цессов Apache/МySQL в таблице процессов, тогда поможет следующий сце­
нарий:

#!/Ыn/bash

. ----------------------------------------------------------------------------------118
RESTART="/etc/init.d/apache2 restart"
PGREP="/usr/bin/pgrep"
HTTPD="apache2"
$PGREP ${HTTPD}
if [ $? -пе О ]; then
$RESTART
date >> /var/log/srvmon.log
echo "Apache restarted" >> /var/log/srvmon.log
fi

RESTARTM="/etc/init.d/mysql restart"
MYSQLD="mysqld"
$PGREP ${MYSQLD}
if [ $? -пе О ]; then
$RESTART
$RESTARTM
date >> /var/log/srvmon.log
echo "Services restarted" > /var/log/srvmon.log
fi

Он не только перезапускает "упавшие" сервисы, но и ведет небольшой лог


- записывает время, когда сервисы были перезапущены.

22.2.4. Monit: если нет таланта программиста

Все приведенное ранее можно сделать и с помощью сервиса monit. Его за­
дача - мониторинг работоспособности сервера. Если что-то не так, то monit
может перезапустить ту или иную службу.
В Интернете есть множество статей, посвященных monit, к тому же у него
очень хорошая документация. Поэтому переписывать ее не станем. Вместо
этого цриведем реальный конфигурационный файл мониторинга Apache:

check process apache with pidfile /var/run/apache2.pid


group www
group apache
start program "/etc/init.d/apache2 start"
stop program "/etc/init.d/apache2 stop"
# Если загрузка cpu > 90% 5 циклов, то перезапустить процесс.
if cpu > 90% for 5 cycles then restart

....
# Если не удается получить файл server-status, перезапустить.
if failed host localhost port 80 with protocol http and request "/server­
status" with timeout 25 seconds for 4 times within 5 cycles then restart

--
- ... - .. . - -.. - - - .. - - ... -... - - . . - - . ·- - . .. - - . - - -·. - - . - .... - ... - .. - . - . . ·- - . - - . - . _,
[ASTRд*LINUX"J J 1,11!,1 ..'..' l't•lllt'lllll' lllllll'lllbl\ ll(Юii.lt'\I

depend apache_bin
depend apache_rc

check file apache_Ьin with path /usr/sЬin/apache2


group apache
include /etc/monit/templates/rootЬin

check file apache_rc with path /etc/init.d/apache2


group apache
include /etc/monit/templates/rootЬin

Конфигурация monit понятна даже новичку. На конкретном сервере была


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

22.3. Борьба с сессиями Magento: защита от


переполнения диска

Magento хранит в сессиях информацию о деятельности пользователя на сай­


те, в том числе информацию о корзине посетителя. Примечательно, но эта
информация так и не удаляется, в конечном счете в каталоге var/session со­
бирается огромнее количество файлов (конечно, если в настройках Magento
указано, что сессии хранятся в файловой системе, а не в базе данных). Хра­
нение сессий в базе данных решает эту проблему, но создает новую - база
данных будет изрядно подтормаживать со временем.
Когда в каталоге var/session накопится очень много файлов, это приведет к
тому, что обычная команда rm * работать не будет - вы получите сообщение
о том, что список файлов слишком длинный. Другими словами, просто так
их уже не удалишь.
Вторая часть проблемы в том, что на диске, на котором хранится каталог
с сессиями, могут закончиться свободные иноды. Свободное пространство
еще будет, но не будет свободных блоков для хранения файлов. Эта
проблема характерна для файловых систем, которые используют минимум
один блок для хранения одного файла. Представьте, что размер блока равен

. ...
4096 байтов, а файл занимает 200 байтов. Тогда эти 200 байтов займут весь
блок размером 4096 байтов.

'- ---. --..-� -·-.....--...--. ·--.-.-· ...-...--..-..----.-....-....----... ·-.. ·-.-


\sti-a J,iщ1x

Для диагностики проблемы помогут следующие команды:

df -h
df -i
cd var/session
1s -1 1 WC -1

Первая возвращает информацию о свободном пространстве, вторая - об


использовании инодов, последние 2 команды - подсчитывают количество
файлов сессий. Несколько миллионов сессий за один месяц - вполне нор­
мальное число.
Все это приводит к тому, что сама Magento начинает изрядно подтормажи­
вать, а если закончатся свободные иноды, то сервер перестанет функциони­
ровать, поскольку система не сможет записать данные на диск.

22.3.1. Решение 1: сценарий

Следующий сценарий удаляет все файлы из каталога сессий:

#!/Ьin/bash
# Измените путь к каталогу с сессиями
cd /пyть/var/session
for i in sess *; do rm -fv $i; done

Данный сценарий нужно запускать регулярно (добавить в расписание cron).


Слишком часто запускать его не нужно - ведь при удалении файла сессии у
пользователя будет очищена корзина, а все менеджеры будут "выброшены"
из панели управления. Именно поэтому запускать его нужно не чаще раза в
сутки и не в бизнес-время. Лучше всего часа в 3-4 ночи, когда посетителей
на сайте минимум.

22.3.2. Решение 2: смена файловой системы

Если файлы сессий "плодятся" чаще, чем того хочется, тогда придется соз­


дать еще один виртуальный диск и отформатировать его как reiserfs. Преиму-

....................................................................................
1 l,IH,I :2:2 Pt'llll'lllll' 1111111'1111,1'\ IIIНlll.ll'\I

щество этой файловой системы в том, что в одном блоке она может хранить
несколько мелких файлов, и проблема с недостатком инодов будет решена
сама собой. Да и работает reiserfs с множеством мелких файлов увереннее
- Magento перестанет тормозить.
Отформатировать раздел диска как reiserfs можно так:

sudo mkreiserfs /dev/sdЫ

Здесь раздел /dev/sdЫ будет использовать файловую систему reiserfs. Учи­


тывая, что сессии занимают немного места, не нужно покупать огромный
виртуальный диск. Несколько гигабайтов (до 1 О) будет вполне достаточно.
Затем этот раздел нужно указать в /etc/fstab для его автоматического мон­
тирования (будем считать, что монтироваться будет к /mnt/reiserhdd - этот
каталог должен существовать):

/dev/sdЫ /media/reiserhdd reiserf s defaults 1 о

Подмонтируем каталог:

sudo mount /dev/sdЫ

Осталось указать новый каталог в файле app/etc/config.xml:

<default>
<system>
<filesystem>

<session>/media/reiserhdd</session>

</default>

22.4. Ротация журналов сервера

Журналы в Linux иногда разрастаются до неприличных размеров, что при­

•....-................--.-...--..-..-.----..----------------------.-----. -----.... -811


водит к снижению производительности и в некоторых особо запущенных
случаях может даже вызвать переполнение дискового пространства. К
\sti-a l.i1111\ (ASTRд*LINUX"J

счастью, администратор может использовать утилиту logrotate для управле­


ния журналами.
Logrotate - это утилита, выполняющая ротацию и сжатие файлов протоко­
лов (журналов). При правильной настройке файл журнала никогда не раз­
растется до огромных размеров. Если же Logrotate не установлена или же
неправильно настроена, файлы журналов некоторых сервисов (например,
Apache) могут занять все доступное дисковое пространство.
По умолчанию Logrotate установлена в UЬuntu, начиная с версии 16.04, и
настроена для обработки журналов всех установленных пакетов и приложе­
ний, в том числе rsyslog. В других дистрибутивах она может быть даже не
установлена, а на некоторых виртуальных серверах - по непонятным при­
чинам - не настроена.
Несмотря на то, что Logrotate установлена по умолчанию, будет нелишним
проверить ее конфигурацию. На одном из моих серверов почему-то не вы­
полнялась ротация журналов Apache, в результате произошло переполнение
дискового пространства.
Конфигурация Logrotate хранится в следующих местах:

• Файл /etc/logrotate.conf - основной файл конфигурации. Как правило,


он содержит некоторые параметры по умолчанию, настройк и для
нескольких журналов, не принадлежащих системным пакетам, и ин­
струкцию include для подключения конфигурации, хранящейся в файлах
каталога /etc/logrotate.d.
• Каталог /etc/logrotate.d содержит файлы с конфигурацией Logrotate.
Здесь вы найдете конфигурацию для rsyslog, apport, dpkg и других
системных пакетов. Каждый файл - это конфигурация ротации того или
иного журнала. Вы можете добавить свои файлы конфигурации, которые
также будут обработаны утилитой Logrotate.

Рассмотрим конфигурацию ротации журналов для apport - файл /etc/


logrotate.d/apport:

/var/log/apport.log
daily
rotate 7


delaycompress

1111--·-.....-..--· .. --. -...............-............-· .......-...-...-........-.......


I .1ава 22. Рсшсшн· 1111111•111ых 11роб.1см

compress
notifempty
missingok

Вот что означают все эти параметры:

• daily - ротацию выполнять ежедневно (для редко используемых серви­


сов можно использовать команду monthly - ежемесячно или weekly -
еженедельно).
• rotate 7 - хранить последние 7 файлов журналов.
• compress - сжать обновленные файлы (по умолчанию используется
сжатие gzip).
• delaycompress - отложить сжатие предыдущего файла журнала до сле­
дующего циклического сдвига. Эта директива имеет силу только в ком­
бинации с compress. Это может быть использовано в том случае, если не­
кой программе нельзя указать закрыть ее файл журнала и, таким образом,
можно некоторое время продолжать запись в предыдущий файл журнала.
• notifempty - не ротировать пустой файл.
• missingok - не записывать сообщение об ошибке, если журнал пуст.

Конечно, это далеко не все допустимые параметры конфигурации. О допол­


нительных вы можете узнать в справке (команда тап logrotate) или по ссыл­
ке:
https://www.opennet.ru/man.shtml?topic =logrotate&category = 8&russian = O
Теперь представим, что у нас есть некий сервис daemond, хранящий свои
файлы журналов в каталоге /var/log/daemond. Нужно настроить ротацию
журналов этого сервиса.
Все достаточно просто: нужно в /etc/logrotate.d создать файл daemond
(название может быть другим, важно, чтобы вы понимали, что находится в
этом файле сразу по его названию) и заполнить конфигурацию ротации.
Создадим файл конфигурации ротации:

•.. . ...
touch /etc/logrotate.d/daemond

. .......................................................... .... ...... ... .... ..


Лstra Linux

Конфигурация может быть такой:

/var/log/daemond/*.log
daily
missingok
rotate 7
compress
notifempty
create 0640 daemon-data daemon-data
sharedscripts
postrotate
systemctl reload daemond
endscript

Первая строчка задает файлы журналов. В нашем случае - это все lоg­
файлы из каталога /var/log/daenюnd. С первыми пятью командами вы уже
знакомы. Команда create определяет, что после ротации будет создан новый
пустой файл журнала с правами 0640, владельцем daemon-data и группой
daemon-data. Если ваш сервис выполняется от имени какого-то пользователя
(например, daemon-data), а не от root, то очень важно указать правильно имя
пользователя и группы.
Параметр sharedscripts означает, что скрипт postrotate будет выполняться
только один раз, а не после обработки каждого файла.
Параметры postrotate и endscript позволяют указать скрипт, который будет
запущен после того, как файл журнала обновится. В примере приложение
перезагружается.
Осталось настроить Logrotate на автоматический запуск. Чтобы эта утилита
запускалась автоматически, от имени root введите команду crontab -е и в
появившемся редакторе добавьте строку:

10 * * * * /usr/sbin/logrotate /etc/logrotate.conf

Сохраните файл и выполните выход из редактора. Мы создали расписание


планировщика, которое будет выполнять logrotate на 10-й минуте каждого
часа. Конфигурация будет загружаться из файла /etc/logrotate.conf.


�-- ............... - ............................................................ ---·
[ASTRд\1Nux·1 Глава 22. Решен не ·1 ипичных 11роб.1ем

22.5. Десятка утилит для мониторинга сервера

Мониторинг сервера - одна из обязанностей администратора, а сейчас мы


рассмотрим некоторые полезные инструменты, позволяющие сделать вы­
полнение этой обязанности комфортнее. В этом разделе будут рассмотрены
только простые утилиты, не требующие сложной настройки и даже установ­
ки, - многие из них устанавливаются по умолчанию. Конечно, для полно­
ценного мониторинга необходимо установить систему вроде Zabbix, но не
всегда администратор захочет разбираться с установкой довольно сложной
системы, если есть с десяток отличных простых утилит.

22.5.1. htop - информативная версия top

Команда htop является усовершенствованной версией всем нам знакомой


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

• Рис. 22.1. litop-бoлee информативная версия top

···········································-·········-·-·············-············-Cil
Лstra Linux

22.5.2. atop - продвинутый монитор процессов

Если команда htop - более наглядная версия top, то atop - совсем другая
зверушка. Это продвинутый интерактивный монитор производительности.
В отличие от top, выводит только новые изменения об активных системных
процессах. Позволяет контролировать нагрузку процессора, памяти, накопи­
теля, сети, а также просматривать распределение нагрузок по работающим
процессам. В UЬuntu и DeЬian запускается автоматически и постоянно за­
писывает информацию о процессах в /var/log/atop.log.

Рис. 22.2. atop - монитор производительности

22.5.3. apachetop - мониторинг веб-сервера в реальном


времени

Утилита apachetop не устанавливается по умолчанию, для ее установки нуж­


но инсталлировать одноименный пакет. Опция -/позволяет задать файл ac­

...
cess_log, если его расположение отличается от стандартного или если нужно


мониторить журнал доступа определенного виртуального хоста. Предостав-

... .. ... . . . . . ......................... ...... ·- .......................... -....... .


(ASTRд*LINUX"J l .1ава 22. l'сшс1111с I111111•111мх Щ)()б.,см

ляет информацию о текущем положении дел веб-сервера и даже о URL, к


которым обращаются в данный момент.

Рис. 22.3. Утилита apachetop

22.5.4. mytop - мониторинг MySQL

Если есть утилита мониторинга Apache, то, вероятно, должна быть и утили­
та мониторинга MySQL. Для ее запуска нужно указать три параметра:

• -и - задает имя пользователя;


• -р - задает пароль;
• -d - база данных.

Предоставляет информацию о нагрузке на сервер базы данных и даже пока­


зывает текущие SQL-запросы, поступающие от МуSQL-пользователей.


... .. ········· . . ....... .. ...........···-········- -······· ......................... ...
Astra Linux �

Рис. 22.4. Утилита mytop: мониторинг MySQL

22.5.5. iotop - мониторинг ввода/вывода

Сервер тормозит? Есть подозрение на дисковую подсистему? Утилита iotop


позволяет определить процесс, узурпировавший всю подсистему ввода/вы-
вода. о х
Totвl D!SI<. READ 0 00 8 1 s 1 '"otal DISK WRIТE 11 76 К/�
ctual DISI<: REAO 0 00 В/:; Actt1al DISI< 1,РГ"Е 1'-2 74 • ',
ПD PRIO USER

Рис. 22.5. Утилита iotop



al-·······--········-·-·-·····-·--·-----------------------------------------------···
Глава 22. Решение 'JИI111•111ых nроб.1е\1

22.5.6. iftop - мониторинг сетевого интерфейса

Утилита iftop похожа на утилиту top, но вместо проверки использования


процессора она прослушивает сетевой трафик на выбранных интерфейсах
и отображает таблицу текущего использования. Она позволяет ответить на
вопрос: "Почему мое соединение такое медленное?"

Рис. 22.6. Утилита iftop

Если у вас - виртуальный сервер, то вы будете удивлены, когда узнаете,


какими жадными могут быть облачные провайдеры. Некоторые из них вы­
деляют канал для виртуального сервера - не более 1 О Мбит/с. И это в 2022
году ... А дополнительная пропускная способность будет доступна, правиль­
но, за дополнительную плату.

22.5.7.jnettop � еще один монитор сетевого интерфейса

На первый взгляд похожа на iftop, но отличия есть, и существенные. Если


iftop показывает только обмен между узлами, то jnettop показывает и URL,


и передаваемый в данный момент файл. Можно увидеть, какие файлы

·-----------------------------------------------------------------------------------
л�tra [,i1шх

(картинки, сценарии, НТМL-страницы и т.д.) передаются в данный момент


клиентам. Не устанавливается по умолчанию, для ее установки нужно ин­
сталлировать одноименный пакет.

о х
run 0 00 09 de\1ce eth0 pkt[f]1:ter none "j
c,"'t -"1lter on b]ps=bytes1s :1Jocal aggr попе ,"' emote agg,.. none
, q ] u1t [h j elp s]ort1ng [ p]a::kets [ J pau:.e [0J- 9J s1,1tch de11се
'LOCAL < • > RЕМОТЕ TXBPS RXBPS TOTALBPS
(IP) PORT PROTO (IP) PORT ТХ RX TOTAL
1'

Рис. 22. 7. Утилита jnettop

22.5.8. iptraf- мониторинг трафика

Утилита предоставляет различные полезные метрики вроде счетчика ТСР­


пакетов, счетчика байтов, статистику по интерфейсу, индикаторы активно­
сти и т.д.

......... --. --- -- .. -----... - ..... ----... - ..... --· -.. ··-... - .. ---·------· --. ·-. ·---· ·

(ASTRд*LINUX"] Глава 22. Реше11ие 1иш1•111ых 11роб.1с"

Рис. 22.8. Мониторинг трафика с помощью iptraf

22.5.9. пgrер-утилита для профессионала

Утилита ngrep - это то же самое, что и обычный grep, но для сетевого уров­
ня. Она позволяет просмотреть все передаваемые пакеты. Есть возможность
задания фильтров, в том числе с помощью регулярных выражений. Примеры
использования ngrep можно найти по этой ссылке:
http://ngrep.sourceforge.net/usage. html

•. ..-......-.............-.....-...-....-...-........-... -................. -..--..· tlD


Лstra Linux 1ASTRд*LINUX"j

Рис. 22.9. Утилита ngrep

22.5.1 О. птоп - швейцарский нож

Утилита птоп - мониторинг на все случаи жизни. Запустите ее и выберите


объект, по которому вы хотите получить статистику - процессор, память,
диски, ядро, сеть, виртуальная память и т.д.
В заключение этой статьи отметим, что для выхода из большинства утилит
нужно использовать q, Ctrl+X или Ctrl+C. Один из этих способов да срабо­
тает - это на случай, если программа не выводит подсказку.


at------·----·-----------------. ---· ·-· -----·--...... ·--··--· ·---. --------. ---··---·
Глава 22. Решение типичных проблем

Рис. 22.10. Утилита птоп


� .. ® �

.. ASTRA LI N UX ...,j
Глава 23.

Переезд в облако
Лstra Linux � (ASTRд*LINUX")

Содержание виртуального сервера обходится гораздо дешевле содержания


физического сервера. Попробуем убедиться, так ли это.

23.1. Сколько стоит физический сервер

Возьмем средней конфигурации физический сервер. Ничего примечатель­


ного, пусть это будет, например, НР Proliant DL180. Конфигурация весьма
посредственная - 8 ядер на Xeon Silver 4110 2,1 ГГц (не самый мощный
Xeon), 16 Гб ОЗУ и нет ни одного накопителя-их придется купить отдель­
но. Цена такого варианта-примерно 130000-150000 рублей.

Q - д х

1
(2JEЗF=llG(=! •1i•""!"""•n-21 +1(аоо1mво34 т: -j fl.lji v

Сервер НР Proliant DL 180 Gen10 (879512-В21)


fВ .''.), 1', А,11,н��'' 1r.,t: X�'I _о,,с.,, ,t\ !;) •.,,, '( ,·�. [АР,А f; х '· ;,;· ',АСА:,>А:.. :l;((icgat-H:�
..
н�,i1:<.,;; М(\,r,;. ;;,J,, 8t

-
ДOC'J�IIUfloWOC­

136 260 "''

1
"'""'•W""•f№:l't,.;
Эt$... ,�11<>:"'
Баа,n;,;тж.,

__ .,""""'
(•o,-.;;jf<,ч,�.,

.,,..,

;чtФ#R
[-.w;n.'1\ffll()

э,..-.,1<,:,,-.,о
6o::N11i,1ю

.....
Рис. 23.1. Стоимость физического сервера

-- ------------- - . -- -----.. - . - . - -------- - -·. ····- - ··--- . --...................... .



Глава 23. Переезд в облако

Добавьте сюда стоимость 1 или 3 накопителей. В двух накопителях особо


нет смысла, поскольку RАID-массив с чередованием вы не построите из
двух дисков, разве что в режиме зеркалирования, когда второй диск будет
точной копией основного диска, но это очень нерационально с точки зрения
расходования ресурсов. Но тем не менее такая защита данных лучше, чем
вообще ничего.
Посмотрим, сколько стоят серверные накопители. Здесь все зависит от со­
вести администратора и жадности руководства. Если устанавливать то, что
действительно является серверным диском, а не только называется ним, то
цена будет около 15000 рублей (по состоянию на 2022 год ) за один диск. За
эти деньги вы получите SАS-диск со скоростью вращения шпинделя 15000
об/минуту, с буфером 16 Мб, но емкостью всего 300 Гб - это вполне нор­
мально для сервера. Конечно, можно купить обычный SАТА-диск со ско­
ростью вращения 7200 об/минуту и ценой 6000 рублей. При этом емкость
этого диска будет составлять не 300 Гб, а 1 Т б. Если скорость и надежность
для вас - не пустой звук, то вы выберите первый вариант, если же на первом
месте экономия - то второй вариант будет предпочтительнее.
При выборе диска нужно обращать внимание на следующие характеристики:

• Форм-фактор - наш сервер поддерживает 3.5" диски, поэтому подби­


раемые под него диски должны быть в этом форм-факторе. Другие (2.5")
не подойдут.
• Интерфейс - наш сервер поддерживает интерфейсы SAS и SATA. Не­
которые серверы не поддерживают SATA, об этом нужно помнить. Неко­
торые, наоборот, не поддерживают SAS.
• Скорость вращения шпинделя - чем выше скорость вращения, тем
быстрее будет работать диск. Для сервера нужно подбирать диски со ско­
ростью вращения от 1О ООО оборотов в минуту.
• Размер буфера - чем выше размер буфера, тем быстрее будут проис­
ходить операции записи данных. В то же время - тем больше данных
вы потеряете, если произойдет какой-то сбой до того, как все эти данные
будут перемещены из буфера на сам диск. Мы выбрали диск с небольшим
буфером на сегодняшний день - 16 Мб. Но есть в продаже более про­
двинутые накопители с размером буфера 128 Мб, правда, и емкость там
около 2 Тб, и цена совсем другая.
• Состояние - как ни странно, но обязательно обращайте внимание на

,
состояние (новый или б/у) покупаемого диска . На том же Яндекс.

___ ............................................................................. ...


,\stra [jщ1х (ASTRA°L1Nux·]

Маркете можно найти б/у SАS-диски по цене от 3000 рублей. Гарантии


на такие диски, как правило, или нет вообще, или символическая гаран­
тия 1-3 месяца. Как они будут работать в будущем - никому не известно.
Скорее всего, они свой ресурс уже отработали, их заменили на новые,
а старые продают. Особенно на других досках объявлений веселят объ­
явления "серверы из Европы" или "компьютерная техника из Европы".
Жесткие диски изнашиваются из-за вращения, а не из-за своего местора­
сположения.

Итак, пусть разум победил над желанием сэкономить и вы остановились на


варианте за 15000 рублей, но все-таки желание сэкономить присутствовало,
поэтому вы купили два, а не три диска, решив, что 300 Гб суммарного про­
странства будет достаточно. В принципе да, если не заниматься обработкой
видео и не хранить фотографии тысяч пользователей, то для организации
того же интернет-магазина такого пространства хватит с запасом.
Считаем стоимость сервера:

136260 + 15000 х 2 = 166260

Для обеспечения бесперебойной работы сервера нам нужно помещение с


кондиционером. Будем считать, что таковое имеется, и не будем включать
его в затраты. Стоимость резервного интернет-канала не так высока, и тоже
спишем это на прочие затраты организации, тем более что резервный канал
пригодится не только для сервера, но и для всего офиса. А вот о резервном
питании нужно поговорить отдельно.
Выбору ИБП посвящаются довольно большие и глубокие статьи, в которые
нужно вникать. У нас сейчас другая задача - просчитать примерно, сколько
часов наш сервер сможет проработать от ИБП и узнать стоимость такого
ИБП.
Стоимость серверных ИБП может доходить до 1 млн рублей. Нам, конечно
же, такие не нужны, но стоимость "бесперебойника" все равно будет доста­
точно высокой.
Мощность источника бесперебойного питания для IТ-оборудования опреде­
ляется по тому же принципу, что и для любой другой техники. Необходимо
просуммировать мощности всех подключаемых к устройству потребителей
и сверх этого заложить запас, компенсирующий возможные эксплуатацион-

18-... --... -... -.... -.... -..-...--.... -..-..-. -...--...-.... -...---.---.--...--.. -_,
1 1,111,1 2, 1 ll'pet' 11 в об. ia1,11

ные перегрузки (актуальное значение - 30%). Подбор подходящего ИБП


производится по полученному в результате вышеуказанных действий значе­
нию (с округлением в большую сторону).
В технической документации и на заводских этикетках IТ-оборудования
часто указывается максимальная мощность блока питания, а не действи­
тельное энергопотребление устройства. Рекомендуется уточнить реальную
мощность, потребляемую нагрузкой, данные можно запросить у произво­
дителя, либо произвести самостоятельные замеры с помощью электроизме­
рительной аппаратуры (мультиметры, ваттметры).
Номенклатура (мощностные линейки) большинства производителей ИБП
строится на основе полной мощности, измеряемой в вольт-амперах - ВА.
Если мощность электрической нагрузки представлена только в ваттах - Вт
(активная мощность), то перевод в вольт-амперы осуществляется делением
на коэффициент мощности - Р (может обозначаться как cosq> или PF), рав­
ный для простейшего IТ-оборудования - 0,6---0,8.
Современное серверное и сетевое оборудование может быть оснащено бло­
ком питания с коррекцией коэффициента мощности (PFC), приближающей
его значение к единице-0,99. Если уверенности.в наличии данной функции
нет, то применяется типовое значение из указанного интервала.
Обратите внимание - в характеристиках источника бесперебойного пита­
ния указываются входной и выходной коэффициенты мощности, зависящие
от электронной схемы самого устройства:

• Входной - отражает влияние ИБП на внешнюю сеть и не имеет прямого


отношения к подключаемой нагрузке;
• Выходной - необходим при определении максимальной нагрузки в ват­
тах, которую устройство способно запитать, для этого умножаем полную
мощность ИБП на выходной коэффициент мощности.

Расчет полной мощности защищаемой техники следует проводить, исполь­


зуя соответствующий ей коэффициент мощности, а не значения входного и
выходного коэффициентов ИБП (на практике cosq> прописывается в руковод­
стве по эксплуатации большинства потребителей электрической энергии)!
Полная (ВА) и активная мощность (Вт) правильно выбранного ИБП должна
быть не меньше соответствующих мощностей подключенных электропри­

•. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .. . . .. . . . . . . . .. . . . . . . . .. . . . . . . . . 11111
емников, а для гарантированно надежной работы - превышать их .
\st1·a l,i1111\

Например, при средней потребляемой мощности в 910 Вт и суммарной ем­


кости аккумуляторов 1 ООО А/ч наше оборудование сможет проработать 7
часов 11 минут. Вполне солидно - за это время можно отремонтировать
возникшие проблемы с электропитанием.
Теперь попробуем подобрать ИБП. Поскольку мы не планируем менять ба­
тареи раз в году, то лучше покупать ИБП с небольшим запасом, чтобы пла­
нировать старение батарей. Неплохим вариантом будет, например, ИБП АРС
SMC1500I-2U Smart-UPS С 1500VA (1500 ВА / 900 Вт). Цена 57 860 рублей
(ориентировочно) за именно серверный ИБП с возможностью горячей за­
мены батарей (без выключения оборудования) и возможностью установки в
стойку, действительно немного.

О '!!'�--:-.�"' f__ :._t��.....,,.i \':-.��Jl.�,.,..m,�k_!_ �,i,..,.?"::'"�''"!'\ >с ;_;;:$иv1,.!>(�W..1�,ц.:,: ,. " :i,�,'1,11;;\N"<:':w,,e, ��J;j;,,ь'l�\щis-x,-:.:. х k�, Q. ...,. i, Х
< С 1!3 1D 41 Ьr9D.ru,',t,r;�,1;,.,..,c,,·;';<J,.'i-�•J·f>">,,,-,•.v,-<.•i'm;o,�;1з.._1,u�,;"u,i.•-! � ® ;-_. О (: J.

1
111

ИБП,АРС SMC1500I-2U Smart-UPS С 1500VA

д- roo Моссw
,......�....<\ДJ
57 860.,. а,,,,......1_

"'
t.(.;im;Jr,,Q
см.о--,
(t,Л""�'"'""'�
v �ДQO.,..,,-•Ф<ilV-"-' �-,­
(:.1 0YW-,;t;,<Г.. '<"'V-f'""" s.:iv�"<>

WФl:F � t-1y.._t<.i<:.r.l>U.\i9ЮI?

1
\_;�<t,IК>OlJ)OCt:ntl...U.'IIY,I)'

UIH+·M ,:; fiop,11;,.--t,,. chl,, __,...


1),�о�

...... ,,,._.,,,.,,,,
, ...... �'!'"!

Рис. 23.2. Стоимость серверного ИБП

Получилось примерно 240000-250000 рублей - без стоимости обеспечения


охраны помещения, организации видеонаблюдения и т.д.

23.2. Стоимость содержания физического


сервера


Стоимость содержания физического сервера состоит из следующих факторов:

ID-····-············································································
(ASTRд*LINUX") 1 1,111,1 �, 1lt-pet· 11 в oii.1:11,0

• Стоимость основного и резервного интернет-канала. В стоимость


виртуального сервера уже входит один выделенный IР-адрес и канал со
скоростью 1 О Мбит/с. И будьте уверены: канал резервируемый. Никто
не захочет, чтобы серверы клиентов остались без Интернета. Вам же для
своего физического сервера придется обеспечить резервный канал само­
стоятельно и платить за оба канала.
• Стоимость электричества. Мы уже посчитали, что будем потреблять
900 Вт (при средней нагрузке). На практике эта цифра может быть выше.
Стоимость электроэнергии несложно подсчитать самостоятельно. Сюда
же посчитайте затраты на кондиционирование помещения, в котором сто­
ит сервер - ему не должно быть слишком жарко, что особенно актуально
для летнего периода.
• Стоимость охраны серверной комнаты. Охрана может осуществляться
как собственными силами (в этом случае будут расходы на зарплату. ох­
ранникам), так и путем подключения к пульту охранного предприятия. В
любом случае за физическую безопасность оборудования нужно платить.
• Амортизация оборудования. Ваше железо - это ваше железо. Гаран­
тийный срок составляет 12-24 месяца в зависимости от производителя
оборудования. Даже именитые вендоры вроде НР редко предоставляют
более длительную гарантию. По истечении гарантийного срока любые
комплектующие могут выйти из строя. Как правило, первыми выходят со
строя блоки питания, модули оперативной памяти и жесткие диски. Это
группа риска. Так что можете включить•в будущие расходы стоимость
перечисленных компонентов. Также добавьте время простоя - пока
вы купите и установите "железо", может пройти несколько часов, а то и
дней. Для кого-то - это допустимо, а кто-то может потерять сотни тысяч
рублей прибыли (например, если идет речь о популярном магазине).

Другими словами, есть постоянные затраты, которые вам придется нести


каждый месяц.

23.3. Варианты снижения стоимости владения


Стоимость владения можно снизить:

• Размещение сервера в дата-центре (colocation)- если сервер уже куплен,

•. . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .. .. . . .. . .. . . . . .. .. .. . . . .. . . . -ID
его можно разместить в дата-центре. Да, ваш сервер будет физически
\str·a J illll\ (ASTRд*LINUX"j

размещен в дата-центре. При этом вам не нужно плати�ъ ни за охрану, ни


за электричество, ни за кондиционирование. Вам не нужно заботиться о
резервном канале, об ИБП и т.д. Обо всем этом позаботится провайдер
- и о резервировании канала, и о бесперебойной работе сервера. И все
это стоит примерно от 3 до 5 тысяч рублей в месяц. Средняя стоимость
размещения 1 юнита с выделенным каналом 100 Мбит/с составляет около
3000-5000 рублей в месяц.
• Аренда виртуального сервера - если сервера пока нет, гораздо дешев­
ле арендовать виртуальный сервер. Средняя стоимость сервера средней
конфигурации (4 ядра по 2.8 ГГц, 8 Гб ОЗУ, 100 Гб накопителя) составля­
ет около 2000-3000 рублей. Когда ваш проект выйдет за эти рамки, вы мо­
жете арендовать виртуальный сервер, приближенный по конфигурации к
нашему физическому (8 ядер по 2.8 ГГц, 16 Гб ОЗУ, 260 Гб накопителя),
- он стоит в среднем 4000-5000 рублей.
• Виртуализация физического сервера - если сервер уже настроен, вы
оценили стоимость затрат на его содержание, потом посмотрели на стои­
мость colocation и поняли, что оно ненамного дешевле необходимой вам
конфигурации сервера. Решение правильное. Далее будет показано, как
виртуализировать физический сервер.

Примечание. Если разместить свой физический сервер в ДЦ, то


у вас становится гораздо меньше головной боли и из всех расхо­
дов остается стоимость colocation, стоимость ПО (если нужно) и
зарплата администратору (именно тому человеку, который будет
отвечать за здоровье железа сервера). Конечно, спустя два года
добавится и стоимость технического обслуживания. Гарантия на
узлы сервера составляет как раз 2 года, а в составе сервера
есть много механических частей, которые могут выйти из строя,
- вентиляторы, жесткие диски и т.д.

23.4. Что лучше? Муки выбора

У виртуального сервера есть свои преимущества. Одно из них - просто­


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


панель управления, и вы можете в любой момент сотворить с ним все, что

11111-----------------------------------·--------·--------·--------------------··---·--·
(ASTRд*LINUX") 1 1.111.1 .::' \ 1 lt-pl'l' 11 в oii 1а1,о

угодно. Например, модернизировать сервер, добавив еще оперативной памя­


ти или дополнительный жесткий диск всего за пару кликов мышки. Все это
не требует каких-либо знаний и навыков, и справиться с подобными задача­
ми может любой пользователь, владеющий компьютером. Также автомати­
чески создаются резервные копии сервера (или за дополнительную плату,
или бэкапы уже входят в тариф) и все, что нужно вам, - это настроить их
периодичность.
Также у вас не будет никаких волнений относительно выхода из строя ком­
понентов сервера - если даже что-то и выйдет из строя, то, скорее всего, об
этом вы не узнаете. Во-первых, это проблемы провайдера, во-вторых,
современные системы обеспечения отказоустойчивости, применяемые в да­
та-центрах, позволяют минимизировать возможные простои в работе серве­
ров в случае выхода "железа" из строя.
Отдельного внимания заслуживает возможность создания снапшотов -
моментальных сцимков сервера. Например, вы настраиваете сервер и перед
настройкой делаете снапшот. Если что-то пойдет не так, за считанные мину­
ты вы сможете вернуть все, как было. Да, хранение снапшотов - это плат­
ная функция, но она того стоит.
Клонирование сервера - это еще одна функция, которая достанется вам в
виде приятного бонуса, если вы арендуете виртуальный сервер. Обычным
пользователям она редко нужна, но пригодится интеграторам, которые про­
дают типичные серверы своим клиентам. Все, что вам нужно, - сначала
создать эталонный сервер, а затем клонировать его для каждого клиента.
Максимум, что понадобится, - изменить некоторые настройки, ориентиро­
ванные на клиента. Но это гораздо быстрее, чем создавать подобный сервер
с нуля.
Арендовать виртуальный сервер в большинстве случаев выгоднее, проще и
удобнее, чем связываться с физическим сервером. Сегодня, по сути, физи­
ческое оборудование имеет смысл приобретать, если вы сами планируете
предоставлять виртуальные серверы в аренду. Во всех остальных случаях
можно обойтись виртуальным сервером.

23.5. Виртуализация физического сервера


Любой физический Linux-cepвep (в том числе и Astra Linux) можно относи­
тельно легко подвергнуть виртуализации. Первым делом нужно снять образ
··················------------·---·-·············-···--··---··-··-----·····--·-·--CD
(ASTRд*LINUX"J

диска для VМware с физического Linux-cepвepa. Никакое дополнительное


программное обеспечение для начала виртуализации нам не нужно,
поскольку образ можно создать стандартной командой dd:

dd if = /dev/sda of = /mnt/temp/sda.img bs= BM conv = sync,noerror

Здесь мы параметром ifзадаем входящий файл - весь диск /dev/sda. В ка­


честве выходного файла (of) мы устанавливаем /mnt/share/sda.img - это и
будет наш образ диска. Параметр bs задает размер блока для ускорения про­
цедуры копирования (по умолчанию 512 байт, следовательно, данные будут
сбрасываться небольшими блоками по 512 байт, что существенно замедлит
процедуру создания образа). Последний параметр указывает на необходи­
мость копирования с игнорированием ошибок и создания точной (бит-в-бит)
копии физического диск;:�,.

Примечание. В точке монтирования /mnt/temp должно быть до­


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

После создания образа диска его нужно преобразовать в образ, подходящий


для гипервизора вашего облачного провайдера. Один из наиболее часто ис­
пользуемых гипервизоров - VMWare. Далее будет показано, как преобразо­
вать созданный с помощью команды dd образ в формат VMWare. Для этого
· мы будем использовать qemu, точнее утилиту qemu-img, входящую в состав
этого пакета эмуляции. Для проведения виртуализации физического сервера
придется установить весь пакет:

sudo a pt install qemu

Команда конвертирования выглядит так:

qemu-img convert -о compatб /mnt/temp/sda.img -0 vmdk /mnt/share/vmware.vmdk

Обратите внимание, что в /mnt/temp должно быть достаточно места для хра­
нения файла vmware.vmdk, который также будет большого размера. Создан­

..,_ •
ный vmdk-фaйл уже можно использовать. Например, вы можете указать его

- -- - - - - --- - -- - -- - - - - - - - - . -- - - - - - - - - - - - -- - - -- - - - -- - - -- - - - - - - - -- - - -- - -- .... -...... .


1ASTRA.LtNux·1 1 1,,н,1 �' llepet•11 в oii.1ai-o

при создании виртуальной машины в VMWare Workstation в качестве образа


жесткого диска и сможете загрузиться с него.

23.6. Формат OVF

Не все облачные провайдеры используют гипервизор VMware. Второй часто


используемый формат для виртуальных машин - OVF. Для конвертирова­
ния в формат ovf нам понадобится программа VMWare Workstation, которую
можно бесплатно скачать после регистрации на сайте компании. Подойдет
Windows-вepcия - это избавит вас от установки графического интерфейса
на сервере. Установите приложение и создайте новую виртуальную машину
(рис. 23.3).

1 New Virtual Machine Wizard х

Welcome to the New Vlrtual


Machine Wizard

What type of configunttion do you want?

@t!;ypical (recommended)
Create а WorkstatIOn 12.х virtual
machine in а few easy steps.

О !;ustom (advanced)
Create а virtual rmtehine with advanced
aptions, such as а SCSI controller type,
virtual dislc type and compattbllity with
older vмware products.

Рис. 23.3. Создание новой виртуальной машины в VМWare Workstation

Выберите, что вы установите операционную систему позже (рис. 23.4).


Выберите тип операционной системы - Linux и выберите ваш дистрибутив
(либо его ближайшего "родственника"), см. рис. 23.5 .


.......................... - ........···-··...................... ·········· ............
\st ,·а l ,i 1111 \ 1ASтRд'"L1Nux·1

New Virtual Machine Wizard х


Guest Operatlng Systeni lnstalatlon
А virt!IOI machtne is lik.e а physi�I computer; it needs lln ope�ting
system. Ноw will you install the guest operating system?
Iлst•II from:

Q1nsi.tler disc imoge file (iso):

@hwil_l_i_�II the operating system �


The virtшtl iмchine will Ье a-eated with а blank hьгd dtsk.

tlelp ч� l i 11e>t> 11 . =1

Рис. 13.4. Установим операционную систему позже

New Virtual Machine Wizard х


5eect а Gue5t Operatlng Syst em
Which operating system will Ье instlll�d оп this virtual mllchine?

Guest operating system


О Microsoft: �indows
@1,inux
О Nov!:11 Ne!Wore
Q:;oн,rls
QvМwareESX
QQther

�ersion

IIUl>unfU04•Ьlt ,• 1V

tlelp t < 1Ю; 1 i НО>t > Jr cancel ]

Рис. 13.5. Выбор типа операционной системы

Введите название виртуальной машины и путь к ней (рис. 23.6).

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

......... . ... .... . .... . ... .. . ...... . ............................................. .



ной машине ранее конвертированные диски), то можно создать диск мини­
мального размера.

New Virtual _Machine Wizard х


Name 11>е Virtual Nachine
What mJme vюuld you lik.e to use for this virtual machine?

Yirnml machine name: •

,l.oation:

1 E:\vm\ubunЩ
�---------------�11 В[оwsв...
The def;,ult locapon <21n Ье changed at Edft > Preferences.

Рис. 23.6. Имя и путь к виртуальной машине

New Virtual Machine Wizard х


Spedfy Disk Capaclty
How Jarge do you want this dtsk to Ье?

The virtual �Jne's �rd disk is stored as one or more files оп the host
romputer's physi-c�I disk. These file(s) start smaП and Ьесоmе larger as
you aod app!k:ations, files., and Mta to your virtшll ma<:hine.

Moximum disk �ze (GB):

Recommended size fог Ubuntu 64-blt: 20 GB

О Store virtual disk os • single file


@ Spllt virtuol disk lnto multiple flles
Splitting the disk makes lt easier to move the vi�I m�hine to anotмr
computer but m,iy reduce perfurmonce with very lorge disks.

не1р

Рис. 23. 7. Установка размера виртуального диска

'
После создания виртуальной машины выберите команду Edit virtual
machine settings (рис. 23.8).

... - ... - - .. - - - -. - -.. - - .. - - ...................... - ........................ - - ........


\st1·a J,i1111,

►�rooth,,;virtlliJl;n,!<hiii,e
j �to,; •;;1tt;;,i machшe �r(ngs j

"Devices
•мemory 1GB
'1Processors
:1 H•rd Dislc (SCSI) 1 GЗ
�CD/DVD(SATA) Autodetю
IINe<work.Adapter NAY,
l:luSBControlitr Prtsent

"'"'"'
f;SooooUro Ai.rtodetкt

"""'"""'
4iPri111er
fllJDispf,y

• De-scription

• Virttшl Machine Details


�PowtrMoff
Conflfuradorl fllr. E:\vrn\UЬuntu\UЬUntu 6'•blt.vmx
н.rdwar11coмfМ[ltibllty. W()<nl.)1ion1Ь'llrtu,i,1mкnir.e

Рис. 23.8. Виртуальная машина создана

В окне Virtual Machine Settings (рис. 23.9) нажмите кнопку Add.


Virtual Machine Settings х
�ar•.�

""""'
Specify the 11rnount ot memoty� to this vlrtual

·-
m&dline. Тheme!f!Ol'Vslzemu«Ьeamu/tipleof4M8.
QProcesson,

.'"'...
�d0isk{SCS1}
Мt,rnoryIOfttмs�mIO'l!nt: мв
,9CD{DVO (SАП,)
IJнetwortAdapter мт

...
CDusaController
fiSovlldCгrd
8""""
..
J6G8
■ мaictrnum R<:.Omrмl'lded �
4G8 (Мtmory,w,,,pping(М'f
ocw-Ьeyon,dthls!W.)
2GB 1
6В2М8
lG/1 -4

,.,.., fl R.tшnmendю mffYIOf'f


1024"19
128148
6'М8 О Guнt os r-rмnd&d mmtmum
З2М8

...
511'41
!6М8
ВМI

--·
4-) ThellirtualmochrneWilluseuptG161МЗofth!sm1rno_ryfof
gropnlcs memory. Уоо aindlonge lnrsomount in ltie Ot'Spl8y

Рис. 23.9. Параметры виртуальной машины


Нужно добавить жесткий диск. Выберите Hard Disk (рис. 23.1 О), тип интер­
фейса SCSI (рис. 23.11 ), а вот когда мастер дойдет до выбора диска, то нужно
11111----------------------------------------------------. -----------------------------·
(ASТRд*LINUX"]

выбрать Use an existing virtual disk (Использовать существующий жесткий


диск), рис. 23.12.

�-
Add Hardware Wizard х
lfardware Туре
Wмt type of h,irdware do you want to inmll?

Н<lrdware types: Expt.natlon


Add а мгd disk.
� CD/DVD Drive
� Floppy Drive
lf!!t Network Adapter
В USB Controller
(f>; Sound card
l9 Parallel Port
11 Seri�! Port
ijPrinter
[t Generic SCSI Device

1 lie)<t> 1 1 . Concel i
Рис. 23.10. Выбор добавляемого "железа"

Add Hardware Wizard х


Select а DЫ< Туре
What kind of disl< do you want to create?

Virtu,,1 disk type

OIDE
@�i! {RecommEnded)
Оsлтд
МОdе
О Ingependent
Independent disks are not мfected Ьу snapshots.
(�) .eersistent
Changes ап? :mmed!эte!y ar!d pa--manentty <.-vr!t!!:?n t; the disk,
() Nonpersistent
CГ1anges tD i t,e Фзk are d!scardecJ v,;heп уси po-,.·,rer aff or resЬ:Jre а
snapshot,

Рис. 23.11. Выбор типа интерфейса диска

Укажите путь к файлу, который был получен в результате конвертации


(vmware.vmdk), см. рис. 23.13.

'-················································································-1111
\,tra l.i1н1x (ASTRд'\1Nux·]

Add Hardware Wizard х


Select а Disk
Which disk do you want to use?

Disk

О Create а new �rtual disk


А virtual disk is composed of опе or more files оп the host file system, which
will appear as • single hard disk to the guest operating system. Vlrtual disks
can easily Ье copied or mov ed оп the same host or Ьetween hosts.

@[use an...�xisti� virtual disl<;


Choose this option to reuse • previously conf,gured disk.

О Use • 11hysical disk (for advanced users)


Choose this option to give the virtuol macblne direct access to о local hord
disk.

r < lack н t:le)rt> 11 Concel 1


Рис. 23.12. Выберите "Use ап existing virtual disk"

Add Hardware Wizard х


Select an Existing Disk
Which previously configured disk would you like to use?

Disk file
Опе disk file will Ье created for each 2 GB of virtuol disk capocity. Rle nomes for
eoch file Ьeyond the first v,ill Ье automatically generoted using the file поте
provided h-ere �s с, b�sis.

File _ v,_ a_re_.v_md_ _�----- - - -


L.I E_:\v_ _m_\vm �I [�r.�se::· j
Mode
О Jлgependent
Jлdependent disks ore not offected Ьу snapshots.
(�) fers\stent
C!·)ar1J8:S are 1rr:rnedr.ateiy апJ реrтn.апепt!у WJ'.;tte� 1D t-,e di�,k
(> Nonp�rsistent
to t.he disk ые i:iiscыded when yoi; po<,,ver off or f,?r;te:Ji·e а

f · < J!ock ) i Finish ii Со.псе! ·3

Рис. 23.13. Указываем путь к vтdk-файлу

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

1111-...................-... -................. -... -............ -...................... . •


1ASTRl'L1Nux·1 1 1,111.1 � , 11 l'JH'l' i I в нii.1 а 1,0

кнопку Remove (рис. 23.14). Закройте окно Virtual Machine Settings, нажав
кнопку ок.

Virtuai Machine Settings х


Hllrdware Options

Device Summ111ry Diskfile

-�mory 1 GB ! UЬuntu �-Ыt.'m\dlc


C]Procesrors

C.p,dty
'3New Hard Dist (... 20 GB
current SIZe: 192 кв
�CD/OVO(SATA) AIJtod@tect
Systemfrн: 2.ЗТВ
fjNetvIOn:A�pter tiAT
IJ USB Controller Present Мeximum size: 1GB

f� Sound <:ard AIJto detect


Di.Sk inf orrмtion
�Printer Present
[lioispkly Autodetect DiSk� lsnotp(ea!!ooitedforthis �rdd!Sk,
Нerd dist CDntents are stortd in multi� flles.

Disi;utJtrties

""'"""'·
"4ер th1s wtщtl mochint diSk to 4 00!

Defr�ment files and consoli4'te free


sp6Ce.

Expмld disk capьcit>f.

Соmрю disk to redalm unused Sl)IO!.

Рис. 23.14. Удаление первого диска

Включите виртуальную машину, чтобы проверить, что все корректно. Если


все хорошо, тогда выберите команду меню File, Export to OVF. В появив­
шемся окне (рис. 23.15) выберите, куда нужно сохранить ОVF-файл. Будет
запущен процесс конвертации. Дождитесь его завершения, после чего вы
получите ОVF-файл виртуальной машины .

•. .......-..-....-........-....-.......-....-...--..-....--...-........-·-..-.--..·-1111
\,t 1·а l .i1111,

0 E){port Virtual Machine to OVF х


v t> Поиск: ovf р

Упорядочить • Новая папка

Имени Даrа изменения Тил Размер


J,: Этот компьютер
• Видео Hei- .элементов, удоелетворяющ�х уоюsи.пм noиci<a.

1
� Документы
.Ja, Загрузки
� Изображения
:11>му:,ы,а
4; Объемные объекты
• Рабочий стол
� Локальный диск {С:}

л Скрыть папки СQ2!Ранить ! j Отwена

Рис. 23.15. Экспорт в OVF

Список источников использованной информации


Д.Н. Колисниченко «LINUX. Полное руководство по работе и администрированию»
Е. Вовк «Astra Linux. Руководство по национальной операционной системе и совместимым
офисным программам»
П. Н. Девянин «Безопасность операционной системы специального назначения Astra Linux
Special Edition. У чебное пособие для вузов»
П. Н. Девянин «Основы безопасности операционной системы Astra Linux Special Edition.
Управление доступом»
https://astralinux.ru/
https://astralinux.ru/products/astra-linux-common-edition/documents-astra-ce/
https://rufus.ie/
https://www.google.com/intVru/chrome
https://www.ghisler.com/
https://appdb.winehq.org
http://doc.opensuse.org/products/draft/SLES/SLES-deployment_sd_draft/cha.update.sle.htrnl
http://wiki.opennet.ru/RPM
http://tldp.org/НOWTO/LVМ-HOWTO/
https://miпors.edge.kernel.org/puЬ/linux/libs/parn/
https://www.cpanel.net
https://www.directadmin.com
https://ispmgr l .demo.ispsystem.net:1500/ispmgr
https://support.plesk.com/hc/en-us/articles/115001407434-How-to-access-Plesk-demo-online-servers
http://www.webmin.com
https://kinsta.com/Ьlog/php-benchmarks/


https://www.opennet.ru/man.shtrnl?topic=logrotate&category=8&russian=0·
http://ngrep.sourceforge.net/usage.htrnl

ID---------..---.--........------..--...------... ---. -....--.---...-. -----.---. ---..



Книги по компьютерным технологиям, медицине, радиоэлектронике

Уважаемые авторы!
Приглашаем к сотрудничеству по изданию книг по IТ-технологиям, электронике,
медицине, педагогике.
Издательство сушествует в книжном пространстве более 20 лет и имеет большой
практический опыт.
Наши преимущества:
- Большие тиражи (в сравнении с аналогичными изданиями других издательств);
- Наши книги регулярно переиздаются, а автор автоматически получает гонорар с
каждого издания;
- Индивидуальный подход в работе с каждым автором;
- Лучшее соотношение цена-качество, влияющее на объемы и сроки продаж, и, как
следствие, на регулярные переиздания;
- Ваши книги будут представлены в крупнейших книжных магазинах РФ и ближнего
зарубежья, библиотеках вузов, ссузов, а также на площадках ведущих маркеmлейсов.
Ждем Ваши предложения:
тел. (812) 412-70-26 / эл. почта: nitmail@nit.com.ru
Будем рады сотрудничеству!

Для заказа книг:


► интернет-маrазин: www.nit.com.ru / БЕЗ ПРЕДОПЛАТЫ по ОПТОВЫМ ценам
более 3000 пунктов выдачи на территории РФ, доставка 3-5 дней
более 300 пунктов выдачи в Санкт-Петербурге и Москве, доставка 1-2 дня
тел. (812) 412-70-26
эл. почта: nitmail@nit.com.ru
-------------------------------------------------------------------------------------
► маrазин издательства: г. Санкт-Петербург, пр. Обуховской обороны, д.107
метро Елизаровская, 200 м за ДК им. Крупской
ежедневно с 10.00 до 18.30
справки и заказ: тел. (812) 412-70-26

► крупнейшие книжные сети и маrазины страны


Сеть магазинов «Новый книжный» тел. (495) 937-85-81, (499) 177-22-11

► маркетплейсы ОЗОН, Wildberries, Яндекс.Маркет, Myshop и др.


Матвеев М. Д.

Astra Linux
УСТАНОВКА
НАСТРОИКА
АДМИНИСТРИРОВАНИЕ

Группа подrотовки издания:


Зав. редакцией компьютерной литературы: М. В. Финков
Редактор: Е. В. Финков
Корректор: А. В. Громова

ООО "Издательство Наука и Техника"


ОГРН 1217800116247, ИНН 7811763020 , КПП 781101001
192029, г. Санкт-Петербург, пр. Обуховской обороны, д. 107, лит. Б, пом. 1-Н
Подписано в печать 03.10.2022. Формат 70х100 1/16.
Бумага газетная. Печать офсетная. Объем 26 п.л.
Тираж 1750. Заказ 5392.

Отпечатано с готового оригинал-макета


ООО «Принт-М», 142300, М.О., г.Чехов, ул. Полиграфистов, д.1

Вам также может понравиться