Введение 15
Что нового в пятом издании? 15
Часть I. Выбор и установка дистрибутива
17
Глава 1. Выбор дистрибутива
19
1.1. Краткая история Linux 19
1.2. Какой дистрибутив лучше? 22
1.2.1. Red Hat и Mandrake/Mandriva/Mageia 23
1.2.2. Fedora 24
1.2.3. CentOS 25
1.2.4. ALT Linux 25
1.2.5. Debian 25
1.2.6. Ubuntu 26
1.2.7. Slackware 26
1.2.8. openSUSE 27
1.3. На каком дистрибутиве основать сервер? 27
Глава 2. Особенности установки
29
2.1. Системные требования 29
2.2. Первоначальная загрузка 31
2.2.1. POST и загрузчики 31
2.2.2. Ядро Linux и его параметры 31
2.3. Проверка носителей 36
2.4. Изменение таблицы разделов 36
2.4.1. Разметка диска в Fedora 22/23 37
2.4.2. Разметка диска в Ubuntu 15.10 40
2.4.3. Разметка диска в openSUSE 42
2.4.4. Шифрование файловой системы 44
2.5. Выбор устанавливаемых пакетов программ 45
2.6. Выбор графической среды 46
2.7. Установка пароля root 48
2.8. Создание учетных записей пользователей 49
2.9. Порядок установки операционных систем 49
2.10. Установка Linux по сети 49
2.10.1. Немного о загрузке и установке по сети 49
2.10.2. Подготовка загрузочного сервера 50
Установка DHCP-сервера 50
Настройка TFTP-сервера 51
Загрузка установочного образа 51
2.10.3. Настройка клиента 52
2.11. Проблемы при установке 52
2.11.1. Проблема с APIC 52
2.11.2. Ошибка: kernel panic:VFS: Unable to mount root fs 53
2.11.3. Проблемы с некоторыми LCD-мониторами 53
2.11.4. Сообщение Probing EDD и зависание системы 53
2.11.5. Установка Linux на HP Mini 2133 (проблема с ACPI) 54
2.11.6. Проблема с ACPI на Fujitsu Siemens Esprimo Mobile u9200 54
2.11.7. Писк при выключении или перезагрузке компьютера в Mandriva 54
2.11.8. Mandriva One не запускается на компьютерах с видеокартой NVIDIA 54
2.11.9. Переход в режим паники компьютера с процессором AMD64 55
2.11.10. Проблема с механизмом Enhanced Disk Device (EDD) 55
Часть II. Основные сведения о Linux
57
Глава 3. Сразу после установки...
59
3.1. Вход в систему и завершение работы 59
3.2. О графическом интерфейсе Linux 62
3.2.1. GNOME и KDE 62
3.2.2. Установка альтернативного графического интерфейса 65
3.2.3. Основные элементы интерфейса GNOME 66
3.2.4. Знакомство с Unity 69
3.3. Изменение параметров графического интерфейса 71
3.3.1. Отключение блокировки экрана 71
3.3.2. Изменение способа переключения языков ввода 76
3.3.3. Изменение фона рабочего стола 76
3.4. Отключение ненужных сервисов 79
3.5. «Аварийные» комбинации клавиш, использование клавиши 83
3.6. Практические приемы работы с консолью 85
3.6.1. Автодополнение командной строки и псевдонимы команд 85
3.6.2. Графические терминалы 86
3.6.3. Перенаправление ввода/вывода 86
Глава 4. Файловая система Linux
88
4.1. Файловые системы, поддерживаемые Linux 88
4.1.1. Выбор файловой системы 90
4.1.2. Linux и файловые системы Windows 91
4.1.3. Сменные носители 92
4.2. Особенности файловых систем Linux 92
4.2.1. Имена файлов в Linux 92
4.2.2. Файлы и устройства 92
4.2.3. Корневая файловая система и монтирование 93
4.2.4. Стандартные каталоги Linux 94
4.3. Внутреннее строение файловой системы 95
4.4. Команды для работы с файлами и каталогами 98
4.4.1. Работа с файлами 98
4.4.2. Работа с каталогами 100
4.5. Использование ссылок. Команда ln 102
4.6. Права доступа и атрибуты файла. Команды chown, chmod и chattr 103
4.6.1. Права доступа к файлам и каталогам 103
4.6.2. Смена владельца файла 105
4.6.3. Специальные права доступа (SUID и SGID) 105
4.6.4. Атрибуты файла. Запрет изменения файла 106
4.6.5. Команды поиска файлов: find, which и locate 107
4.7. Монтирование файловых систем 108
4.7.1. Команды mount и umount 108
4.7.2. Файлы устройств и монтирование 109
Жесткие диски 109
Приводы оптических дисков 111
Флешки и внешние жесткие диски 111
4.7.3. Опции монтирования файловых систем 112
4.7.4. Монтирование разделов при загрузке 113
4.7.5. Подробно о UUID и файле /etc/fstab 115
4.7.6. Монтирование флеш-дисков 118
4.8. Настройка журнала файловой системы ext3/ext4 120
4.9. Файловая система ext4 121
4.9.1. Сравнение ext3 и ext4 121
4.9.2. Совместимость с ext3 122
4.9.3. Переход на ext4 122
4.10. Использование программы fdisk для разметки диска 123
4.11. Таблица разделов GPT 126
Глава 5. Командный интерпретатор bash
128
5.1. bash: основные сведения 128
5.2. Автоматизация задач с помощью bash 129
5.3. Привет, мир! 130
5.4. Использование переменных в собственных сценариях 130
5.5. Передача параметров сценарию 131
5.6. Массивы 132
5.7. Циклы 133
5.8. Условные операторы 134
Глава 6. Пользователи и группы
136
6.1. Многопользовательская система 136
6.2. Пользователь root 137
6.2.1. Полномочия пользователя root 137
6.2.2. Временное получение полномочий root 138
Команда sudo 138
Команда su 139
Команды gksudo и kdesu 140
Проблемы с sudo в Ubuntu и Kubuntu 140
Ввод серии команд sudo 140
6.2.3. Переход к традиционной учетной записи root 141
Преимущества и недостатки sudo 141
Традиционная учетная запись root в Ubuntu 142
6.3. Создание, удаление и модификация пользователей и групп стандартными средствами 143
6.3.1. Отдельные пользователи 143
6.3.2. Группы пользователей 146
6.4. Управление пользователями и группами с помощью графических конфигураторов 146
6.4.1. Конфигураторы в Fedora и Ubuntu 146
6.4.2. Графический конфигуратор в openSUSE 150
Еще о правах root, командах su и sudo применительно к openSUSE 153
Конфигуратор Центр безопасности openSUSE 154
6.5. Квотирование 156
Глава 7. Пакеты и управление пакетами
160
7.1. Способы установки программного обеспечения в Linux 160
7.2. Репозитории пакетов 162
7.3. Программы для управления пакетами 163
7.4. Программа rpm (все Red Hat-совместимые дистрибутивы) 164
7.5. Программа urpmi 165
7.5.1. Установка пакетов 165
7.5.2. Обновление и удаление пакетов 166
7.5.3. Поиск пакета. Получение информации о пакете 166
7.6. Программа yum 166
7.6.1. Использование yum 166
7.6.2. Управление источниками пакетов 169
7.6.3. Установка пакетов через прокси-сервер 170
7.6.4. Плагины для yum 171
7.7. Менеджер пакетов dnf 171
7.8. Программы dkpg и apt-get: установка пакетов в Debian/Ubuntu 173
7.8.1. Программа dpkg 173
7.8.2. Программа apt-get 175
7.8.3. Установка RPM-пакетов в Debian/Ubuntu 176
7.8.4. Подключение репозитория Medibuntu 177
7.8.5. Графические менеджеры в Debian/Ubuntu 177
7.8.6. Волшебная команда update 179
7.9. Установка пакетов в Slackware 180
7.9.1. Управление пакетами 181
Программа установки пакетов installpkg 182
Программа удаления пакетов removepkg 183
Программа обновления пакетов upgradepkg 184
7.9.2. Нет нужного пакета: вам поможет программа rpm2tgz 184
7.9.3. Программа slackpkg: установка пакетов из Интернета 184
7.10. Установка программ в openSUSE 186
7.10.1. Менеджер пакетов zypper 186
7.10.2. Графический менеджер пакетов openSUSE 189
Часть III. Настройка сети и Интернета
191
Глава 8. Настройка локальной сети
193
8.1. Локальная сеть с использованием технологии Fast Ethernet 193
8.2. Файлы конфигурации сети в Linux 196
8.3. Об именах сетевых интерфейсов 197
8.4. Настройка сети c помощью конфигуратора nm-connection-editor 200
8.5. Конфигуратор netconfig в Slackware 203
8.6. Утилиты для диагностики соединения 204
8.7. Для фанатов, или настройка сети вручную 208
8.7.1. Конфигурационные файлы Fedora/CentOS 209
8.7.2. Конфигурационные файлы openSUSE 211
8.7.3. Конфигурационные файлы Debian/Ubuntu 212
8.7.4. Команда hostnamectl 213
8.7.5. Команда mii-tool 213
8.8. Еще несколько слов о настройке сети 214
Глава 9. Настройка ADSL-доступа к Интернету
216
9.1. Причины популярности DSL-соединений 216
9.2. Физическое подключение ADSL-модема 217
9.3. Настройка DSL-соединения в openSUSE 13.2 217
9.4. Настройка DSL-соединения в Fedora 22 218
9.5. Настройка DSL-соединения в Debian/Ubuntu 221
9.6. DSL и Slackware 225
Глава 10. Настройка соединения Wi-Fi
229
10.1. Настройка беспроводного соединения с помощью NetworkManager 229
10.2. Что делать, если сети нет в списке? 233
10.3. Точка доступа Wi-Fi на смартфоне 234
Глава 11. Объединение интернет-каналов
236
11.1. Цели и средства решения задачи 236
11.2. Простой способ со статической маршрутизацией 236
11.3. Сложный способ с гибкой настройкой отказоустойчивости 239
Часть IV. Linux дома и в офисе
243
Глава 12. Поддержка форматов мультимедиа
245
12.1. Что такое кодеки и почему их нет в Linux? 245
12.2. Настройка дистрибутива Fedora 22 245
12.3. Установка кодеков в openSUSE 246
12.4. Установка кодеков в Ubuntu 250
12.5. Домашний медиацентр на основе openELEC 251
12.5.1. Выбор дистрибутива 251
12.5.2. Установка дистрибутива 252
12.5.3. Настройка и использование 256
12.5.4. Удаленный доступ 260
12.5.5. А где же консоль? 262
12.5.6. Ложки дегтя 262
Глава 13. Графическая подсистема
264
13.1. Настройка X.Org в современных дистрибутивах 264
13.2. Конфигурационный файл X.Org 266
13.3. Синтаксис файла xorg.conf 267
13.4. Установка проприетарных драйверов NVIDIA в Fedora 21/22 273
13.5. Трехмерный рабочий стол 276
Глава 14. Офисные пакеты
278
14.1. Выбор офисного пакета 278
14.1.1. LibreOffice 278
14.1.2. Calligra Suite 280
14.1.3. Kingsoft Office 281
14.2. Кроссплатформенная совместимость 282
14.3. Вкратце об OpenOffice.org 283
Глава 15. Графический редактор GIMP
284
15.1. Начало работы 284
15.2. Обработка фотографий 286
15.2.1. Изменение размера (масштабирование) 286
15.2.2. Вращение 288
15.2.3. Кадрирование (обрезка) 289
15.2.4. Инструмент Размывание-Резкость 291
15.3. Работа в GIMP с помощью скриптов 292
15.4. Windows-версия GIMP 292
Глава 16. Лазерные диски и программы для их «прожига»
295
16.1. Что нужно для записи CD и DVD? 295
16.2. Отдельно о DVD 296
16.2.1. История создания DVD 296
16.2.2. Преимущества и недостатки DVD 297
16.2.3. Форматы и маркировка DVD-дисков 299
16.2.4. Регионы DVD-Video 301
16.2.5. Некоторые рекомендации относительно DVD 302
16.3. Программа K3b 303
16.4. Программа Brasero 312
16.5. Запись CD/DVD из консоли 315
16.6. Чтение «битых» компакт-дисков 315
Глава 17. Популярные программы для работы с Интернетом
317
17.1. Браузер Firefox 317
17.2. Браузер Chromium 320
17.3. Почтовый клиент 321
17.4. Skype 322
17.5. FTP-клиенты 325
17.6. P2P-клиенты 327
Глава 18. Виртуальная машина VirtualBox
329
18.1. Зачем нужна виртуальная машина? 329
18.2. Установка эмулятора VirtualBox 330
18.3. Создание новой виртуальной машины 331
18.4. Изменение параметров виртуальной машины 336
18.4.1. Общие параметры 336
18.4.2. Раздел Система 336
18.4.3. Виртуальные жесткие диски 336
18.4.4. А нужен ли звук? 338
18.4.5. Параметры сети 340
18.4.6. Последовательные порты 341
18.5. Запуск виртуальной машины и установка гостевой операционной системы 342
Глава 19. Эмулятор Wine: запуск Windows-игр в Linux
343
19.1. Эмуляторы, эмуляторы... 343
19.2. Установка Wine 344
19.3. Настройка Wine и прозрачного запуска Windows-приложений 346
19.4. Использование Wine 348
Часть V. Системные трюки, или Linux изнутри
355
Глава 20. Ядро
357
20.1. Процесс загрузки ядра 357
20.2. Параметры ядра 363
20.3. Компиляция ядра в дистрибутиве Ubuntu 367
20.3.1. Установка дополнительных пакетов 368
20.3.2. Загрузка исходных текстов ядра 368
20.3.3. Настройка ядра 369
20.3.4. Компиляция ядра 372
20.4. RT-ядро 377
20.5. Особенности компиляции ядра в других дистрибутивах Linux 378
Глава 21. Загрузчики Linux
379
21.1. Основные загрузчики 379
21.2. Конфигурационные файлы GRUB и GRUB2 380
21.2.1. Конфигурационный файл GRUB 380
21.2.2. Конфигурационный файл GRUB2 382
21.3. Команды установки загрузчиков 385
21.4. Установка собственного фона загрузчиков GRUB и GRUB2 385
21.5. Постоянные имена устройств 386
21.6. Восстановление загрузчика GRUB/GRUB2 387
21.7. Загрузка с ISO-образов 388
21.8. Установка пароля загрузчика 388
21.8.1. Загрузчик GRUB 389
21.8.2. Загрузчик GRUB2 391
Глава 22. Системы инициализации
393
22.1. Начальная загрузка Linux 393
22.2. Система инициализации init 395
22.2.1. Команда init 397
22.2.2. Команда service 397
22.2.3. Редакторы уровней запуска 398
22.2.4. Параллельная загрузка сервисов, или как сделать старый init быстрее 398
22.3. Система инициализации systemd 399
22.3.1. Идеальная система инициализации 399
22.3.2. systemd — основные понятия 400
22.3.3. Основные особенности systemd 401
22.3.4. Сравнение init, upstart и systemd 402
22.3.5. Немного практики 404
22.3.6. Команды системного администратора 407
22.4. Система инициализации Slackware 409
Глава 23. Процессы
412
23.1. Аварийное завершение процесса 412
23.2. Программа top: кто больше всех расходует процессорное время? 414
23.3. Изменение приоритета процесса 416
Глава 24. Псевдофайловые системы sysfs и proc
417
24.1. Виртуальная файловая система sysfs 417
24.2. Виртуальная файловая система proc 418
24.2.1. Информационные файлы 418
24.2.2. Файлы, позволяющие изменять параметры ядра 419
24.2.3. Файлы, изменяющие параметры сети 420
24.2.4. Файлы, изменяющие параметры виртуальной памяти 420
24.2.5. Файлы, позволяющие изменить параметры файловых систем 421
24.3. Сохранение произведенных изменений 421
Глава 25. Команды Linux, о которых нужно знать каждому линуксоиду
422
25.1. Общие команды 422
25.1.1. Команда arch — вывод архитектуры компьютера 422
25.1.2. Команда clear — очистка экрана 422
25.1.3. Команда date 422
25.1.4. Команда echo 423
25.1.5. Команда exit — выход из системы 423
25.1.6. Команда man — вывод справки 423
25.1.7. Команда passwd — изменение пароля 423
25.1.8. Команда startx — запуск графического интерфейса X.Org 423
25.1.9. Команда uptime — информация о работе системы 424
25.1.10. Команда users — информация о пользователях 424
25.1.11. Команды w, who и whoami — информация о пользователях 424
25.1.12. Команда xf86config — настройка графической подсистемы 425
25.2. Команды для работы с текстом 425
25.2.1. Команды diff и cmp — сравнение файлов 425
25.2.2. Команды grep и egrep — текстовый фильтр 426
25.2.3. Команды more и less — постраничный вывод 427
25.2.4. Команды head и tail — вывод начала и хвоста файла 427
25.2.5. Команда wc — подсчет слов в файле 428
25.2.6. Команды vi, nano, ee, mcedit, pico — текстовые редакторы 428
25.3. Команды для работы с Интернетом 432
25.3.1. Команда ftp — стандартный FTP-клиент 432
25.3.2. Команда lynx — текстовый браузер 433
25.3.3. Команда mail — чтение почты и отправка сообщений 433
25.4. Команды системного администратора 434
25.4.1. Команды free и df — информация о системных ресурсах 434
25.4.2. Команда md5sum — вычисление контрольного кода MD5 434
25.4.3. Команды ssh и telnet — удаленный вход в систему 434
Глава 26. Конфигурационные файлы Linux
435
26.1. Каталог /etc 435
26.2. Каталог /etc/NetworkManager 436
26.3. Каталог /etc/abrt 437
26.4. Каталог /etc/alsa 437
26.5. Каталоги /etc/audit и /etc/audisp 437
26.6. Каталог /etc/avahi — файлы конфигурации демона Avahi 437
26.7. Каталог /etc/blkid 438
26.8. Файлы конфигурации планировщиков задач 438
26.9. Каталог /etc/cups 439
26.10. Файл /etc/fonts/fonts.conf 441
26.11. Каталог /etc/gdm 441
26.12. Файлы конфигурации популярных сетевых служб 441
26.13. Каталог /etc/logrotate.d 442
26.14. Каталог /etc/mail 443
26.15. Каталог /etc/ntp 443
26.16. Каталог /etc/openldap 443
26.17. Каталог /etc/openvpn 444
26.18. Каталоги /etc/pam.d и /etc/security 444
26.19. Каталог /etc/ppp 444
26.20. Каталог /etc/rc.d 444
26.21. Каталог /etc/sane.d 444
26.22. Каталог /etc/selinux 445
26.23. Каталог /etc/skel 445
26.24. Каталог /etc/sysconfig 445
26.25. Каталог /etc/X11 446
26.26. Конфигурационные файлы yum/dnf 446
26.27. Основные конфигурационные файлы сети 446
26.28. Остальные конфигурационные файлы каталога /etc 446
Глава 27. Протоколирование системы
448
27.1. Протоколирование по-новому: journalctl 449
27.1.1. Установка времени 449
27.1.2. Просмотр и фильтрация логов 450
Текущая и предыдущие загрузки 450
Фильтр по дате 451
Фильтр по сервису 452
Фильтр по пути 452
Фильтр по процессу или пользователю 452
Просмотр сообщений ядра 452
Фильтр по уровню ошибки 452
27.1.3. Журналы в реальном времени 453
27.1.4. Централизованное хранение логов 453
27.2. Демоны syslogd и rsyslogd 453
Часть VI. Linux на сервере
457
Глава 28. Обеспечение безопасности сервера
459
28.1. Защита от «восстановления пароля root» 459
28.1.1. Параметр ядра single 459
28.1.2. Пароль загрузчика GRUB 460
28.1.3. Осторожно: LiveCD 460
28.2. Защита от перезагрузки 460
28.3. Отключение учетной записи root: нестандартный метод 463
28.4. Отключение учетной записи root средствами KDM и GDM 465
28.5. Системы управления доступом 466
Глава 29. Модули аутентификации PAM
467
29.1. Каталог /etc/pam.d 467
29.2. Дополнительные файлы конфигурации 468
29.2.1. Содержимое каталога /etc/security 468
29.2.2. Файл access.conf: ограничение доступа к системе 469
29.2.3. Файл limits.conf: ограничение на используемые системные ресурсы 470
29.2.4. Файл time.conf: регистрация только в рабочее время 471
29.3. Список PAM-модулей 472
29.4. Борьба с простыми паролями 473
Глава 30. Оптимизация системы. Автоматизация выполнения задач
475
30.1. Оптимизация подкачки 475
30.2. Создание файла подкачки 476
30.3. Настройка планировщика ввода/вывода 477
30.4. Двухканальный режим памяти 478
30.5. Автоматизация выполнения задач 478
30.5.1. Планировщик crond 478
30.5.2. Планировщик anacron 480
30.5.3. Разовое выполнение команд — демон atd 481
Глава 31. Маршрутизация. Настройка брандмауэра
482
31.1. Таблица маршрутизации ядра. Установка маршрута по умолчанию 483
31.2. Изменение таблицы маршрутизации. Команда route 486
31.3. Включение IPv4-переадресации, или превращение компьютера в шлюз 489
31.4. Настройка брандмауэра 490
31.4.1. Цепочки и правила 491
31.4.2. Брандмауэр iptables 493
31.4.3. Шлюз своими руками 496
Глава 32. Безопасный удаленный доступ. OpenSSH
502
32.1. Протокол SSH 502
32.2. Использование SSH-клиента 503
32.3. Настройка SSH-сервера 503
Глава 33. Web-сервер. Связка Apache + PHP + MySQL
508
33.1. Самый популярный Web-сервер 508
33.2. Установка Web-сервера и интерпретатора PHP. Выбор версии 508
33.3. Тестирование настроек 510
33.4. Файл конфигурации Web-сервера 513
33.4.1. Базовая настройка 513
33.4.2. Самые полезные директивы файла конфигурации 513
33.4.3. Директивы Directory, Limit, Location, Files 515
33.5. Управление запуском сервера Apache 517
33.6. Оптимизация Apache 518
33.7. Пользовательские каталоги 519
33.8. Установка сервера баз данных MySQL 520
33.8.1. Установка сервера 520
33.8.2. Изменение пароля root и добавление пользователей 520
33.8.3. Запуск и останов сервера 522
33.8.4. Программа MySQL Administrator 522
Глава 34. FTP-сервер
524
34.1. Установка FTP-сервера 524
34.2. Конфигурационный файл 525
34.3. Настройка FTP-сервера 529
34.4. Оптимизация FTP-сервера 531
34.5. Программы ftpwho и ftpcount 533
Глава 35. DNS-сервер
534
35.1. Еще раз о том, что такое DNS 534
35.2. Кэширующий сервер DNS 535
35.3. Полноценный DNS-сервер 540
35.4. Вторичный DNS-сервер 545
35.5. Обновление базы данных корневых серверов 545
Глава 36. Прокси-сервер: Squid и squidGuard
548
36.1. Зачем нужен прокси-сервер в локальной сети? 548
36.2. Базовая настройка Squid 548
36.3. Практические примеры 550
36.3.1. Управление доступом 550
36.3.2. Создание «черного» списка адресов 551
36.3.3. Отказ от баннеров 551
36.4. Управление прокси-сервером squid 551
36.5. Настройка клиентов 552
36.6. Прозрачный прокси-сервер 552
36.7. squidGuard — ваше дополнительное «оружие» 553
Глава 37. Почтовый сервер
557
37.1. Выбор почтового сервера 557
37.2. Настройка MTA Exim 558
37.3. Настройка аутентификации SMTP 560
37.4. Настройка демона SASL 561
Глава 38. Сервер виртуализации OpenVZ
562
38.1. Способы виртуализации 562
38.2. Установка OpenVZ 564
38.3. Создание и настройка виртуального контейнера 566
38.4. Запуск виртуальной машины 567
Глава 39. Сервис Samba
569
39.1. Установка Samba 569
39.2. Базовая настройка Samba 569
39.3. Настройка общих ресурсов 571
39.4. Просмотр ресурсов Windows-сети 572
39.5. Оптимизация Samba 572
39.6. Samba и Active Directory 574
Глава 40. Поддержка RAID
578
40.1. Аппаратные RAID-массивы 578
40.2. Программные RAID-массивы 581
40.3. Создание программных массивов 582
40.4. RAID-массив только для данных 583
40.5. Сбой и его имитация 584
Глава 41. Шифрование файловой системы
585
41.1. Шифрование папки 585
41.2. Храним пароль на флешке 587
Глава 42. Средства резервного копирования. Создание ISO-образа диска
589
42.1. Необходимость в «живой» резервной копии 589
42.2. Средства клонирования Linux 590
42.3. Clonezilla 591
42.4. Linux Live 600

Приложение. Описание электронного архива 601
Предметный указатель 602