AIが作成人が改善

Riqli · ライブドキュメント · 常に更新

AIの知識と人間の実践が出会う場所。

友達と共有
image

Администрирование Linux. Hard skill. (Linux администрирование. Linux настройка сервера. Командная строка linux. Systemd unit file. Tutorial. Practice. Standard.)

セクション

Администрирование Linux: Управление пакетами и репозиториями (YUM/DNF)

Этот раздел охватывает основы работы с менеджерами пакетов в семействе Red Hat. Вы узнаете, как искать, устанавливать, обновлять и удалять программное обеспечение, а также управлять репозиториями для автоматического разрешения зависимостей.
contents

В дистрибутивах семейства Red Hat (RHEL, CentOS, Rocky Linux) основным инструментом для управления пакетами является YUM (Yellowdog Updater Modified) и его преемник DNF. Они автоматически разрешают и устанавливают зависимости пакетов, что критически важно для стабильности и безопасности системы. Файлы конфигурации репозиториев с расширением `.repo` хранятся в каталоге /etc/yum.repos.d/. Просмотреть историю всех транзакций (установка, удаление, обновление) можно с помощью команды `yum history`.

contents

Для поиска пакета, когда точное имя неизвестно, используется команда yum search. Например, `yum search web server`. Для получения подробной информации о конкретном пакете (версия, архитектура, описание, лицензия, репозиторий) применяется команда yum info. Установка пакета выполняется командой `yum install`, а удаление — `yum remove`.

セクション

Сетевая безопасность: Управление брандмауэром firewalld

Этот раздел посвящен настройке межсетевого экрана в современных дистрибутивах Linux. Вы изучите концепцию зон безопасности, научитесь разрешать или блокировать доступ к службам и портам, а также настраивать маскарадинг и переадресацию портов.
contents

Firewalld использует концепцию зон (zones) для определения уровня доверия к сети. Каждая зона (например, `public`, `home`, `internal`, `dmz`) имеет свой набор предопределенных правил. Зона по умолчанию — `public`. Для просмотра активной зоны используется команда `firewall-cmd --get-default-zone`. Чтобы добавить правило, нужно использовать ключ `--permanent` для сохранения после перезагрузки, а затем выполнить `firewall-cmd --reload`.

contents

Для разрешения доступа к веб-серверу необходимо добавить службы `http` (порт 80) и `https` (порт 443) в зону. Команда: `firewall-cmd --permanent --add-service=http --add-service=https`. Также можно разрешить доступ по номеру порта: `firewall-cmd --permanent --add-port=8080/tcp`. Для проверки всех правил в зоне используется `firewall-cmd --list-all`.

セクション

Безопасность Linux: SELinux и управление доступом

Этот раздел погружает вас в механизм принудительного контроля доступа SELinux (Security-Enhanced Linux). Вы узнаете о его режимах работы, контекстах безопасности, а также научитесь диагностировать и исправлять проблемы, связанные с SELinux.
contents

SELinux добавляет уровень безопасности поверх стандартных прав доступа (rwx). Каждый процесс и файл имеют контекст безопасности, включающий пользователя, роль и тип. Основные режимы SELinux: Enforcing (правила применяются и блокируют запрещенный доступ), Permissive (правила не применяются, только логируются) и Disabled (полностью отключен). Проверить текущий режим можно командой `getenforce`.

contents

Каждый файл и каталог имеет контекст SELinux, который можно просмотреть с помощью команды `ls -Z`. Например, веб-сервер Apache может работать только с файлами, имеющими тип `httpd_sys_content_t`. Если переместить файл сайта в другой каталог, контекст может измениться, и Apache не сможет его прочитать. Для восстановления правильного контекста используется команда restorecon.

セクション

Планирование задач и автоматизация (Cron и Bash)

В этом разделе вы научитесь автоматизировать рутинные задачи системного администратора с помощью планировщика Cron и создавать собственные скрипты на языке Bash для эффективного управления системой.
contents

Демон crond выполняет задачи по расписанию. Пользовательские задания настраиваются в crontab (команда `crontab -e`). Синтаксис строки crontab: `минуты часы день_месяца месяц день_недели команда`. Специальные директории, такие как /etc/cron.daily/, позволяют запускать скрипты ежедневно. Просмотреть список заданий текущего пользователя можно командой `crontab -l`.

contents

Bash-скрипты начинаются с shebang (`#!/bin/bash`), указывающего интерпретатор. Для получения ввода от пользователя используется команда read. Условные операторы (`if-then-else`) и циклы (`for`, `while`) управляют логикой. Для обработки текста и фильтрации данных применяются мощные утилиты grep, awk и sed. Важно устанавливать правильные права доступа на скрипт (`chmod +x`).

セクション

Виртуализация и контейнеризация (KVM и Podman)

Этот раздел знакомит с технологиями виртуализации на базе ядра KVM и контейнеризации с помощью Podman. Вы научитесь создавать и управлять виртуальными машинами и контейнерами, что является ключевым навыком для современного DevOps-инженера.
contents

KVM (Kernel-based Virtual Machine) — это встроенное в ядро Linux решение для виртуализации. Управление осуществляется через libvirt. Основные команды: virsh list --all (список всех ВМ), virsh start (запуск), virsh shutdown (корректное выключение) и virsh destroy (принудительное выключение). Графический интерфейс для управления — Virtual Machine Manager (virt-manager).

contents

Podman — это демон-less (без центрального демона) инструмент для управления контейнерами, что делает его более безопасным, чем Docker. Команды Podman совместимы с Docker. Запустить контейнер можно командой podman run. Ключ `-it` запускает интерактивный сеанс, `--rm` автоматически удаляет контейнер после остановки, а `-d` запускает контейнер в фоновом режиме (демоном).

セクション

Мониторинг и производительность системы (top, nice, renice)

В этом разделе вы освоите инструменты для мониторинга системы в реальном времени, анализа загрузки CPU, использования памяти и дисковых операций I/O, а также научитесь управлять приоритетами процессов для оптимизации производительности.
contents

Команда top предоставляет динамический взгляд на работающие процессы. Она показывает загрузку процессора (CPU), использование оперативной памяти (Memory) и swap-раздела. Для сортировки процессов по использованию CPU нажмите клавишу `P`, по использованию памяти — `M`. Для выхода из top используется клавиша `q`. Более современная альтернатива — htop.

contents

Изменить приоритет уже запущенного процесса можно командой renice. Например, `renice -n 10 -p 1234` установит nice-значение 10 для процесса с PID 1234 (понизив его приоритет). Только суперпользователь (root) может устанавливать отрицательные значения (повышать приоритет). Для запуска нового процесса с измененным приоритетом используется команда `nice -n 5 command`.

セクション

Администрирование Linux: Автоматизация с Python

Основы Python для замены Bash-скриптов. Динамическая типизация, условные операторы, работа с файлами и модуль subprocess.
contents

В отличие от Bash, Python лучше подходит для сложной логики и обработки данных. Переменные не требуют указания типа. Условный оператор if-elif-else управляет логикой. Модуль subprocess выполняет системные команды.

contents

Обработка ошибок: конструкция try-except-else-finally. Списки (list) и словари (dict) — основные структуры данных. Функции переиспользуют код. Модули и пакеты организуют проект.

セクション

Администрирование Linux: Основы Ansible

Введение в Ansible — инструмент автоматизации без агентов. Ключевые компоненты: модули, инвентаризация, playbooks на YAML и ad-hoc команды.
contents

Ключевое преимущество Ansible — отсутствие агентов (используется SSH). Инвентаризация (Inventory) — файл со списком хостов и групп. Модули — инструменты для задач. Playbooks на YAML описывают желаемое состояние системы.

contents

Модуль ping проверяет доступность узлов. Модуль apt/yum управляет пакетами. Модуль copy копирует файлы. Модуль template использует Jinja2 для динамических конфигураций. Переменные параметризуют конфигурации.

セクション

Администрирование Linux: Контейнеризация с Docker

Основы Docker: образы, контейнеры, Docker Hub, Dockerfile. Отличия контейнеров от виртуальных машин.
contents

Контейнеры используют одно ядро хостовой ОС, они легковесны. Образ (image) — read-only шаблон. Docker Hub — публичный реестр образов. docker pull загружает образ, docker run создает контейнер. -d — фон, -it — интерактив.

contents

Управление: docker ps (список), stop, rm, logs. Тома (volumes) для постоянных данных. Docker Compose и docker-compose.yml для многоконтейнерных приложений. Многоэтапная сборка уменьшает размер образов.

セクション

Администрирование Linux: Git и CI/CD

Основы Git: репозитории, ветки, слияние. Базовые концепции CI/CD и автоматизация с GitHub Actions.
contents

Git — распределенная система контроля версий. Основные команды: init, clone, add, commit, push, pull, branch, merge. Ветки (branches) изолируют разработку новых функций. GitHub Actions — платформа CI/CD.

contents

В GitLab CI конвейер в файле .gitlab-ci.yml. Элементы: stages (этапы), jobs (задачи), runners (агенты). Git Flow — стратегия ветвления (main, develop, feature). Pull Request — рецензирование кода.

セクション

Администрирование Linux: Мониторинг с ELK Stack

Введение в экосистему ELK: Elasticsearch, Logstash, Kibana, Beats. Централизованный сбор и визуализация логов и метрик.
contents

Elasticsearch — распределенная поисковая NoSQL. Logstash — конвейер обработки (сбор, фильтрация). Kibana — веб-интерфейс для визуализации. Beats — легковесные агенты: Filebeat (логи), Metricbeat (метрики системы).

contents

APM отслеживает производительность приложений. Elasticsearch Query DSL — язык запросов JSON. Алерты (Alerts) в Kibana на основе правил (CPU > 90%). Визуализации объединяются в дашборды.

セクション

Администрирование Linux: Управление пользователями и правами

Управление локальными пользователями и группами. Файлы /etc/passwd, /etc/shadow, /etc/group. Команды useradd, usermod, userdel, groupadd.
contents

Файл /etc/passwd хранит информацию о пользователях (имя, UID, GID, домашний каталог, shell). Файл /etc/shadow содержит зашифрованные пароли и политики их действия. Команда useradd создает пользователя, userdel удаляет (ключ -r удаляет домашний каталог).

contents

Права доступа (чтение r=4, запись w=2, выполнение x=1). Команда chmod меняет права. chown меняет владельца и группу. ACL (setfacl/getfacl) дают гибкие права. Специальные биты: SUID (4), SGID (2), Sticky (1).

セクション

Администрирование Linux: Управление процессами

Управление процессами: ps, top, htop, kill, jobs, bg, fg. Сигналы процессов. Приоритеты nice и renice.
contents

ps aux — список всех процессов. top/htop — интерактивный мониторинг. kill отправляет сигналы (SIGTERM=15, SIGKILL=9). jobs показывает фоновые задачи. bg/fg управляют задачами. nice запускает процесс с приоритетом, renice меняет приоритет работающего.

contents

Команда top: клавиша P — сортировка по CPU, M — по памяти, k — убить процесс, r — изменить приоритет (renice). htop — улучшенная версия с цветами и управлением мышью. systemd-cgtop показывает использование ресурсов по контрольным группам (cgroups).

セクション

Администрирование Linux: Управление дисками и файловыми системами

Управление дисками: fdisk, parted, mkfs, mount, umount, df, du, LVM. Монтирование файловых систем.
contents

df -h — свободное место на дисках. du -sh — размер каталога. fdisk -l — список разделов. mkfs.ext4 создает файловую систему. mount монтирует раздел, umount размонтирует. /etc/fstab — автоматическое монтирование при загрузке.

contents

LVM (Logical Volume Manager): PV (Physical Volume), VG (Volume Group), LV (Logical Volume). pvcreate, vgcreate, lvcreate. Расширение LV: lvextend + resize2fs (для ext4) или xfs_growfs (для XFS). snapshots — снимки состояния.


questions

Какой инструмент командной строки в RHEL 9 и CentOS Stream 9 используется для управления пакетами с автоматическим разрешением зависимостей?

answers正解

DNF (Dandified YUM).

explanations

Начиная с RHEL 8 и CentOS 8, YUM был заменен на DNF как стандартный менеджер пакетов. DNF предлагает улучшенную производительность, лучшее разрешение зависимостей, более чистый API и поддержку сторонних плагинов, оставаясь при этом обратно совместимым с основными командами YUM.

answers不正解

APT (Advanced Package Tool).


questions

Какая команда YUM/DNF позволяет просмотреть историю всех выполненных транзакций с пакетами (установка, удаление, обновление)?

answers正解

Команда yum history (или dnf history).

explanations

`yum history` отображает список транзакций с уникальными ID, датой, временем, действием и количеством затронутых пакетов. Это незаменимый инструмент для аудита и отката изменений, так как с помощью `yum history undo ` можно отменить любую прошлую транзакцию.