Настало время сделать следующий шаг. В этой части мы поднимемся на новую ступень: от работы с отдельными файлами перейдём к управлению пользователями, процессами, журналами и, наконец, поднимем свой собственный веб-сервер. Главная задача — показать, как отдельные кирпичики (команды, файлы, службы) складываются в работающую систему.
Важно:В этой части мы будем углубляться в практику. Как и раньше, весь код будет представлен в виде наглядных скриншотов. Настоятельно рекомендую выполнять все команды в своей виртуальной машине — так знания закрепятся гораздо лучше!
8. Пользователи, группы и привилегии
В прошлой части мы говорили о правах доступа к файлам (chmod, chown). Но кто может менять эти права? Кто имеет право устанавливать программы? Ответ кроется в системе управления пользователями.
В Linux есть два типа пользователей: обычные и суперпользователь (root). root (также называемый суперпользователем) имеет неограниченные полномочия и может делать в системе всё.
Работать из-под root постоянно — очень плохая практика. Вместо этого используется команда sudo (Substitute User and DO). Она позволяет выполнять отдельные команды от имени root (или другого пользователя) без необходимости постоянно переключаться.
Основные команды
9. Процессы и сигналы: Управляем программой
Мы уже знаем, что процесс — это запущенная программа. Но процессы могут находиться в разных состояниях, и ими можно управлять, посылая им сигналы. Самый известный сигнал — SIGTERM (сигнал завершения) и SIGKILL (безусловное убийство процесса).
ps aux — позволяет увидеть все процессы в системе. Это как список всех программ и служб, которые сейчас запущены, с их идентификаторами (PID).
kill -15 — посылает процессу сигнал завершения (SIGTERM). Это «вежливая» просьба остановиться, которую программа может проигнорировать или обработать.
kill -9 — посылает безусловный сигнал (SIGKILL). Это «ядерный» вариант — процесс будет остановлен немедленно ядром системы, без сохранения данных. Используйте с осторожностью!
10. systemd и его юниты: Управление службами
В первой части мы кратко коснулись systemd. Теперь разберёмся с ним глубже. systemd — это не просто система инициализации, это целый менеджер служб, который берёт управление системой на себя.
Центральное понятие здесь —юнит (unit). Это конфигурационный файл, который описывает, как должна работать та или иная служба. Самые частые типы юнитов: