Системное администрирование Red Hat Enterprise Linux: Подготовка к сертификации RHCSA (EX200)

Комплексный курс по администрированию RHEL, охватывающий все компетенции экзамена EX200. Студенты пройдут путь от уверенной работы в CLI до автоматизации задач с помощью Ansible и управления контейнеризированными средами.

1. Инструментарий командной строки и иерархия файловой системы RHEL

Инструментарий командной строки и иерархия файловой системы RHEL

Представьте, что вы вошли в серверную комнату, где сотни серверов работают без мониторов и клавиатур. Единственный способ взаимодействия с ними — узкое текстовое окно терминала. В мире Red Hat Enterprise Linux (RHEL) командная строка — это не просто альтернатива графическому интерфейсу, это прецизионный скальпель хирурга. Ошибка в одном символе при работе с путями файловой системы может привести к остановке критически важного банковского сервиса, а глубокое понимание того, где именно лежат конфигурационные файлы, отделяет системного администратора от обычного пользователя. Экзамен RHCSA проверяет не вашу способность запоминать команды, а навык эффективного выживания и управления системой в условиях, когда «мышка» не предусмотрена архитектурой.

Философия Bash и эффективность командного интерфейса

В RHEL стандартной оболочкой (shell) является Bash (Bourne Again SHell). Это интерпретатор, который считывает ваши команды и передает их ядру операционной системы. Для администратора Bash — это среда автоматизации. Основной навык здесь — не просто ввод команд, а использование механизмов, которые ускоряют работу и минимизируют человеческий фактор.

Механизмы раскрытия (Expansion) и подстановки

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

  • Раскрытие фигурных скобок (Brace Expansion): позволяет генерировать произвольные строки. Например, создание структуры каталогов для проекта одним движением: mkdir -p project/{bin,src,doc,lib}. Это создаст четыре папки внутри project.
  • Подстановка имен файлов (Globbing): использование метасимволов для фильтрации.
  • — любое количество символов (включая ноль). * ? — строго один любой символ. * [a-z] — любой символ из диапазона.
  • Подстановка команд (Command Substitution): использование вывода одной команды как аргумента для другой. Синтаксис (date +%Y-%m-%d).tar /etc/.
  • Управление историей и горячие клавиши

    На экзамене RHCSA время — ваш главный враг. Использование истории команд экономит минуты, которые могут стать решающими. * Ctrl + r — обратный поиск по истории. Вы вводите часть команды, и Bash находит последнее совпадение. * !! — повторить последнюю команду (часто используется как sudo !!, если вы забыли про права суперпользователя). * !.

    Стандарт иерархии файловой системы (FHS) в Red Hat

    В отличие от Windows, где системные файлы могут быть разбросаны, RHEL строго следует стандарту Filesystem Hierarchy Standard (FHS). В Linux всё начинается с корня /. Нет никаких дисков C: или D:, есть единое дерево, в которое монтируются физические устройства.

    Критические директории и их назначение

    | Директория | Назначение и нюансы RHEL | | :--- | :--- | | /etc | «Нервный центр» системы. Здесь хранятся только конфигурационные файлы. Они должны быть текстовыми. Если вы ищете настройки сети, пользователей или SSH — вам сюда. | | /var | Переменные данные (Variable). Логи (/var/log), базы данных, очереди печати. Эта директория имеет свойство разрастаться, поэтому в продакшене её часто выносят на отдельный диск/раздел. | | /usr | (Unix System Resources). Хранит статичные данные: исполняемые файлы (/usr/bin), библиотеки (/usr/lib). В современных RHEL /bin и /sbin являются символическими ссылками на /usr/bin и /usr/sbin. | | /root | Домашний каталог суперпользователя. Не путать с корнем /. | | /home | Место для личных данных обычных пользователей. | | /run | Временные данные процессов, существующие только в оперативной памяти (например, PID-файлы). Очищается при перезагрузке. | | /boot | Файлы, необходимые для загрузки системы: ядро (vmlinuz), образ initramfs и конфигурация загрузчика GRUB2. |

    Виртуальные файловые системы: /proc и /sys

    Это не файлы на диске, а «окна» в оперативную память и структуры ядра. * /proc: содержит информацию о запущенных процессах и системных ресурсах. Например, cat /proc/cpuinfo покажет параметры процессора, а cat /proc/meminfo — состояние памяти. Каждая папка с цифрой в /proc соответствует ID запущенного процесса (PID). * /sys: интерфейс для взаимодействия с аппаратным обеспечением и драйверами. Здесь можно «на лету» менять параметры работы дисковых контроллеров или сетевых карт.

    Инструменты навигации и манипуляции данными

    Работа администратора — это постоянное перемещение данных и изменение их структуры.

    Эффективное использование ls, cp и mv

    Команда ls кажется простой, но для RHCSA важны флаги: * ls -l: длинный формат (права, владельцы, размер, дата). * ls -a: отображение скрытых файлов (начинаются с точки, например .bashrc). * ls -Z: (специфика RHEL) отображение контекстов безопасности SELinux.

    При копировании (cp) критически важно сохранять метаданные. Флаг -p сохраняет права доступа и владельцев, а -a (archive) делает то же самое рекурсивно, сохраняя даже символические ссылки как ссылки, а не копируя содержимое файлов, на которые они указывают.

    Поиск файлов: find vs locate

    locate работает мгновенно, так как ищет в заранее подготовленной базе данных (/var/lib/mlocate/mlocate.db). Однако, если вы только что создали файл, locate его не найдет, пока вы не обновите базу командой updatedb.

    find — это «тяжелая артиллерия». Он сканирует файловую систему в реальном времени. Пример сложного поиска для администратора: find /etc -maxdepth 2 -user root -mtime -1 Эта команда найдет в /etc (на глубину не более 2 уровней) файлы, владельцем которых является root и которые изменялись за последние 24 часа.

    Перенаправление потоков и конвейеры (Pipes)

    В Linux существует концепция трех стандартных потоков:

  • stdin (0): стандартный ввод (клавиатура).
  • stdout (1): стандартный вывод (экран).
  • stderr (2): стандартный поток ошибок (тоже экран, но отдельный канал).
  • Манипуляция потоками

    * >: перезаписать файл выводом команды. * >>: дописать в конец файла. * 2>: перенаправить только ошибки. Часто используется 2> /dev/null, чтобы скрыть сообщения о нехватке прав доступа. * &>: перенаправить и стандартный вывод, и ошибки в один файл.

    Конвейер | (pipe) позволяет соединять программы в цепочки. Это воплощение философии Unix: «Пишите программы, которые делают одну вещь и делают её хорошо. Пишите программы, которые работают вместе».

    > «Мы должны строить системы, которые могут быть легко соединены с другими системами. Конвейер — это клей, который превращает набор мелких утилит в мощный комбайн для обработки данных.» > > The Art of Unix Programming

    Обработка текста: grep, awk и sed

    Администрирование RHEL на 80% состоит из чтения и правки текстовых файлов.

    Фильтрация с помощью grep

    grep ищет строки по шаблону. Важные параметры: * -i: игнорировать регистр. * -v: инверсия (показать всё, что НЕ подходит под шаблон). * -E: использование расширенных регулярных выражений (ERE).

    Пример: grep -v '^#' /etc/ssh/sshd_config | grep -v '^9, $5}' Эта команда выведет только имя файла (9-й столбец) и его размер (5-й столбец).

    Работа с документацией: man и pinfo

    На экзамене RHCSA у вас нет доступа к интернету, но у вас есть локальная документация. Умение быстро в ней ориентироваться — залог успеха.

  • Секции мануалов:
  • * man 1: пользовательские команды. * man 5: форматы файлов конфигурации (например, man 5 exports расскажет, как настраивать NFS). * man 8: команды системного администрирования.
  • Поиск по ключевым словам: man -k <keyword> или apropos <keyword>. Если вы забыли команду для смены пароля, man -k password выдаст список всех связанных утилит.
  • Ссылки в файловой системе: Hard и Soft

    Понимание разницы между жесткими и символическими ссылками критично для управления пространством и структурой системы.

    Жесткие ссылки (Hard Links)

    Это дополнительные имена для одного и того же участка данных на диске (одного и того же inode). * Не могут указывать на директории. * Не могут пересекать границы файловых систем (разделов). * При удалении оригинала файл остается доступен по жесткой ссылке, пока счетчик ссылок не станет равным нулю.

    Символические ссылки (Symbolic/Soft Links)

    Это специальный файл, который содержит путь к другому файлу или директории. * Могут указывать на директории. * Работают между разными дисками и разделами. * Если оригинал удален, ссылка становится «битой» (dangling link).

    Создание ссылок: * Жесткая: ln file1 link1 * Символическая: ln -s /etc/passwd my_passwd

    Редактирование файлов в консоли: Vim

    В RHEL vi (или его улучшенная версия vim) — это стандарт. Вы не можете считаться администратором RHEL, не зная основ Vim, так как это единственный редактор, который гарантированно есть в любой минимальной установке системы.

    Три режима Vim

  • Command mode (командный): включается по умолчанию. Здесь вы перемещаетесь и удаляете текст.
  • Insert mode (вставки): для ввода текста. Переход из командного — клавиша i.
  • Last line mode (режим последней строки): для сохранения и выхода. Переход из командного — :.
  • Основные команды для выживания

    * u — отмена последнего действия (undo). * dd — удалить (вырезать) строку. * yy — скопировать строку. * p — вставить. * /pattern — поиск по файлу. * :wq! — сохранить и выйти принудительно. * :q! — выйти без сохранения.

    Архивация и сжатие данных

    Администратор постоянно сталкивается с необходимостью переноса конфигураций или логов.

    Утилита tar (Tape Archiver)

    tar не сжимает файлы сам по себе, он объединяет их в один поток («шар»). Для сжатия используются внешние утилиты, интегрированные в tar. * -c: создать архив. * -x: извлечь. * -v: подробный вывод. * -f: указать имя файла архива (обязательно должен быть последним флагом перед именем). * -z: сжатие gzip (быстро, среднее сжатие). * -j: сжатие bzip2 (медленнее, лучше сжатие). * -J: сжатие xz (самое сильное сжатие, высокая нагрузка на CPU).

    Пример: tar -cJf logs_backup.tar.xz /var/log — создание максимально сжатого архива системных журналов.

    Анализ содержимого файлов без их открытия

    Если файл весит несколько гигабайт (например, messages или audit.log), открывать его в Vim — плохая идея. * head -n 5: показать первые 5 строк. * tail -n 10: показать последние 10 строк. * tail -f: режим реального времени. Команда не завершается, а «ждет» появления новых строк в файле. Идеально для мониторинга логов во время отладки сервиса. * less: «умный» просмотрщик. Позволяет листать файл в обоих направлениях, искать по тексту, не загружая весь файл в оперативную память.

    Практические нюансы работы в RHEL

    В Red Hat Enterprise Linux есть специфические особенности, которые нужно учитывать при работе с файлами. Например, многие системные файлы защищены не только обычными правами (rwx), но и атрибутами или контекстами SELinux.

    Если вы пытаетесь изменить файл от имени root, а система выдает "Operation not permitted", проверьте атрибуты командой lsattr. Если вы видите флаг i (immutable), файл нельзя изменить, удалить или переименовать, пока атрибут не будет снят: chattr -i <file>.

    Также помните о важности /dev. Это не просто папка, это интерфейсы устройств. * /dev/null: «черная дыра». Все, что туда записано, исчезает. * /dev/zero: бесконечный поток нулей. Используется для создания пустых файлов фиксированного размера: dd if=/dev/zero of=swapfile bs=1M count=1024. * /dev/urandom: источник случайных данных.

    Знание иерархии и инструментов командной строки — это фундамент. Без него невозможно двигаться к управлению пользователями, настройке сети или контейнеризации, так как все эти задачи в RHEL решаются через манипуляцию текстовыми конфигами и использование системных утилит в Bash-скриптах.