Управление пакетами, пользователями и процессами - DevOps с нуля: Путь к автоматизации и CI/CD - Qpel.AI

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

В прошлом уроке вы освоили базовые команды Linux для навигации и работы с файлами. Отлично! Теперь пора двигаться дальше и освоить более продвинутые, но не менее важные вещи: как устанавливать программы, управлять пользователями и контролировать запущенные процессы. Эти навыки — фундамент для любого DevOps-инженера. Они помогут вам поддерживать стабильность и безопасность инфраструктуры.

Управление программами: пакетные менеджеры

В Linux программы распространяются в виде пакетов. Пакет — это архив, где лежит всё необходимое для установки и работы приложения: исполняемые файлы, библиотеки, документация. Управляют пакетами специальные утилиты — пакетные менеджеры. В разных дистрибутивах Linux они разные.

💡 Важно: В России популярны дистрибутивы на базе Debian (Ubuntu, Astra Linux) и Red Hat (CentOS, AlmaLinux, Red OS). Мы разберём команды для обоих семейств, чтобы вы были готовы к любой среде.

Debian/Ubuntu: APT

В дистрибутивах на базе Debian (например, Ubuntu) используется пакетный менеджер APT (Advanced Package Tool).

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

    sudo apt update
    

    sudo позволяет выполнить команду с правами суперпользователя (администратора). Это нужно для системных операций.

  • Установить пакет:

    sudo apt install <имя_пакета>
    

    Например, чтобы установить текстовый редактор nano:

    sudo apt install nano
    
  • Удалить пакет:

    sudo apt remove <имя_пакета>
    

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

    sudo apt purge <имя_пакета>
    
  • Обновить установленные пакеты:

    sudo apt upgrade
    

    Эта команда обновит все установленные пакеты до последних версий из репозиториев.

Red Hat/CentOS: YUM/DNF

В дистрибутивах на базе Red Hat раньше использовали YUM (Yellowdog Updater, Modified). В современных версиях (CentOS 8+, AlmaLinux, Red OS) его заменил DNF (Dandified YUM) — он быстрее и функциональнее. Команды для YUM и DNF очень похожи.

  • Обновить список пакетов (метаданных):

    sudo dnf check-update # или sudo yum check-update
    
  • Установить пакет:

    sudo dnf install <имя_пакета> # или sudo yum install <имя_пакета>
    

    Например, для установки nano:

    sudo dnf install nano
    
  • Удалить пакет:

    sudo dnf remove <имя_пакета> # или sudo yum remove <имя_пакета>
    
  • Обновить установленные пакеты:

    sudo dnf upgrade # или sudo yum update
    

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

Правильное управление пользователями и группами — основа безопасности любой системы. В DevOps вы часто будете создавать пользователей для сервисов, настраивать им права доступа и управлять привилегиями.

Пользователи

  • Создать нового пользователя:

    sudo adduser <имя_пользователя>
    

    Эта команда создаст пользователя, его домашнюю директорию и попросит задать пароль.

  • Удалить пользователя:

    sudo deluser <имя_пользователя>
    

    Чтобы удалить пользователя вместе с его домашней директорией и почтовым ящиком:

    sudo deluser --remove-home <имя_пользователя>
    
  • Изменить пароль пользователя:

    sudo passwd <имя_пользователя>
    
  • Посмотреть информацию о текущем пользователе:

    whoami
    id
    

    whoami покажет ваше имя пользователя, id — более подробную информацию: UID (User ID), GID (Group ID) и группы, в которых вы состоите.

Группы

Группы объединяют пользователей и упрощают управление правами доступа к файлам и ресурсам.

  • Создать новую группу:

    sudo addgroup <имя_группы>
    
  • Удалить группу:

    sudo delgroup <имя_группы>
    
  • Добавить пользователя в группу:

    sudo usermod -aG <имя_группы> <имя_пользователя>
    

    Опция -aG означает "добавить в дополнительные группы". После добавления пользователю, возможно, придётся перезайти в систему, чтобы изменения вступили в силу.

  • Посмотреть группы пользователя:

    groups <имя_пользователя>
    

    Если имя пользователя не указано, покажет группы текущего пользователя.

Управление процессами: мониторинг и контроль

Процесс — это запущенная программа или её часть. Умение управлять процессами поможет вам мониторить работу приложений, останавливать зависшие программы и контролировать потребление ресурсов.

  • Посмотреть запущенные процессы:

    ps aux
    
    • a: показывает процессы всех пользователей.
    • u: отображает информацию о пользователе, запустившем процесс.
    • x: показывает процессы, не привязанные к терминалу. Вы увидите PID (Process ID), %CPU, %MEM и команду, запустившую процесс.

    Для более интерактивного просмотра и сортировки процессов используйте top или htop (последний нужно установить: sudo apt install htop или sudo dnf install htop).

    top
    

    Нажмите q для выхода из top.

  • Найти процесс по имени:

    pgrep <имя_процесса>
    

    Эта команда вернёт PID процесса.

    Или с помощью grep и ps:

    ps aux | grep <имя_процесса>
    

    ⚠️ Внимание: При использовании grep вы увидите также сам процесс grep. Будьте внимательны.

  • Завершить процесс (kill): Для завершения процесса используйте команду kill с указанием PID.

    kill <PID>
    

    Это "мягкое" завершение, процесс может его проигнорировать. Для "жёсткого" (принудительного) завершения используйте опцию -9:

    kill -9 <PID>
    

    Используйте -9 осторожно: процесс не сможет корректно завершиться и сохранить данные.

  • Завершить процесс по имени:

    killall <имя_процесса>
    

    Эта команда завершит все процессы с указанным именем.

Упражнение 🏋️‍♀️

  1. Установите htop (если ещё не установлен) с помощью пакетного менеджера для вашего дистрибутива.
  2. Запустите htop и изучите его. Попробуйте отсортировать процессы по CPU или памяти.
  3. Создайте нового пользователя devops_user.
  4. Создайте новую группу devops_team.
  5. Добавьте devops_user в группу devops_team.
  6. Проверьте, что devops_user состоит в devops_team.
  7. Запустите в фоновом режиме простую команду, например sleep 60 & (символ & в конце запускает команду в фоне).
  8. Найдите PID этого процесса с помощью ps aux и grep.
  9. "Мягко" завершите этот процесс с помощью kill.

Теперь у вас есть мощный набор инструментов для управления Linux-системой. Но что делать, если нужно настроить сеть, проверить доступность ресурсов или понять, почему сервер не "видит" интернет? В следующем разделе мы погрузимся в базовые сетевые настройки и мониторинг, чтобы вы могли уверенно работать с сетевой частью инфраструктуры.