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

Table of Contents

Основы администрирования систем Linux

  • “UNIX в основном простая операционная система, но нужно быть гением, чтобы понять её простоту” (Денис Ритчи)
  • “Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий” (Козьма Прутков)

Программа курса

Модуль 0. Подготовка стенда в классе

  • Узнать свой номер стенда
  • Удалить виртуальные машины
  • Удалить профили putty
  • Отключить не используемые адаптеры
  • Записать логин пароль рабочей станции
  • Сообщить преподавателю IP адрес рабочей станции
  • Проверить наличие дистрибутивов и образов

Часть 1. Работа в системе Linux

Offline материалы

Видео уроки

Модуль 1. Знакомство с UNIX

Теория

История и стандарты

cat, chdir, chmod, cp, ed, find, mail, mkdir, mkfs, mount, mv, rm, rmdir, wc, who.

Подключение к UNIX

Работа в командной строке

Лабораторные работы

Входное тестирование - скачать свежий образ netinst под архитектуру amd64 с сайта

Подключение к уже установленной и настроенной системе

Принципы работы в системе

Вопросы

  1. Какие Windows программы могут быть использованы для подключения к UNIX системе по протоколу ssh?
  2. Что определяют аргументы команды/утилиты?
  3. Что определяют ключи/опции команды/утилиты?
  4. Какая команда используется для чтения UNIX документации?
  5. Как осуществляется поиск в UNIX документации?

Модуль 2. Файлы в UNIX

Теория

Лабораторные работы

Вопросы

  1. Что обозначают ключи «a», «l» в команде ls?
  2. Какой командой можно создать файл?
  3. Что означает символы “~”, “.”, “..”, “/” в имени файла?
  4. Что обозначают ключи “h/H”, “v”, “r/R” во многих командах?
  5. Какие команды используются для анализа занятого места на диске/в каталоге?
  6. Какой командой можно удалить непустой каталог?
  7. Какие команды могут быть использованы для поиска файлов?
  8. Какие команды используются для просмотра содержимого файлов?
  9. Какая программа может быть использована для копирования файлов между UNIX и Windows по протоколу ssh?
  10. Какой ключ команды tail позволяет “в онлайне” наблюдать процесс появления новых записей в файле?
  11. Какая последовательность клавиш позволяет выйти из редактора vi без сохранения изменений?
  12. Какой командой можно найти содержимое в файле по шаблону?
  13. Какой ключ команды sort позволит отсортировать данные по числовому столбцу?
  14. Что обозначают символы “^”, “$”, “.”, “|” в регулярных выражениях?
  15. Что обозначают ключи “c”, “t”, “x”, “z”, “f” в команде tar
  16. Что появится на экране в результате последовательности команд:
    mkdir dir1; cd dir1/; touch echo ls; *
  17. Каким образом можно определить тип файла в UNIX?

Модуль 3. Процессы в UNIX

Теория

Лабораторные работы

Вопросы

  1. Что обозначают ключи “a”, “x” в команде ps?
  2. Что такое STDIN, STDOUT, STDERR и какие у них номера?
  3. Что обозначают элементы “<”, “>”, “2>”, “&1”, “|” в выражениях shell
  4. Объясните, как работает конструкция
    :> file1
  5. Чем отличается команда set от команды env?
  6. Что влияет на выбор языка интерфейса в *NIX программах?
  7. Как посмотреть код завершения процесса и какое он должен иметь значение, если не было ошибок?
  8. Что обозначают элементы “&&”, “||”, “;”, “&” в выражениях shell
  9. Объясните, что происходит при использовании комбинаций “Ctrl C”, “Ctrl D”, “Ctrl Z”?
  10. Как обрабатываются сигналы “HUP”, “INT”, “TERM”, “KILL”, “TSTP” процессами?

Часть 2. Администрирование системы Linux

Видео уроки

Модуль 4. Выбор дистрибутива, установка и анализ системы

Теория

Выбор дистрибутива

Оборудование

Системное ПО

Прикладное ПО

Лабораторные работы

4.1 Загрузка актуального дистрибутива

Задание: выяснить какие бывают, способы загрузки и варианты установки дистрибутивов

4.2 Установка системы

Задание:

  1. установить систему, не менять значения по умолчанию в процессе инсталляции
  2. добавить пользователя student/password
  3. в linux установить sshd

Задание для преподавателя:

  1. установить CentOS (NetworkManager)
  2. установить Ubuntu (Netplan)

Задание на дом:

4.3 Анализ оборудования системы

Задание: найти информацию о процессоре, памяти, дисках и сетевых платах

4.4 Анализ ядра, модулей и дистрибутива

Задания:

  1. выяснить версию ядра
  2. выяснить, какие модули ядра загружены (например, для оборудования)
  3. выяснить дистрибутив (для linux)

4.5 Анализ процессов в системе

Задание: выяснить, запущен ли сервис sshd

4.6 Управление загрузчиком системы

Задание для преподавателя:

  1. восстановить забытый пароль (альтернативно можно показать ​исправление fstab в модуле про ФС, или, загрузка в однпользовательском режиме для переноса /var на другой диск)

Вопросы

  1. Что общего и в чем разница между Linux и UNIX?
  2. Что такое Source-based, Binary based, Rolling release, LTS дистрибутивы?
  3. Назовите этапы загрузки системы
  4. Какие команды позволят определить аппаратные ресурсы системы?
  5. Какие команды помогут определить версию ядра и дистрибутив системы?
  6. Для чего нужны модули ядра?
  7. Для чего служат переменные ядра?

Модуль 5. Настройка и тестирование сети

Теория

Лабораторные работы

5.0 Настроить маршрут с рабочей станции в сеть стендов

  • !!! только, если не в комплексе Радио
windows> route -p add 172.16.1.0 mask 255.255.255.0 10.10.102.250

windows> ping 172.16.1.254

5.1 Команды для настройки сети

Задание:

  1. выяснить состояние сетевых интерфейсов в системе, назначить им ip/mask/gate
  2. выяснить состояние переменных ядра отвечающих за forwarding ip пакетов и базовое значение ttl

5.2 Команды для диагностики сети

Задание: используя настроенную сетевую подсистему ядра проверить ее функционирование и подключиться к системе по протоколу ssh

5.3 Файлы конфигурации сети

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

5.4 Дополнительные утилиты для тестирования сети

Задание: посмотреть какой порт “слушает” сервис ssh

Задание: посмотреть содержимое трафика ssh командой tcpdump

Задание: проверить работу клиента DNS

Вопросы

  1. Какие команды используются для управления/диагностики сетевых параметров системы?
  2. Какие команды используются для тестирования настроек DNS?
  3. Какие команды используются для анализа открытых сетевых портов системы?
  4. Что общего между файлами /etc/resolv.conf и /etc/hosts?
  5. Какие варианты управления файлом /etc/resolv.conf могут быть?

Модуль 6. Система безопасности UNIX

Теория

Лабораторные работы

6.1 Управление пользователями в системе

Задание:

  1. выяснить, какие учетные записи присутствуют в системе
  2. какие из них можно использовать для подключения по ssh
  3. создать пользователя userX, указав его ФИО, shell и пароль

6.2 Управление правами пользователей в системе

Задание: познакомиться с утилитами umask, chmod, chown

Задание: назначить userX администратором системы, а затем, лишить его этих полномочий.

Задание: отключить текущую сессию бывшего администратора (можно в теме управления сервисами)

Вопросы

  1. В каком виде хранится пароль пользователя в системной базе данных ?
  2. Для чего предназначены команды umask, chmod, chown?
  3. Что определяет маска 640 или
    -rw-r-----

    для файла?

  4. Что обозначает бит “x” для файла и каталога
  5. Что обозначает значение атрибута EUID=0 для процесса?
  6. Что обозначает бит “s” для файла, содержащего программу?
  7. Для чего предназначены команды su и sudo?

Модуль 7. Управление ПО

Теория

Сборка и установка ПО

Обновление ПО

Лабораторные работы

7.1 Сборка и установка ПО из исходных текстов

7.2 Установка ПО из скомпилированных пакетов

7.3 Обновление ПО внутри релиза

Задание: установить необходимые обновления в системе

Вопросы

  1. Какие недостатки установки ПО “вручную” из исходных текстов?
  2. Какие команды используются для установки пакетов в Debian и CentOS?
  3. Какие команды используются для работы с репозиториями ПО Debian и CentOS?
  4. В чем опасность использования сторонних репозиториев с ПО?
  5. Какие проблемы могут возникнуть при обновлении системы до следующего релиза?

Модуль 8. Управление сервисами

Теория

Управление запуском ПО

Управление сообщениями сервисов

Лабораторные работы

8.1 Управление запуском сервисов

Задание:

  1. с помощью сигналов отключить пользователя userX
  2. включить/выключить сервис clamav из автозагрузки
  3. добавить в автозагрузку свой собственный сервис
# ssh-keygen

# ssh-copy-id userX@gate.isp.un

8.2 Регистрация действий сервисов

Задание:

  1. выяснить, куда пишутся журнальные сообщения от сервисов
  2. научиться отправлять журнальные сообщения из командной строки
# cat /etc/ssh/sshd_config
...
LogLevel...
...

Вопросы

  1. Почему вместо rc.local стали применять системы инициализации/загрузки?
  2. Что делает команда init n ?
  3. Какие команды используются для вывода списков управляемых сервисов в системах инициализации SystemV, OpenRC, Systemd, rcNG?
  4. Как включить/отключить автоматический запуск сервиса?
  5. Какова причина наличия типа сообщения в системах syslog?
  6. Что нужно сделать, что бы получать больше отладочной информации о работе сервиса?

Модуль 9. Управление файловыми системами

Теория

Лабораторные работы

9.1 Анализ конфигурации дисковой подсистемы

Задание:

  1. Проанализировать конфигурацию дисковой подсистемы
  2. Смонтировать привод CDROM

9.2 Подключение новых дисков к системе

Задание:

  1. Подключить дополнительный жесткий диск к системе
  2. Определить наличие новых дисков в системе
  3. Создать файловую систему на новом диске и примонтировать к каталогу /disk2

Задание для преподавателя:

  1. С помощью линка и Пакет RSYNC перенести на второй диск каталог /var/ или /home/ Использование загрузчика GRUB
  2. Добавить 2-й диск, изменив номер первого в системе
  3. Продемонстрировать загрузку в одно пользовательском режиме для исправления fstab
  4. Продемонстрировать использование UUID дисков
  5. В Linux LVM расширить логический том корневого раздела за счет нового диска

Вопросы

  1. Какие команды используются для монтирования/размонтирования устройств?
  2. Почему следует монтировать устройства в пустые каталоги?
  3. Что может помешать размонтированию устройств?
  4. В чем преимущество использования таблицы разделов GPT по сравнению с MBR?
  5. Какая файловая система самая лучшая?
  6. В чем преимущество использования UUID разделов вместо имен устройств?
  7. В чем преимущество использования LVM и ZFS по сравнению с классической схемой использования дисков?
  8. В каком файле конфигурации определяются монтируемые при загрузке файловые системы?

Модуль 10. Резервное копирование и восстановление

Теория

Success Story

Лабораторные работы

10.1 Знакомство с командой tar

10.2 Создание архива на удаленной системе

Задание: предоставить пользователю userX возможность архивного копирования каталога /etc/ на backup сервер по протоколу ssh

10.3 Периодическое выполнение задач архивирования

Задание для преподавателя: написать сценарий для периодического копирования каталога /etc/ на backup сервер по протоколу ssh

Вопросы

  1. Что обозначают ключи “c”, “t”, “x”, “z”, “f” в команде tar
  2. Что нужно для использования ssh подключений в сценариях выполняемых периодически?
  3. Как лучше оформить сценарии, выполняющиеся раз в минуту, час, день, неделю, месяц?
  4. Как запрограммировать одноразовый запуск сценария в определенное время?

Модуль 11. Анализ производительности и оптимизация системы

Теория

Лабораторные работы

11.1 Анализ производительности системы

# sysbench --help

# sysbench --test=cpu run

11.2 Стресс тестирование и выявление нагрузки на CPU

$ stress -c 6 -t 60s

$ top

$ ps ax -o pcpu,pid,user,command --sort pcpu

$ uptime

linux$ cat /proc/loadavg

11.3 Стресс тестирование и выявление нагрузки на RAM

$ cat /proc/meminfo

$ stress -m 2 --vm-bytes 256M -t 60s

$ ps ax -o vsize,pid,user,command --sort vsize

11.4 Стресс тестирование и выявление нагрузки на HDD

# 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

11.5 Тестирование производительности и выявление нагрузки на сеть

# cat /sys/class/net/eth0/statistics/[rt]x_bytes

# trafshow -n

linux# nethogs

linux# ss -pantu | grep 5001

11.6 Управление ограничениями ОС

11.7 Оптимизация производительности или ее тестирование на реальной задаче

Вопросы

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

Модуль 12. Использование Linux в качестве рабочей станции пользователя

Теория

Лабораторные работы

12.1 Текстовый интерфейс

Задание: настроить текстовый интерфейс пользователя

linux# apt install gpm

12.2 Графический интерфейс пользователя

!!! RAM не менее 1Gb

Задание: настроить графический интерфейс пользователя

Задание для преподавателя: за время установки GUI у слушателей продемонстрировать:

Вопросы

  1. Как запустить долговременный интерактивный процесс на удаленной системе, что бы можно было отключиться до его окончания?
  2. Что определяет язык интерфейса пользователя в UNIX?
  3. Назовите основные компоненты системы XWindow
  4. Что общего между getty, sshd и xdm?

Итоговое тестирование

основы_администрирования_систем_linux.txt · Last modified: 2023/11/27 14:47 by val