====== Администрирование операционных систем UNIX ======
===== Программа курса =====
* [[http://www.specialist.ru/course/yun1-b|Linux (CentOS/Debian). Уровень 1. Основы администрирования и безопасности]]
* [[http://www.specialist.ru/course/fbsd1-b|FreeBSD. Уровень 1. Основы администрирования и безопасности]]
===== Модуль 0. Подготовка стенда в классе. =====
* Узнать свой номер стенда
* Удалить виртуалки
* Удалить профили putty
* Отключить не используемые адаптеры
* Записать логин пароль и IP (сообщить преподавателю) рабочей станции
* Проверить наличие дистрибутивов и образов
===== Модуль 1 (4). Выбор дистрибутива, установка и анализ системы =====
==== Теория ====
=== Выбор дистрибутива ===
* [[https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%BE%D0%BB%D0%BB%D0%BC%D0%B0%D0%BD,_%D0%A0%D0%B8%D1%87%D0%B0%D1%80%D0%B4_%D0%9C%D1%8D%D1%82%D1%82%D1%8C%D1%8E|Столлман, Ричард Мэттью]]
* [[https://ru.wikipedia.org/wiki/%D0%A2%D0%BE%D1%80%D0%B2%D0%B0%D0%BB%D1%8C%D0%B4%D1%81,_%D0%9B%D0%B8%D0%BD%D1%83%D1%81|Торвальдс, Линус]]
* {{:which_linux_distribution_is_the_best.pdf|Какой дистрибутив Linux самый лучший?}}
* [[http://distrowatch.com/|DistroWatch - обзор дистрибутивов Linux]]
* [[https://ru.wikipedia.org/wiki/Debian|Debian - Википедия]]
* [[https://bits.debian.org/2018/02/debian-linuxjournal-readers-choice-award.html|Debian won Linux Journal's Readers' Choice Award for Best Linux Distribution!]]
* [[https://wiki.debian.org/LTS|Debian Long Term Support]]
* [[https://ru.wikipedia.org/wiki/CentOS|CentOS - Википедия]]
* [[https://ru.wikipedia.org/wiki/Ubuntu|Ubuntu - Википедия]]
* [[https://ru.wikipedia.org/wiki/Gentoo_Linux|Gentoo Linux - Википедия]]
* [[https://ru.wikipedia.org/wiki/FreeBSD|FreeBSD - Википедия]]
=== Оборудование ===
* [[https://ru.wikipedia.org/wiki/X86|Архитектура процессора x86 - Википедия]]
* [[https://ru.wikipedia.org/wiki/SATA|Serial ATA - Википедия]]
* [[https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D0%B0%D1%8F_%D0%BF%D0%BB%D0%B0%D1%82%D0%B0|Сетевая плата - Википедия]]
=== Системное ПО ===
* [[https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D1%80%D0%BE_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B9_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B|Ядро операционной системы - Википедия]]
* [[https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D0%B5%D0%BC%D1%8B%D0%B9_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D1%8F%D0%B4%D1%80%D0%B0|Загружаемый модуль ядра]]
* [[https://ru.wikipedia.org/wiki/%D0%94%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80|Драйвер - Википедия]]
* [[https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8_Linux|Процесс загрузки Linux - Википедия]]
* [[http://www.freebsd.org/doc/ru/books/handbook/boot.html|Процесс загрузки FreeBSD - Handbook]]
=== Прикладное ПО ===
* [[https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0|Файловая система - Википедия]]
* [[https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BC%D0%BE%D0%BD_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%29|Демон — компьютерная программа - Википедия]]
==== Лабораторные работы ====
=== 1.1 Загрузка актуального дистрибутива ===
Задание: выяснить какие бывают, способы загрузки и варианты установки дистрибутивов
* [[https://www.centos.org/|CentOS]]
* [[https://www.debian.org/index.ru.html|Debian]]
* [[https://www.gentoo.org/|Gentoo]]
* [[https://www.freebsd.org/|FreeBSD]]
=== 1.2 Установка системы ===
Задание:
- установить систему, не менять значения по умолчанию в процессе инсталляции
- добавить пользователя student/password
- в linux установить sshd
* [[Инсталляция системы Linux]]
* [[Инсталляция системы FreeBSD]]
Задание для преподавателя:
- установить CentOS
- установить Ubuntu18 (netplan)
Задание на дом:
* [[https://youtu.be/5Y67Q7um1WU|Видео урок: Корпоративный WebVPN на основе прокси-сервера Squid]]
=== 1.3 Анализ оборудования системы ===
Задание: найти информацию о процессоре, памяти, дисках и сетевых платах
* [[Анализ оборудования в Linux]]
* [[Анализ оборудования в FreeBSD]]
=== 1.4 Анализ ядра, модулей и дистрибутива ===
Задания:
- выяснить версию ядра
- выяснить, какие модули ядра загружены (например, для оборудования)
- выяснить дистрибутив (для linux)
* [[Управление ядром и модулями в Linux]]
* [[Управление ядром и модулями в FreeBSD]]
* [[Выбор дистрибутива Linux]]
=== 1.5 Анализ процессов в системе ===
Задание: выяснить, запущен ли сервис sshd
* [[Процессы UNIX#Команды мониторинга процессов]]
* Команда [[Команды фильтры#grep]]
=== 1.6 Управление загрузчиком системы ===
Задание для преподавателя:
- восстановить забытый пароль (альтернативно можно показать исправление fstab в модуле про ФС, или, загрузка в однпользовательском режиме для переноса /var на другой диск)
* [[Использование загрузчика GRUB]]
* [[Использование загрузчика LOADER]]
==== Вопросы ====
- Что общего и в чем разница между Linux и UNIX?
- Что такое Source-based, Binary based, Rolling release, LTS дистрибутивы?
- Назовите этапы загрузки системы
- Какие команды позволят определить аппаратные ресурсы системы?
- Какие команды помогут определить версию ядра и дистрибутив системы?
- Для чего нужны модули ядра?
- Для чего служат переменные ядра?
===== Модуль 2 (5). Настройка и тестирование сети =====
==== Теория ====
* [[https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_OSI|Сетевая модель OSI - Википедия]]
* [[https://ru.wikipedia.org/wiki/Ethernet|Ethernet - Википедия]]
* [[https://ru.wikipedia.org/wiki/TCP/IP|TCP/IP - Википедия]]
==== Лабораторные работы ====
См. /*
=== 2.0 Настроить маршрут с рабочей станции в сеть стендов ===
C:\>route -p add 172.16.1.0 mask 255.255.255.0 10.N.M.252
*/ примечание, если не в комплексе Радио
=== 2.1 Команды для настройки сети ===
Задание:
- выяснить состояние сетевых интерфейсов в системе, назначить им ip/mask/gate
- выяснить состояние переменных ядра отвечающих за forwarding ip пакетов и базовое значение ttl
* [[Настройка сети в Linux#Команды для настройки]] сети в Linux
* [[Настройка сети в FreeBSD#Команды для настройки]] сети в FreeBSD
=== 2.2 Команды для диагностики сети ===
Задание: используя настроенную сетевую подсистему ядра проверить ее функционирование и подключиться к системе по протоколу ssh
* [[Настройка сети в Linux#Команды для диагностики]] сети в Linux
* [[Настройка сети в FreeBSD#Команды для диагностики]] сети в FreeBSD
=== 2.3 Файлы конфигурации сети ===
Задание: отредактировать файлы конфигурации сети используя любой тестовый редактор, перезагрузить систему проверить работу сети после перезагрузки системы.
* [[Текстовые редакторы ed, sed, vi, vim#Редактор vi, vim]] ([[https://youtu.be/r8e7F46un7A|Видео урок]])
* [[Текстовый редактор nano]]
* [[Настройка сети в Linux#Файлы конфигурации]] сети в Linux
* [[Настройка сети в Linux#Файлы конфигурации Debian/Ubuntu16]]
* [[Настройка сети в Linux#Файлы конфигурации CentOS/SL/RHEL]]
* [[Настройка сети в Linux#Файлы конфигурации Ubuntu18]]
* [[Настройка сети в Linux#Файлы конфигурации Gentoo]]
* [[Настройка сети в FreeBSD#Файлы конфигурации]] сети в FreeBSD
=== 2.4 Дополнительные утилиты для тестирования сети ===
Задание: посмотреть какой порт "слушает" сервис ssh
* [[Настройка сети в Linux#Команды для диагностики]] сетевой подсистемы в Linux
Задание: посмотреть содержимое трафика ssh командой tcpdump
* [[Утилиты для тестирования сети]]
Задание: проверить работу клиента DNS
* [[Сервис DNS#Утилиты тестирования DNS]]
==== Вопросы ====
- Какие команды используются для управления/диагностики сетевых параметров системы?
- Какие команды используются для тестирования настроек DNS?
- Какие команды используются для анализа открытых сетевых портов системы?
- Что общего между файлами /etc/resolv.conf и /etc/hosts?
- Какие варианты управления файлом /etc/resolv.conf могут быть?
===== Модуль 3 (6). Система безопасности UNIX =====
==== Теория ====
* [[https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%8F_%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C|Компьютерная безопасность - Википедия]]
* [[https://ru.wikipedia.org/wiki/%D0%A3%D1%87%D1%91%D1%82%D0%BD%D0%B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C|Учётная запись - Википедия]]
* [[Система безопасности UNIX#Управление маской доступа]]
* [[http://help.ubuntu.ru/wiki/%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%B0_unix|Права доступа Unix, SUID, SGID, Sticky биты]]
==== Лабораторные работы ====
=== 3.1 Управление пользователями в системе ===
Задание:
- выяснить, какие учетные записи присутствуют в системе
- какие из них можно использовать для подключения по ssh
- создать пользователя userX, указав его ФИО, shell и пароль
* [[Управление учетными записями в Linux]]
* [[Управление учетными записями в FreeBSD]]
=== 3.2 Управление правами пользователей в системе ===
Задание: познакомиться с утилитами umask, chmod, chown
* [[Система безопасности UNIX]]
Задание: назначить userX администратором системы, а затем, лишить его этих полномочий.
* [[Управление учетными записями в Linux]]
* [[Управление учетными записями в FreeBSD]]
* Команда su (gentoo wheel)
* [[Пакет sudo]]
* [[https://youtu.be/M_aRKbMndfU|Видео урок: команды su и sudo]]
Задание: отключить текущую сессию бывшего администратора (можно в теме управления сервисами)
* [[Сигналы]]
==== Вопросы ====
- В каком виде хранится пароль пользователя в системной базе данных ?
- Для чего предназначены команды umask, chmod, chown?
- Что определяет маска 640 или -rw-r-----
для файла?
- Что обозначает бит "x" для файла и каталога
- Что обозначает значение атрибута EUID=0 для процесса?
- Что обозначает бит "s" для файла, содержащего программу?
- Для чего предназначены команды su и sudo?
===== Модуль 4 (7). Управление ПО =====
==== Теория ====
=== Сборка и установка ПО ===
* [[https://ru.wikipedia.org/wiki/%D0%98%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4|Исходный код - Википедия]]
* [[https://ru.wikipedia.org/wiki/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D0%BC%D1%8B%D0%B9_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C|Исполнимый модуль - Википедия]]
* [[https://ru.wikipedia.org/wiki/Make|Утилита make]]
* [[https://ru.wikipedia.org/wiki/Portage|Cистема управления портами в Gentoo Linux - Википедия]]
* [[https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%80%D1%82%D1%8B_FreeBSD|Cистема управления портами в FreeBSD - Википедия]]
* [[https://ru.wikipedia.org/wiki/Dpkg|Cистема управления пакетами в Debian - Википедия]]
* [[https://ru.wikipedia.org/wiki/RPM|Cистема управления пакетами в Red Hat - Википедия]]
* [[https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B9|Репозиторий - Википедия]]
* [[https://ru.wikipedia.org/wiki/APT|Advanced Packaging Tool - Википедия]]
* [[https://ru.wikipedia.org/wiki/Yellow_dog_Updater,_Modified|Yellow dog Updater, Modified - Википедия]]
=== Обновление ПО ===
* [[https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%82%D1%87|Патч - Википедия]]
* [[http://www.ubuntu.com/usn/|Ubuntu security notices]]
* [[http://www.ubuntu.com/info/release-end-of-life|Ubuntu release end of life]]
* [[https://www.freebsd.org/ru/security/advisories.html|Бюллетени безопасности FreeBSD]]
* [[https://www.freebsd.org/security/|FreeBSD Security Information]]
* [[http://www.asterisk.org/downloads/security-advisories|Asterisk Security Advisories]]
==== Лабораторные работы ====
=== 4.1 Сборка и установка ПО из исходных текстов ===
* [[Установка ПО из исходных текстов]] ([[https://youtu.be/oz3WCD-dDpc|Видео урок]])
Задание для преподавателя:
* [[Установка ПО из исходных текстов#Пример установки текстового браузера]]
=== 4.2 Базовое ПО классических UNIX систем ===
* [[Управление базовым ПО в FreeBSD]] (теоретический материал)
=== 4.3 Сборка и установка ПО из портов ===
Для FreeBSD /*
Задание для преподавателя: установить сервис asterisk с минимальным количеством опций
* 1. Установить "чистый" экземпляр FreeBSD **предыдущего релиза** и дерево портов из дистрибутива
* 2. Установить переменные окружения BATCH (или все зависимости) и DISABLE_VULNERABILITIES (если потребуется)
* 3. Установить /usr/ports/net/asterisk11 из портов с опциями GCC NCURSES GSM
*/ см. примечание
* [[Управление дополнительным ПО в FreeBSD#Установка ПО из портов]]
* Установка ПО из [[Управление ПО в Linux#Portage]]
=== 4.4 Установка ПО из скомпилированных пакетов ===
* [[https://eax.me/checkinstall/|Как создать бинарный пакет с помощью CheckInstall]]
Задание: преподавателю - текстовый браузер lynx, студентам sudo
* FreeBSD [[Управление дополнительным ПО в FreeBSD#Использование команды pkg]]
* Linux [[Управление ПО в Linux#Использование команды dpkg]]
* Linux [[Управление ПО в Linux#Использование менеджера пакетов APT]]
* Linux [[Управление ПО в Linux#Использование команды rpm]]
* Linux [[Управление ПО в Linux#Использование менеджера пакетов YUM]]
* Linux [[Управление ПО в Linux#Snap]]
=== 4.5 Обновление ПО внутри релиза ===
Задание: установить необходимые обновления в системе
* [[Управление ПО в Linux#Использование менеджера пакетов APT]]
* [[Управление ПО в Linux#Использование менеджера пакетов YUM]]
* [[Обновление системы и базового ПО в FreeBSD]] (с использованием **freebsd-update**)
* [[Обновление дополнительного ПО в FreeBSD]] (с использованием **pkg** и **вручную/portmaster/portupgrade**)
=== 4.6 Обновление системы до актуального релиза ===
* [[https://youtu.be/ZDSITYL0aVE|Видеоурок "Обновление FreeBSD до актуального релиза"]]
==== Вопросы ====
- Какие недостатки установки ПО "вручную" из исходных текстов?
- Какие достоинства и недостатки установки ПО из Gentoo portage или FreeBSD ports?
- Какие команды используются для установки пакетов в Debian, CentOS и FreeBSD?
- Какие команды используются для работы с репозиториями ПО Debian, CentOS и FreeBSD?
- В чем опасность использования сторонних репозиториев с ПО?
- Какие проблемы могут возникнуть при обновлении системы до следующего релиза?
===== Модуль 5 (8). Управление сервисами =====
==== Теория ====
=== Управление запуском ПО ===
* [[https://ru.wikipedia.org/wiki/Init|Cистема инициализации UNIX init и ее альтернативы в Linux - Википедия]]
* [[https://wiki.gentoo.org/wiki/OpenRC|OpenRC - Gentoo Wiki]]
* [[https://ru.wikipedia.org/wiki/Systemd|Systemd - Википедия]]
* [[http://www.freebsd.org/doc/ru/books/handbook/boot-init.html|Инициализация управления процессами FreeBSD - Handbook]]
=== Управление сообщениями сервисов ===
* [[https://ru.wikipedia.org/wiki/Syslog|Syslog - Википедия]]
==== Лабораторные работы ====
=== 5.1 Управление запуском сервисов ===
Задание:
- с помощью сигналов отключить пользователя userX
- включить/выключить сервис clamav из автозагрузки
- добавить в автозагрузку свой собственный сервис
* [[Сигналы]]
* [[Сервис SSH#Аутентификация с использованием ключей ssh]]
# ssh-keygen
# ssh-copy-id userX@gate.isp.un
* Linux FreeBSD [[Управление сервисами в Linux#Система загрузки rc.local]]
* [[https://youtu.be/GxVmukxVUo0|Видео урок: Программирование на sh]]
* [[Средства программирования shell#Примеры использования скриптов sh в системах загрузки]]
* Linux [[Управление сервисами в Linux#Система загрузки SysV]]
* Linux [[Управление сервисами в Linux#Система загрузки OpenRC]]
* Linux [[Управление сервисами в Linux#Система загрузки Systemd]]
* Linux [[Управление сервисами в Linux#Универсальный скрипт service]]
* FreeBSD [[Управление сервисами в FreeBSD#Система загрузки rc.NG]]
=== 5.2 Регистрация действий сервисов ===
Задание:
- выяснить, куда пишутся журнальные сообщения от сервисов
- научиться отправлять журнальные сообщения из командной строки
* [[Локализация системы|Локализация временной зоны]]
* [[Сервис NTP|Установка даты и времени]]
* [[Регистрация событий в FreeBSD]]
* [[Регистрация событий в Linux]]
# cat /etc/ssh/sshd_config
...
LogLevel...
...
==== Вопросы ====
- Почему вместо rc.local стали применять системы инициализации/загрузки?
- Что делает команда init n ?
- Какие команды используются для вывода списков управляемых сервисов в системах инициализации SystemV, OpenRC, Systemd, rcNG?
- Как включить/отключить автоматический запуск сервиса?
- Какова причина наличия типа сообщения в системах syslog?
- Что нужно сделать, что бы получать больше отладочной информации о работе сервиса?
===== Модуль 6 (9). Управление файловыми системами =====
==== Теория ====
* [[https://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0|Файловая система - Википедия]]
* [[https://habrahabr.ru/post/327572/|Сравнение структур разделов GPT и MBR]]
* [[https://ru.wikipedia.org/wiki/Unix_File_System|Unix File System - Википедия]]
* [[http://ru.wikipedia.org/wiki/Ext2|Ext2 - Википедия]]
* [[http://ru.wikipedia.org/wiki/Ext4|Ext4 - Википедия]]
* [[http://ru.wikipedia.org/wiki/ReiserFS|ReiserFS - Википедия]]
* [[https://ru.wikipedia.org/wiki/LVM|LVM - Википедия]]
* [[http://wolandblog.com/601-zfs-novyj-vzglyad-na-fajlovye-sistemy/|ZFS — новый взгляд на файловые системы]]
==== Лабораторные работы ====
=== 6.1 Анализ конфигурации дисковой подсистемы ===
Задание:
- Проанализировать конфигурацию дисковой подсистемы
- Смонтировать привод CDROM
* [[Управление файловыми системами в Linux]]
* [[Управление файловыми системами в FreeBSD]]
=== 6.2 Подключение новых дисков к системе ===
Задание:
- Подключить дополнительный жесткий диск к системе
- Определить наличие новых дисков в системе
- Создать файловую систему на новом диске и примонтировать к каталогу /disk2
* [[Управление файловыми системами в Linux#Добавление дисков в Linux]]
* [[Управление файловыми системами в FreeBSD#Добавление дисков в FreeBSD]]
Задание для преподавателя:
- С помощью линка и [[Пакет RSYNC]] перенести на второй диск каталог /var/ или /home/ [[Использование загрузчика GRUB]]
- Добавить 2-й диск, изменив номер первого в системе
- Продемонстрировать загрузку в одно пользовательском режиме для исправления fstab
- Продемонстрировать использование UUID дисков
- В Linux LVM расширить логический том корневого раздела за счет нового диска
- В FreeBSD ZFS добавить раздел RAID1
* [[Управление файловыми системами в Linux#Использование LVM]]
* [[Управление файловыми системами в FreeBSD#Использование ZFS]] ([[https://youtu.be/O4IHUvCwH-g|Видеоурок]])
==== Вопросы ====
- Какие команды используются для монтирования/размонтирования устройств?
- Почему следует монтировать устройства в пустые каталоги?
- Что может помешать размонтированию устройств?
- В чем преимущество использования таблицы разделов GPT по сравнению с MBR?
- Какая файловая система самая лучшая?
- В чем преимущество использования UUID разделов вместо имен устройств?
- В чем преимущество использования LVM и ZFS по сравнению с классической схемой использования дисков?
- В каком файле конфигурации определяются монтируемые при загрузке файловые системы?
===== Модуль 7 (10). Резервное копирование и восстановление =====
==== Теория ====
* [[https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5|Резервное копирование - Википедия]]
* [[Команда dd]]
* [[Команды dump restore]]
* [[Команда cpio]]
* [[Команда tar]]
* [[http://rdiff-backup.nongnu.org/|rdiff-backup]], [[http://ashep.org/2012/rezervnoe-kopirovanie-pri-pomoshhi-rdiff-backup/|Резервное копирование при помощи rdiff-backup]]
* [[https://habrahabr.ru/post/56796/|Спасаем данные в Linux с помощью ddrecovery]]
==== Success Story ====
* [[http://www.softjoys.ru/|СофтДжойс - Восстановление данных]]
==== Лабораторные работы ====
=== 7.1 Знакомство с командой tar ===
* [[Команда tar]]
=== 7.2 Создание архива на удаленной системе ===
Задание: предоставить пользователю userX возможность архивного копирования каталога /etc/ на backup сервер по протоколу ssh
* [[Пакет sudo]]
* [[Команда tar]]
=== 7.3 Периодическое выполнение задач архивирования ===
Задание для преподавателя: написать сценарий для периодического копирования каталога /etc/ на backup сервер по протоколу ssh
* [[Локализация системы#Локализация временной зоны]]
* [[Сервис NTP#Установка даты и времени]]
* Команда tar [[Команда tar#Сценарий архивирования каталогов с использованием ssh]]
* [[Сервис SSH#Аутентификация с использованием ключей ssh]]
* [[Планирование выполнения заданий в FreeBSD]]
* [[Планирование выполнения заданий в Linux]]
* [[Сервис atrun]]
==== Вопросы ====
- Что обозначают ключи "c", "t", "x", "z", "f" в команде tar
- Что нужно для использования ssh подключений в сценариях выполняемых периодически?
- Как лучше оформить сценарии, выполняющиеся раз в минуту, час, день, неделю, месяц?
- Как запрограммировать одноразовый запуск сценария в определенное время?
===== Модуль 8 (11). Анализ производительности и оптимизация системы =====
==== Теория ====
* [[https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8|Тестирование производительности - Википедия]]
* [[https://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BE%D1%87%D0%BD%D0%BE%D0%B5_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5|Нагрузочное тестирование - Википедия]]
* [[http://www.brendangregg.com/linuxperf.html|Linux Performance]]
* [[https://medium.com/@chrishantha/linux-performance-observability-tools-19ae2328f87f|Linux Performance Observability Tools]]
* [[https://www.freebsd.org/doc/ru/books/handbook/kernelconfig-custom-kernel.html|Зачем собирать собственное ядро?]]
* [[https://help.ubuntu.com/community/Kernel/Compile|Ubuntu Kernel/Compile]]
* [[https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel|BuildYourOwnKernel Ubuntu Wiki]]
==== Лабораторные работы ====
=== 8.1 Анализ производительности системы ===
* [[Пакет OpenSSL#Проверка производительности CPU]] в OpenSSL
# sysbench --help
# sysbench --test=cpu run
=== 8.2 Стресс тестирование и выявление нагрузки на CPU ===
* [[Утилита john]]
* [[Утилита ps]]
* [[Процессы UNIX#top]]
$ stress -c 6 -t 60s
$ top
$ ps ax -o pcpu,pid,user,command --sort pcpu
$ uptime
linux$ cat /proc/loadavg
=== 8.3 Стресс тестирование и выявление нагрузки на RAM ===
$ stress -m 2 --vm-bytes 256M -t 60s
$ ps ax -o vsize,pid,user,command --sort vsize
=== 8.4 Стресс тестирование и выявление нагрузки на HDD ===
$ stress -d 2 --hdd-bytes 2GB
$ while true; do head -c 1G myfile;done
$ while true; do grep -r `openssl rand -base64 12` /usr /var; done
linux# iotop
linux# iostat
freebsd$ top -m io -o total
=== 8.5 Тестирование производительности и выявление нагрузки на сеть ===
* [[Утилита iPerf]]
# trafshow -n
linux# nethogs
linux# ss -pan4 | grep 5001
freebsd# sockstat -4 | grep 5001
=== 8.6 Оптимизация производительности или ее тестирование на реальной задаче ===
* [[https://youtu.be/dIqaW47WXf8|Видео урок: Установка Gentoo и сборка ПО из исходных текстов]]
* [[https://youtu.be/QFoGnnB3WPg|Видео урок: Сборка ядра в linux]]
* [[Управление ядром и модулями в Linux]]
* [[https://youtu.be/wlDGgGikyWI|Видео урок: Сборка ядра в FreeBSD]]
* [[Управление ядром и модулями в FreeBSD]]
==== Вопросы ====
- Перечислите основные ресурсы системы.
- Перечислите команды, позволяющие найти критический ресурс.
===== Модуль 9 (12). Использование Linux/FreeBSD в качестве рабочей станции пользователя =====
==== Теория ====
* [[https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F|Текстовый интерфейс пользователя - Википедия]]
* [[http://val.bmstu.ru/openvideo/history_unix_write_mail_talk.html|Видео: Как пользователи использовали UNIX :)]]
* [[https://ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%BA%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F|Локализация программного обеспечения - Википедия]]
* [[https://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F|Графический интерфейс пользователя - Википедия]]
* [[https://ru.wikipedia.org/wiki/X_Window_System|X Window System - Википедия]]
==== Лабораторные работы ====
=== 9.1 Текстовый интерфейс ===
Задание: настроить текстовый интерфейс пользователя
!!! RAM не менее 1Gb
* [[Настройка командных интерпретаторов]]
* [[Локализация окружения]]
* [[Локализация консоли]]
* Многооконный текстовый интерфейс
linux# apt install gpm
freebsd# service moused onestart
* Для демонстрации, запустить процесс процесс установки GUI
* [[Пакет screen]] ([[https://youtu.be/YXSC7KeIq3E|Видео урок]])
=== 9.2 Графический интерфейс пользователя ===
Задание: настроить графический интерфейс пользователя
* [[Инсталяция системы в конфигурации Desktop]] (Установка X сервера, менеджера дисплеев, оконного менеджера и клиентских программ)
* [[Воспроизведение звука]]
* [[Воспроизведение видео]]
Задание для преподавателя: за время установки GUI у слушателей продемонстрировать:
* [[Сервис SSH|SSH вместо XDM]] на примере xbill
* xorg, xorg.conf, startx, twm на примере doom
* [[Игровые возможности]]
==== Вопросы ====
- Как запустить долговременный интерактивный процесс на удаленной системе, что бы можно было отключиться до его окончания?
- Что определяет язык интерфейса пользователя в UNIX?
- Назовите основные компоненты системы XWindow
- Что общего между getty, sshd и xdm?