Академия Онлайн

Linux для администраторов

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

Для кого курс

  • Начинающие системные администраторы.
  • Backend-разработчики, которым приходится заходить на сервер.
  • DevOps-стажеры.
  • Участники CTF, которым нужны базовые Linux-навыки.

Что понадобится

  • Терминал и SSH-клиент.
  • Тестовая Linux-машина или контейнер.
  • Базовое понимание командной строки.
  • Аккуратность при работе с правами и процессами.

Неделя 1. Файлы, пользователи и права

Темы

  • Структура файловой системы Linux.
  • Абсолютные и относительные пути.
  • Скрытые файлы и конфигурационные директории.
  • Пользователи, группы и домашние каталоги.
  • Права чтения, записи и выполнения.
  • chmod, chown, umask.
  • Символические ссылки.

Практика

  • Найти конфигурацию приложения в дереве каталогов.
  • Разобрать права на файлы и директории.
  • Создать пользователя для сервиса.
  • Исправить чрезмерно широкие права на файл.

Домашнее задание

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

Неделя 2. Процессы, службы и сеть

Темы

  • Процессы и дерево процессов.
  • ps, top, htop, pgrep.
  • Переменные окружения процесса.
  • systemd и управление службами.
  • Открытые порты и локальные соединения.
  • ss, lsof, curl.
  • Типичные причины ошибки “address already in use”.

Практика

  • Определить, какой процесс занял порт.
  • Найти команду запуска приложения.
  • Посмотреть переменные окружения тестового процесса.
  • Перезапустить службу и проверить статус.

Домашнее задание

Составить диагностический лист для ситуации: веб-приложение не стартует, потому что порт уже занят.

Неделя 3. Логи и расследование сбоев

Темы

  • Где искать системные и прикладные логи.
  • journalctl и фильтрация по сервису.
  • Ротация логов.
  • Ошибки прав, портов, файлов и зависимостей.
  • Минимальная фиксация фактов.
  • Таймлайн события.
  • Передача проблемы разработчикам.

Практика

  • Найти момент падения сервиса.
  • Связать ошибку в логах с конкретной настройкой.
  • Подготовить короткую сводку инцидента.
  • Отличить причину от симптома.

Домашнее задание

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

Финальный проект

Студенты получают “сломанный” учебный сервер и должны:

  • Подключиться и собрать первичную диагностику.
  • Найти проблему с правами, портом или конфигурацией.
  • Восстановить работу сервиса.
  • Описать действия в формате runbook.

Контрольные вопросы

  • Чем отличается пользователь от группы?
  • Почему сервис лучше запускать не от root?
  • Как проверить, какой процесс слушает порт?
  • Где искать команду запуска процесса?
  • Почему важно фиксировать время событий?

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

Лабораторная 1. Аудит прав

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

Проверяется:

  • чтение прав доступа;
  • понимание владельца и группы;
  • аккуратное изменение прав;
  • объяснение риска;
  • отсутствие лишних изменений.

Лабораторная 2. Кто занял порт

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

Проверяется:

  • использование ss или lsof;
  • анализ процессов;
  • чтение логов запуска;
  • выбор свободного порта;
  • оформление инструкции для повторного запуска.

Лабораторная 3. Разбор логов

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

Проверяется:

  • фильтрация логов по времени;
  • выделение симптомов и причины;
  • работа с несколькими источниками;
  • краткость отчета;
  • корректные следующие шаги.

Критерии оценки

  • Команды подобраны под задачу, а не используются случайно.
  • Студент не меняет систему до сбора фактов.
  • Все изменения обратимы и описаны.
  • Диагностика отделяет факты от предположений.
  • Итоговый runbook можно передать другому человеку.

Типичные ошибки

  • Запускать все от root без причины.
  • Удалять логи после исправления проблемы.
  • Менять права рекурсивно слишком широко.
  • Путать listening port и исходящее соединение.
  • Делать вывод по последней строке лога без контекста.

Дополнительные темы

  • find для поиска файлов по правам и владельцам.
  • tar и безопасная передача артефактов.
  • Основы cron и таймеров systemd.
  • Проверка места на диске.
  • Различие stdout, stderr и файловых логов.

Результат

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