User Tools

Site Tools


основы_администрирования_систем_linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
основы_администрирования_систем_linux [2020/08/17 11:07]
val создано
основы_администрирования_систем_linux [2023/11/27 14:47] (current)
val [Лабораторные работы]
Line 1: Line 1:
 ====== Основы администрирования систем Linux ====== ====== Основы администрирования систем Linux ======
  
 +  * "UNIX в основном простая операционная система,​ но нужно быть гением,​ чтобы понять её простоту"​ (Денис Ритчи)
 +  * "​Многие вещи нам непонятны не потому,​ что наши понятия слабы; но потому,​ что сии вещи не входят в круг наших понятий"​ (Козьма Прутков)
 +
 +
 +  * https://​global.gotomeeting.com/​join/​313682141
 +
 +
 +===== Программа курса =====
 +
 +  * [[https://​www.specialist.ru/​course/​yun1-b|Linux. Уровень 1. Основы администрирования систем Debian, Ubuntu, CentOS]]
 +
 +===== Модуль 0. Подготовка стенда в классе =====
 +
 +  * Узнать свой номер стенда
 +  * Удалить виртуальные машины
 +  * Удалить профили putty
 +  * Отключить не используемые адаптеры
 +  * Записать логин пароль рабочей станции
 +  * Сообщить преподавателю IP адрес рабочей станции
 +  * Проверить наличие дистрибутивов и образов
 +
 +===== Часть 1. Работа в системе Linux =====
 +
 +==== Offline материалы ====
 +
 +  * [[http://​val.bmstu.ru/​unix/​Docs/​unix1_materials.zip]]
 +
 +==== Видео уроки ====
 +
 +  * [[Видео уроки#​На старт - работа в системе Linux]]
 +
 +===== Модуль 1. Знакомство с UNIX =====
 +
 +==== Теория ====
 +
 +История и стандарты
 +
 +  * [[https://​ru.wikipedia.org/​wiki/​Bell_Labs|Лаборатории Белла]]
 +  * [[https://​ru.wikipedia.org/​wiki/​Space_Travel_(игра)|Space Travel]]
 +  * [[https://​ru.wikipedia.org/​wiki/​UNIX|UNIX]]
 +  * Список команд 1-й редакции UNIX (1971)
 +''​cat,​ chdir, chmod, cp, ed, find, mail, mkdir, mkfs, mount, mv, rm, rmdir, wc, who.''​
 +  * [[https://​ru.wikipedia.org/​wiki/​UNIX_System_V|UNIX System V]]
 +  * [[https://​ru.wikipedia.org/​wiki/​BSD|UNIX BSD]]
 +  * [[https://​ru.wikipedia.org/​wiki/​POSIX|POSIX]]
 +  * [[https://​ru.wikipedia.org/​wiki/​История_Linux|История Linux]]
 +  * [[Организация системы UNIX]]
 +  * [[https://​youtu.be/​jAhvVBpx3IM|Видео:​ Как пользователи использовали UNIX :)]]
 +
 +Подключение к UNIX
 +
 +  * [[https://​ru.wikipedia.org/​wiki/​Телетайп|Телетайп]]
 +  * [[https://​ru.wikipedia.org/​wiki/​Текстовый_терминал|Текстовый_терминал]]
 +  * [[https://​ru.wikipedia.org/​wiki/​RS-232|Интерфейс RS-232]]
 +  * [[https://​ru.wikipedia.org/​wiki/​Telnet|Telnet]]
 +  * [[https://​ru.wikipedia.org/​wiki/​SSH|Протокол SSH]]
 +  * [[https://​ru.wikipedia.org/​wiki/​X_Window_System|X Window System]]
 +  * [[https://​ru.wikipedia.org/​wiki/​XDM|X Display Manager]]
 +
 +Работа в командной строке
 +
 +  * [[https://​ru.wikipedia.org/​wiki/​Интерфейс_командной_строки|Интерфейс командной строки]]
 +  * [[https://​ru.wikipedia.org/​wiki/​Bash|Bourne again shell]]
 +
 +==== Лабораторные работы ====
 +
 +Входное тестирование - скачать свежий образ netinst под архитектуру amd64 с сайта
 +
 +  * https://​www.debian.org/​
 +
 +Подключение к уже установленной и настроенной системе
 +
 +  * [[https://​youtu.be/​7lE8Y8U4M0g|Видео урок: Принцип работы терминала UNIX]]
 +  * [[https://​www.tutorialspoint.com/​unix_terminal_online.php|Unix Terminal Online]]
 +  * [[http://​www.freeemulator.com/​online-terminal-emulator/​|ONLINE TERMINAL EMULATOR]]
 +  * getty/login (будем использовать после инсталляции новой системы) ​
 +  * putty, winscp (во 2-м модуле)
 +  * ssh из unix в unix (после развертывания собственной системы)
 +
 +Принципы работы в системе
 +
 +  * [[https://​youtu.be/​jAhvVBpx3IM|Видео урок: Как пользователи использовали UNIX :)]]
 +  * [[Структура команд UNIX]]
 +  * [[Документация UNIX]]
 +
 +==== Вопросы ====
 +
 +  - Какие Windows программы могут быть использованы для подключения к UNIX системе по протоколу ssh?
 +  - Что определяют аргументы команды/​утилиты?​
 +  - Что определяют ключи/​опции команды/​утилиты?​
 +  - Какая команда используется для чтения UNIX документации?​
 +  - Как осуществляется поиск в UNIX документации?​
 +
 +===== Модуль 2. Файлы в UNIX =====
 +
 +==== Теория ====
 +
 +  * [[https://​ru.wikipedia.org/​wiki/​Файловая_система|Файловая система]]
 +  * [[https://​ru.wikipedia.org/​wiki/​Unix_File_System|Unix File System]]
 +  * [[https://​ru.wikipedia.org/​wiki/​Ext|Linux Extended File System]]
 +  * [[https://​ru.wikipedia.org/​wiki/​Procfs|procfs]]
 +  * [[https://​ru.wikipedia.org/​wiki/​Udev|udev]]
 +  * [[Структура файловой системы]]
 +
 +==== Лабораторные работы ====
 +
 +  * [[Команды для работы с файловой системой]]
 +  * [[Команды чтения содержимого файлов]]
 +  * [[Текстовые редакторы ed, sed, vi, vim]] ([[https://​youtu.be/​r8e7F46un7A|Видео урок]])
 +  * [[Текстовый редактор nano]]
 +  * [[Настройка командных интерпретаторов]] (комбинации клавиш,​ повтор и автоподстановка команд)
 +  * [[Команды фильтры]] (выполнить работу в теме перенаправления ввода вывода)
 +  * [[Регулярные выражения]] ([[https://​youtu.be/​BhbDsKetNn8|Видео урок]])
 +  * [[Утилиты diff и patch]] ([[https://​youtu.be/​vqPaHyisBB0|Видео урок]])
 +  * [[Система контроля версий rcs]] ([[https://​youtu.be/​QyhaKdgg4LE|Видео урок]])
 +  * [[Генератор отчетов awk]] ([[https://​youtu.be/​4PkkMzB7fIM|Видео урок]])
 +  * [[Команда tar]] (выполнить работу в конце курса)
 +  * Программа WinSCP
 +  * Команды scp, wget (в лабораторных работах следующего модуля)
 +
 +==== Вопросы ====
 +
 +  - Что обозначают ключи «a», «l» в команде ls?
 +  - Какой командой можно создать файл?
 +  - Что означает символы "​~",​ "​.",​ "​..",​ "/"​ в имени файла?
 +  - Что обозначают ключи "​h/​H",​ "​v",​ "​r/​R"​ во многих командах?​
 +  - Какие команды используются для анализа занятого места на диске/​в каталоге?​
 +  - Какой командой можно удалить непустой каталог?​
 +  - Какие команды могут быть использованы для поиска файлов?​
 +  - Какие команды используются для просмотра содержимого файлов?​
 +  - Какая программа может быть использована для копирования файлов между UNIX и Windows по протоколу ssh?
 +  - Какой ключ команды tail позволяет "в онлайне"​ наблюдать процесс появления новых записей в файле?
 +  - Какая последовательность клавиш позволяет выйти из редактора vi без сохранения изменений?​
 +  - Какой командой можно найти содержимое в файле по шаблону?​
 +  - Какой ключ команды sort позволит отсортировать данные по числовому столбцу?​
 +  - Что обозначают символы "​^",​ "​$",​ "​.",​ "​|"​ в регулярных выражениях?​
 +  - Что обозначают ключи "​c",​ "​t",​ "​x",​ "​z",​ "​f"​ в команде tar
 +  - Что появится на экране в результате последовательности команд:​ <​code>​mkdir dir1; cd dir1/; touch echo ls; *</​code>​
 +  - Каким образом можно определить тип файла в UNIX?
 +
 +===== Модуль 3. Процессы в UNIX =====
 +
 +==== Теория ====
 +
 +  * [[Процессы UNIX]]
 +
 +==== Лабораторные работы ====
 +
 +  * [[Перенаправление потоков ввода/​вывода]]
 +  * [[Переменные окружения#​Управление процессами через переменные окружения]]
 +  * [[Настройка командных интерпретаторов]] (управление приглашением ко вводу PS1)
 +  * [[Коды завершения]]
 +  * [[Сигналы]]
 +  * Управление заданиями bg, fg, jobs (демонстрирует преподаватель)
 +
 +==== Вопросы ====
 +
 +  - Что обозначают ключи "​a",​ "​x"​ в команде ps?
 +  - Что такое STDIN, STDOUT, STDERR и какие у них номера?​
 +  - Что обозначают элементы "<",​ ">",​ "​2>",​ "&​1",​ "​|"​ в выражениях shell
 +  - Объясните,​ как работает конструкция <​code>:>​ file1</​code>​
 +  - Чем отличается команда set от команды env?
 +  - Что влияет на выбор языка интерфейса в *NIX программах?​
 +  - Как посмотреть код завершения процесса и какое он должен иметь значение,​ если не было ошибок?​
 +  - Что обозначают элементы "&&",​ "​||",​ ";",​ "&"​ в выражениях shell
 +  - Объясните,​ что происходит при использовании комбинаций "Ctrl C", "Ctrl D", "Ctrl Z"?
 +  - Как обрабатываются сигналы "​HUP",​ "​INT",​ "​TERM",​ "​KILL",​ "​TSTP"​ процессами?​
 +
 +===== Часть 2. Администрирование системы Linux =====
 +
 +==== Видео уроки ====
 +
 +  * [[Видео уроки#​Администрирование системы Linux]]
 +
 +===== Модуль 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/​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 - Википедия]]
 +
 +=== Прикладное ПО ===
 +
 +  * [[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|Демон — компьютерная программа - Википедия]]
 +
 +==== Лабораторные работы ====
 +
 +=== 4.1 Загрузка актуального дистрибутива ===
 +
 +Задание:​ выяснить какие бывают,​ способы загрузки и варианты установки дистрибутивов
 +
 +  * [[https://​debian.org/​|Debian]]
 +  * [[https://​ubuntu.com/​|Ubuntu]]
 +  * [[https://​centos.org/​|CentOS]]
 +
 +=== 4.2 Установка системы ===
 +
 +Задание: ​
 +
 +  - установить систему,​ не менять значения по умолчанию в процессе инсталляции
 +  - добавить пользователя student/​password
 +  - в linux установить sshd
 +
 +  * [[Инсталляция системы Linux]]
 +
 +Задание для преподавателя:​
 +
 +  - установить CentOS (NetworkManager)
 +  - установить Ubuntu (Netplan)
 + 
 +Задание на дом:
 +
 +  * [[https://​youtu.be/​5Y67Q7um1WU|Видео урок: Корпоративный WebVPN на основе прокси-сервера Squid]]
 +
 +=== 4.3 Анализ оборудования системы ===
 +
 +Задание:​ найти информацию о процессоре,​ памяти,​ дисках и сетевых платах
 +
 +  * [[Анализ оборудования в Linux]]
 +
 +=== 4.4 Анализ ядра, модулей и дистрибутива ===
 +
 +Задания:​
 + 
 +  - выяснить версию ядра
 +  - выяснить,​ какие модули ядра загружены (например,​ для оборудования)
 +  - выяснить дистрибутив (для linux)
 +
 +  * [[Управление ядром и модулями в Linux]]
 +  * [[Выбор дистрибутива Linux]]
 +
 +=== 4.5 Анализ процессов в системе ===
 +
 +Задание:​ выяснить,​ запущен ли сервис sshd
 +
 +  * [[Процессы UNIX#​Команды мониторинга процессов]]
 +  * Команда [[Команды фильтры#​grep]]
 +
 +=== 4.6 Управление загрузчиком системы ===
 +
 +Задание для преподавателя: ​
 +
 +  - восстановить забытый пароль (альтернативно можно показать ​исправление fstab в модуле про ФС, или, загрузка в однпользовательском режиме для переноса /var на другой диск)
 +
 +  * [[Использование загрузчика GRUB]]
 +  * [[Использование загрузчика LOADER]]
 +
 +==== Вопросы ====
 +
 +  - Что общего и в чем разница между Linux и UNIX?
 +  - Что такое Source-based,​ Binary based, Rolling release, LTS дистрибутивы?​
 +  - Назовите этапы загрузки системы
 +  - Какие команды позволят определить аппаратные ресурсы системы?​
 +  - Какие команды помогут определить версию ядра и дистрибутив системы?​
 +  - Для чего нужны модули ядра?
 +  - Для чего служат переменные ядра?
 +
 +===== Модуль 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 - Википедия]]
 +  * [[https://​netplan.io/​|Netplan]]
 +  * [[https://​ru.wikipedia.org/​wiki/​NetworkManager|NetworkManager]]
 +
 +==== Лабораторные работы ====
 +
 +=== 5.0 Настроить маршрут с рабочей станции в сеть стендов ===
 +
 +  * !!! только,​ если не в комплексе Радио
 +
 +<​code>​
 +windows> route -p add 172.16.1.0 mask 255.255.255.0 10.10.102.250
 +
 +windows> ping 172.16.1.254
 +</​code>​
 +
 +
 +=== 5.1 Команды для настройки сети ===
 +
 +Задание: ​
 +
 +  - выяснить состояние сетевых интерфейсов в системе,​ назначить им ip/​mask/​gate
 +  - выяснить состояние переменных ядра отвечающих за forwarding ip пакетов и базовое значение ttl
 +
 +  * [[Настройка сети в Linux#​Команды для настройки]] сети в Linux
 +
 +=== 5.2 Команды для диагностики сети ===
 +
 +Задание:​ используя настроенную сетевую подсистему ядра проверить ее функционирование и подключиться к системе по протоколу ssh
 +
 +  * [[Настройка сети в Linux#​Команды для диагностики]] сети в Linux
 +
 +=== 5.3 Файлы конфигурации сети ===
 +
 +Задание:​ отредактировать файлы конфигурации сети используя любой тестовый редактор,​ перезагрузить систему проверить работу сети после перезагрузки системы.
 +
 +  * [[Текстовые редакторы ed, sed, vi, vim#​Редактор vi, vim]] ([[https://​youtu.be/​r8e7F46un7A|Видео урок]])
 +  * [[Текстовый редактор nano]]
 +  * [[Настройка сети в Linux#​Файлы конфигурации]] сети в Linux
 +  * [[Настройка сети в Linux#​Файлы конфигурации Debian/​Ubuntu16]]
 +  * [[Настройка сети в Linux#​Файлы конфигурации CentOS/​SL/​RHEL]]
 +  * [[Настройка сети в Linux#​Файлы конфигурации Ubuntu18]]
 +
 +=== 5.4 Дополнительные утилиты для тестирования сети ===
 +
 +Задание:​ посмотреть какой порт "​слушает"​ сервис ssh
 +
 +  * [[Настройка сети в Linux#​Команды для диагностики]] сетевой подсистемы в Linux
 +
 +Задание:​ посмотреть содержимое трафика ssh командой tcpdump
 +
 +  * [[Утилиты для тестирования сети]]
 +
 +Задание:​ проверить работу клиента DNS
 +
 +  * [[Сервис DNS#​Утилиты тестирования DNS]]
 +
 +==== Вопросы ====
 +
 +  - Какие команды используются для управления/​диагностики сетевых параметров системы?​
 +  - Какие команды используются для тестирования настроек DNS?
 +  - Какие команды используются для анализа открытых сетевых портов системы?​
 +  - Что общего между файлами /​etc/​resolv.conf и /etc/hosts?
 +  - Какие варианты управления файлом /​etc/​resolv.conf могут быть?
 +
 +
 +===== Модуль 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 биты]]
 +
 +==== Лабораторные работы ====
 +
 +=== 6.1 Управление пользователями в системе ===
 +
 +Задание: ​
 +
 +  - выяснить,​ какие учетные записи присутствуют в системе ​
 +  - какие из них можно использовать для подключения по ssh
 +  - создать пользователя userX, указав его ФИО, shell и пароль
 +
 +  * [[Управление учетными записями в Linux]]
 +
 +=== 6.2 Управление правами пользователей в системе ===
 +
 +Задание:​ познакомиться с утилитами umask, chmod, chown
 +
 +  * [[Система безопасности UNIX]]
 +
 +Задание:​ назначить userX администратором системы,​ а затем, лишить его этих полномочий.
 +
 +  * [[Управление учетными записями в Linux]]
 +  * Команда su (gentoo wheel)
 +  * [[Пакет sudo]]
 +  * [[https://​youtu.be/​M_aRKbMndfU|Видео урок: команды su и sudo]]
 +
 +Задание:​ отключить текущую сессию бывшего администратора (можно в теме управления сервисами)
 +
 +  * [[Сигналы]]
 +==== Вопросы ====
 +
 +  - В каком виде хранится пароль пользователя в системной базе данных ?
 +  - Для чего предназначены команды umask, chmod, chown?
 +  - Что определяет маска 640 или <​code>​-rw-r-----</​code>​ для файла?
 +  - Что обозначает бит "​x"​ для файла и каталога
 +  - Что обозначает значение атрибута EUID=0 для процесса?​
 +  - Что обозначает бит "​s"​ для файла, содержащего программу?​
 +  - Для чего предназначены команды su и sudo?
 +
 +===== Модуль 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/​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]]
 +
 +  * [[http://​www.asterisk.org/​downloads/​security-advisories|Asterisk Security Advisories]]
 +
 +==== Лабораторные работы ====
 +
 +=== 7.1 Сборка и установка ПО из исходных текстов ===
 +
 +  * [[Установка ПО из исходных текстов]] ([[https://​youtu.be/​oz3WCD-dDpc|Видео урок]])
 +
 +Задание для преподавателя: ​
 +
 +  * [[Установка ПО из исходных текстов#​Пример установки текстового браузера]]
 +
 +=== 7.2 Установка ПО из скомпилированных пакетов ===
 +
 +  * [[https://​eax.me/​checkinstall/​|Как создать бинарный пакет с помощью CheckInstall]]
 +
 +  * Linux [[Управление ПО в Linux#​Использование команды dpkg]]
 +  * Linux [[Управление ПО в Linux#​Использование менеджера пакетов APT]]
 +
 +  * Linux [[Управление ПО в Linux#​Использование команды rpm]]
 +  * Linux [[Управление ПО в Linux#​Использование менеджера пакетов YUM]]
 +
 +  * Linux [[Управление ПО в Linux#​Snap]]
 +
 +=== 7.3 Обновление ПО внутри релиза ===
 +
 +Задание:​ установить необходимые обновления в системе
 +
 +  * [[Управление ПО в Linux#​Использование менеджера пакетов APT]]
 +  * [[Управление ПО в Linux#​Использование менеджера пакетов YUM]]
 +
 +==== Вопросы ====
 +
 +  - Какие недостатки установки ПО "​вручную"​ из исходных текстов?​
 +  - Какие команды используются для установки пакетов в Debian и CentOS?
 +  - Какие команды используются для работы с репозиториями ПО Debian и CentOS?
 +  - В чем опасность использования сторонних репозиториев с ПО?
 +  - Какие проблемы могут возникнуть при обновлении системы до следующего релиза?​
 +
 +===== Модуль 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 - Википедия]]
 +
 +=== Управление сообщениями сервисов ===
 +
 +  * [[https://​ru.wikipedia.org/​wiki/​Syslog|Syslog - Википедия]]
 +==== Лабораторные работы ====
 +
 +=== 8.1 Управление запуском сервисов ===
 +
 +Задание: ​
 +
 +  - с помощью сигналов отключить пользователя userX
 +  - включить/​выключить сервис clamav из автозагрузки
 +  - добавить в автозагрузку свой собственный сервис
 +
 +  * [[Сигналы]]
 +
 +  * [[Сервис SSH#​Аутентификация с использованием ключей ssh]]
 +<​code>​
 +# ssh-keygen
 +
 +# ssh-copy-id userX@gate.isp.un
 +</​code>​
 +
 +  * Linux [[Управление сервисами в Linux#​Система загрузки rc.local]]
 +
 +  * [[https://​youtu.be/​GxVmukxVUo0|Видео урок: Программирование на sh]]
 +  * [[Средства программирования shell#​Примеры использования скриптов sh в системах загрузки]]
 +  * Linux [[Управление сервисами в Linux#​Система загрузки SysV]]
 +
 +  * Linux [[Управление сервисами в Linux#​Система загрузки Systemd]]
 +
 +  * Linux [[Управление сервисами в Linux#​Универсальный скрипт service]]
 +
 +=== 8.2 Регистрация действий сервисов ===
 +
 +Задание:​
 +  - выяснить,​ куда пишутся журнальные сообщения от сервисов
 +  - научиться отправлять журнальные сообщения из командной строки
 +
 +  * [[Локализация системы|Локализация временной зоны]]
 +  * [[Сервис NTP|Установка даты и времени]]
 +  * [[Регистрация событий в Linux]]
 +
 +<​code>​
 +# cat /​etc/​ssh/​sshd_config
 +...
 +LogLevel...
 +...
 +</​code>​
 +==== Вопросы ====
 +
 +  - Почему вместо rc.local стали применять системы инициализации/​загрузки?​
 +  - Что делает команда init n ?
 +  - Какие команды используются для вывода списков управляемых сервисов в системах инициализации SystemV, OpenRC, Systemd, rcNG?
 +  - Как включить/​отключить автоматический запуск сервиса?​
 +  - Какова причина наличия типа сообщения в системах syslog?
 +  - Что нужно сделать,​ что бы получать больше отладочной информации о работе сервиса?​
 +
 +===== Модуль 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 — новый взгляд на файловые системы]]
 +==== Лабораторные работы ====
 +
 +=== 9.1 Анализ конфигурации дисковой подсистемы ===
 +
 +Задание:​
 +  - Проанализировать конфигурацию дисковой подсистемы
 +  - Смонтировать привод CDROM
 +
 +  * [[Управление файловыми системами в Linux]]
 +
 +=== 9.2 Подключение новых дисков к системе ===
 +
 +Задание:​
 +  - Подключить дополнительный жесткий диск к системе
 +  - Определить наличие новых дисков в системе
 +  - Создать файловую систему на новом диске и примонтировать к каталогу /disk2
 +
 +  * [[Управление файловыми системами в Linux#​Добавление дисков в Linux]]
 +
 +Задание для преподавателя:​
 +
 +  - С помощью линка и [[Пакет RSYNC]] перенести на второй диск каталог /var/ или /home/ [[Использование загрузчика GRUB]]
 +  - Добавить 2-й диск, изменив номер первого в системе
 +  - Продемонстрировать загрузку в одно пользовательском режиме для исправления fstab
 +  - Продемонстрировать использование UUID дисков
 +  - В Linux LVM расширить логический том корневого раздела за счет нового диска
 +
 +  * [[Управление файловыми системами в Linux#​Использование LVM]]
 +
 +==== Вопросы ====
 +
 +  - Какие команды используются для монтирования/​размонтирования устройств?​
 +  - Почему следует монтировать устройства в пустые каталоги?​
 +  - Что может помешать размонтированию устройств?​
 +  - В чем преимущество использования таблицы разделов GPT по сравнению с MBR?
 +  - Какая файловая система самая лучшая?​
 +  - В чем преимущество использования UUID разделов вместо имен устройств?​
 +  - В чем преимущество использования LVM и ZFS по сравнению с классической схемой использования дисков?​
 +  - В каком файле конфигурации определяются монтируемые при загрузке файловые системы?​
 +
 +===== Модуль 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/​|СофтДжойс - Восстановление данных]]
 +
 +==== Лабораторные работы ====
 +
 +=== 10.1 Знакомство с командой tar ===
 +
 +  * [[Команда tar]]
 +
 +=== 10.2 Создание архива на удаленной системе ===
 +
 +Задание:​ предоставить пользователю userX возможность архивного копирования каталога /etc/ на backup сервер по протоколу ssh
 +
 +  * [[Пакет sudo]]
 +  * [[Команда tar]]
 +
 +=== 10.3 Периодическое выполнение задач архивирования ===
 +
 +Задание для преподавателя:​ написать сценарий для периодического копирования каталога /etc/ на backup сервер по протоколу ssh
 +
 +  * [[Локализация системы#​Локализация временной зоны]]
 +  * [[Сервис NTP#​Установка даты и времени]]
 +  * Команда tar [[Команда tar#​Сценарий архивирования каталогов с использованием ssh]]
 +  * [[Сервис SSH#​Аутентификация с использованием ключей ssh]]
 +  * [[Планирование выполнения заданий в Linux]]
 +  * [[Сервис atrun]]
 +
 +==== Вопросы ====
 +
 +  - Что обозначают ключи "​c",​ "​t",​ "​x",​ "​z",​ "​f"​ в команде tar
 +  - Что нужно для использования ssh подключений в сценариях выполняемых периодически?​
 +  - Как лучше оформить сценарии,​ выполняющиеся раз в минуту,​ час, день, неделю,​ месяц?
 +  - Как запрограммировать одноразовый запуск сценария в определенное время? ​
 +
 +===== Модуль 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://​help.ubuntu.com/​community/​Kernel/​Compile|Ubuntu Kernel/​Compile]]
 +  * [[https://​wiki.ubuntu.com/​Kernel/​BuildYourOwnKernel|BuildYourOwnKernel Ubuntu Wiki]]
 +==== Лабораторные работы ====
 +
 +=== 11.1 Анализ производительности системы ===
 +
 +  * [[Пакет OpenSSL#​Проверка производительности CPU]] в OpenSSL
 +
 +<​code>​
 +# sysbench --help
 +
 +# sysbench --test=cpu run
 +</​code>​
 +
 +=== 11.2 Стресс тестирование и выявление нагрузки на CPU ===
 +
 +  * [[Утилита john]]
 +  * [[Утилита ps]]
 +  * [[Процессы UNIX#top]]
 +
 +<​code>​
 +$ stress -c 6 -t 60s
 +
 +$ top
 +
 +$ ps ax -o pcpu,​pid,​user,​command --sort pcpu
 +
 +$ uptime
 +
 +linux$ cat /​proc/​loadavg
 +</​code>​
 +
 +=== 11.3 Стресс тестирование и выявление нагрузки на RAM ===
 +<​code>​
 +$ cat /​proc/​meminfo
 +
 +$ stress -m 2 --vm-bytes 256M -t 60s
 +
 +$ ps ax -o vsize,​pid,​user,​command --sort vsize
 +</​code>​
 +
 +=== 11.4 Стресс тестирование и выявление нагрузки на HDD ===
 +
 +  * [[https://​www.kernel.org/​doc/​Documentation/​block/​stat.txt]]
 +
 +<​code>​
 +# cat /​sys/​block/​sda/​stat
 +
 +$ stress -d 2 --hdd-bytes 2GB
 +
 +$ while true; do head -c 1G </​dev/​urandom >​myfile;​done
 +
 +$ while true; do grep -r `openssl rand -base64 12` /usr /var; done
 +
 +linux# iotop
 +
 +linux# iostat
 +</​code>​
 +
 +
 +=== 11.5 Тестирование производительности и выявление нагрузки на сеть ===
 +
 +  * [[Утилита iPerf]]
 +
 +<​code>​
 +# cat /​sys/​class/​net/​eth0/​statistics/​[rt]x_bytes
 +
 +# trafshow -n
 +
 +linux# nethogs
 +
 +linux# ss -pantu | grep 5001
 +</​code>​
 +
 +=== 11.6 Управление ограничениями ОС ===
 +
 +  * [[Управление сервисами в Linux#​Настройка параметров запуска в Systemd]]
 +
 +=== 11.7 Оптимизация производительности или ее тестирование на реальной задаче ===
 +
 +  * [[https://​youtu.be/​dIqaW47WXf8|Видео урок: Установка Gentoo и сборка ПО из исходных текстов]]
 +  * [[https://​youtu.be/​QFoGnnB3WPg|Видео урок: Сборка ядра в linux]]
 +  * [[Управление ядром и модулями в Linux]]
 +
 +==== Вопросы ====
 +
 +  - Перечислите основные ресурсы системы.
 +  - Перечислите команды,​ позволяющие найти критический ресурс.
 +
 +===== Модуль 12. Использование Linux в качестве рабочей станции пользователя =====
 +
 +==== Теория ====
 +
 +  * [[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 - Википедия]]
 +
 +==== Лабораторные работы ====
 +
 +=== 12.1 Текстовый интерфейс ===
 +
 +Задание:​ настроить текстовый интерфейс пользователя
 +
 +  * [[Настройка командных интерпретаторов]]
 +  * [[Локализация окружения]]
 +  * [[Локализация консоли]]
 +  * Многооконный текстовый интерфейс
 +<​code>​
 +linux# apt install gpm
 +</​code>​
 +
 +  * Для демонстрации,​ запустить процесс процесс установки GUI
 +  * [[Пакет screen]] ([[https://​youtu.be/​YXSC7KeIq3E|Видео урок]])
 +
 +=== 12.2 Графический интерфейс пользователя ===
 +
 +!!! RAM не менее 1Gb
 +
 +Задание:​ настроить графический интерфейс пользователя
 +
 +  * [[Инсталяция системы в конфигурации Desktop]] (Установка X сервера,​ менеджера дисплеев,​ оконного менеджера и клиентских программ)
 +  * [[Сервис CUPS]]
 +  * [[Воспроизведение звука]]
 +  * [[Воспроизведение видео]]
 +
 +Задание для преподавателя:​ за время установки GUI у слушателей продемонстрировать:​
 +
 +  * [[Сервис SSH|SSH вместо XDM]] на примере xbill
 +  * xorg, xorg.conf, startx, twm на примере doom
 +  * [[Сервис xRDP]]
 +  * [[Игровые возможности]]
 +
 +==== Вопросы ====
 +
 +  - Как запустить долговременный интерактивный процесс на удаленной системе,​ что бы можно было отключиться до его окончания?​
 +  - Что определяет язык интерфейса пользователя в UNIX?
 +  - Назовите основные компоненты системы XWindow
 +  - Что общего между getty, sshd и xdm?
 +
 +===== Итоговое тестирование =====
 +
 +  * [[https://​github.com/​ostrovok-team/​code-challenge/​tree/​master/​devops|DevOps Engineer Challenge]]
основы_администрирования_систем_linux.1597651638.txt.gz · Last modified: 2020/08/17 11:07 by val