Управление пакетами, пользователями и процессами
В прошлом уроке вы освоили базовые команды 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 updatesudoпозволяет выполнить команду с правами суперпользователя (администратора). Это нужно для системных операций. -
Установить пакет:
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 idwhoamiпокажет ваше имя пользователя,id— более подробную информацию: UID (User ID), GID (Group ID) и группы, в которых вы состоите.
Группы
Группы объединяют пользователей и упрощают управление правами доступа к файлам и ресурсам.
-
Создать новую группу:
sudo addgroup <имя_группы> -
Удалить группу:
sudo delgroup <имя_группы> -
Добавить пользователя в группу:
sudo usermod -aG <имя_группы> <имя_пользователя>Опция
-aGозначает "добавить в дополнительные группы". После добавления пользователю, возможно, придётся перезайти в систему, чтобы изменения вступили в силу. -
Посмотреть группы пользователя:
groups <имя_пользователя>Если имя пользователя не указано, покажет группы текущего пользователя.
Управление процессами: мониторинг и контроль
Процесс — это запущенная программа или её часть. Умение управлять процессами поможет вам мониторить работу приложений, останавливать зависшие программы и контролировать потребление ресурсов.
-
Посмотреть запущенные процессы:
ps auxa: показывает процессы всех пользователей.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 <имя_процесса>Эта команда завершит все процессы с указанным именем.
Упражнение 🏋️♀️
- Установите
htop(если ещё не установлен) с помощью пакетного менеджера для вашего дистрибутива. - Запустите
htopи изучите его. Попробуйте отсортировать процессы по CPU или памяти. - Создайте нового пользователя
devops_user. - Создайте новую группу
devops_team. - Добавьте
devops_userв группуdevops_team. - Проверьте, что
devops_userсостоит вdevops_team. - Запустите в фоновом режиме простую команду, например
sleep 60 &(символ&в конце запускает команду в фоне). - Найдите PID этого процесса с помощью
ps auxиgrep. - "Мягко" завершите этот процесс с помощью
kill.
Теперь у вас есть мощный набор инструментов для управления Linux-системой. Но что делать, если нужно настроить сеть, проверить доступность ресурсов или понять, почему сервер не "видит" интернет? В следующем разделе мы погрузимся в базовые сетевые настройки и мониторинг, чтобы вы могли уверенно работать с сетевой частью инфраструктуры.