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 и файловых логов.
Результат
Студент сможет безопасно подключиться к серверу, собрать диагностическую информацию, понять базовую причину сбоя и подготовить короткую сводку для команды разработки.