intDataBlog
← ЖурналМаршруты обучения ↗

Linux: понять хост за одну сессию

Составьте паспорт учебного хоста, найдите процесс и объясните права файла.

Практика рассчитана на отдельную учебную среду и вымышленные данные.

Linux: первый осмотр

Один хост объединяет ядро, пользователей, файлы, процессы и службы. Начните с чтения состояния: так проще отделить устройство системы от поведения приложения.

Начните с вопроса, на который хотите ответить. Команда pwd сообщает положение оболочки, whoami — эффективного пользователя, uname -r — версию ядра. Ни один из этих ответов отдельно не описывает всю машину. Сопоставьте их с /etc/os-release и назначением выбранной службы: получится небольшой паспорт среды, к которому можно вернуться при следующей проверке.

Не путайте раздел, файловую систему и каталог. Каталог /var может находиться на том же разделе, что и /, или на отдельном. Поэтому свободное место проверяют для пути, куда пишет приложение, а не по первой строке вывода df.

  • Оболочка и рабочий каталог
  • Версия системы и диски
  • Назначение служб

Попробуйте

  1. В своей учебной VM выполните pwd, whoami и uname -r.
  2. Посмотрите df -h и объясните разницу размера раздела и свободного места.
  3. Выпишите одну службу и её назначение.

Есть короткий паспорт VM: пользователь, ядро, текущий каталог, раздел и выбранная служба.

Почему hostname не заменяет версию дистрибутива?

Имя хоста — метка машины. Версию дистрибутива обычно читают из /etc/os-release.

Продолжить на русском и английском
  • Linux — начало пути RU ↗

    Начните с оболочки, файлов и команд. Бесплатный курс; условия зачисления проверьте на Stepik.

  • Introduction to Linux EN ↗

    Навигация, процессы и службы. Курс заявлен бесплатным; практическая Linux-среда отдельно.

  • Linux Labs RU ↗

    Первый практикум раздела «Первые шаги». Браузерные VM; для запуска нужен вход через Google.

Процессы

Программа на диске и выполняющийся процесс — разные объекты. PID, владелец и состояние помогают найти именно тот экземпляр, который относится к задаче.

Запускаемый файл — инструкция, а процесс — конкретное выполнение этой инструкции. Два запуска создают два PID и могут иметь разных владельцев, параметры и рабочие каталоги. Когда приложение отвечает медленно, полезно сначала установить, какой экземпляр обслуживает запрос, затем смотреть его состояние и потребление ресурсов.

Сигнал — запрос процессу, а не универсальная кнопка очистки. В учебном примере сначала убедитесь, что PID относится к созданному вами sleep. Обычный TERM даёт процессу возможность завершиться; принудительное завершение не должно быть первым диагностическим действием.

  • PID и PPID
  • Пользователь процесса
  • Сигналы и состояние

Попробуйте

  1. В отдельной учебной оболочке запустите sleep 120 & и сохраните выведенный PID.
  2. Проверьте этот PID через ps -p PID -o pid,ppid,user,stat,comm.
  3. Остановите только созданный sleep через kill PID и проверьте отсутствие процесса.

В записи есть совпавший PID до завершения и результат повторной проверки.

Почему нельзя завершать процесс только по похожему имени?

Имя может совпадать у нескольких экземпляров. Сначала проверяют PID, владельца и назначение.

Продолжить на русском и английском
  • Linux — начало пути RU ↗

    Начните с оболочки, файлов и команд. Бесплатный курс; условия зачисления проверьте на Stepik.

  • Introduction to Linux EN ↗

    Навигация, процессы и службы. Курс заявлен бесплатным; практическая Linux-среда отдельно.

  • OverTheWire Bandit EN ↗

    Уровни 0–3: чтение файлов и поиск. Задачи на удалённой учебной системе через SSH; нужен SSH-клиент.

Файлы и права

Доступ зависит от владельца, группы, режима файла и прав каталогов на пути к нему. Исправляйте конкретную причину, сохраняя минимальные разрешения.

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

Режим 600 оставляет чтение и запись владельцу. Он не выбирает владельца и не исправляет неверную группу. Разбирайте эти свойства отдельно и не расширяйте доступ всему миру только потому, что так исчезает ошибка.

  • r/w/x для файла и каталога
  • Владелец и группа
  • Минимальные права

Попробуйте

  1. В новом учебном каталоге создайте notes.txt с вымышленной строкой.
  2. Примените chmod 600 notes.txt и прочитайте ls -l notes.txt.
  3. Объясните, кому доступны чтение и запись и почему файл не исполняемый.

Режим -rw------- объяснён по трём группам прав.

Что означает x для каталога?

Возможность проходить через каталог и обращаться к известным именам в нём; это не то же, что чтение списка имён.

Продолжить на русском и английском
  • Основы командной строки RU ↗

    Навигация по файловой системе. Курс заявлен бесплатным; нужна регистрация.

  • Introduction to Linux EN ↗

    Навигация, процессы и службы. Курс заявлен бесплатным; практическая Linux-среда отдельно.

  • Linux Labs RU ↗

    Первый практикум раздела «Первые шаги». Браузерные VM; для запуска нужен вход через Google.

Ресурсы хоста

Высокая задержка сама по себе не указывает на CPU. Сопоставляйте память, процессор, разделы и временной интервал, прежде чем выбирать действие.

Высокий процент CPU сам по себе не доказывает неисправность: полезная пакетная работа тоже загружает процессор. Сопоставляйте загрузку с длительностью запроса, очередью задач и ограничениями среды. Аналогично, занятая файловым кэшем память не равна потерянной памяти процесса.

  • CPU и load average
  • Память и swap
  • Место и inode

Попробуйте

  1. На учебной VM прочитайте uptime, free -h и df -h.
  2. Запишите, какой показатель описывает занятое место, а какой память.
  3. Разберите пример: RAM свободна, /var занят на 100%, приложение не пишет журнал.

Вывод указывает на заполненный раздел; предлагается проверить источник расхода, без массового удаления.

Доказывает ли load average 8 перегрузку?

Нет. Нужны число CPU, длительность и характер ожидающих задач; load может включать ожидание I/O.

Продолжить на русском и английском
  • Introduction to Linux EN ↗

    Навигация, процессы и службы. Курс заявлен бесплатным; практическая Linux-среда отдельно.

  • Linux Labs RU ↗

    Первый практикум раздела «Первые шаги». Браузерные VM; для запуска нужен вход через Google.

  • SadServers EN ↗

    Выберите Easy и проверьте условия запуска. Доступ зависит от сценария: открытый, по email или платный.

Журналы

Лог — наблюдение о событии, а не готовое доказательство причины. Сначала сузьте время, службу и запрос, затем сопоставьте сообщения с симптомом.

Журнал — последовательность событий, а не полное описание причин. Установите временной интервал, службу и идентификатор запроса. Сообщение об ошибке после перезапуска может быть следствием первоначального сбоя. Сохраните порядок событий в своей записи и отдельно пометьте гипотезу, которую пока не проверяли.

  • Временная шкала
  • Фильтрация по службе
  • Корреляция запросов

Попробуйте

  1. Для учебной службы прочитайте journalctl -u ИМЯ --since "10 minutes ago" без изменения журнала.
  2. Найдите время и уровень сообщения и сопоставьте их с systemctl status ИМЯ.
  3. Если systemd в лаборатории нет, разберите строки: 10:01 started; 10:02 config invalid; 10:02 stopped.

Назван первый диагностический сигнал config invalid, а stopped не объявлен первопричиной.

Почему последняя ошибка не всегда причина?

Она может быть следствием более раннего отказа. Нужен порядок событий и подтверждающая проверка.

Продолжить на русском и английском
  • Introduction to Linux EN ↗

    Навигация, процессы и службы. Курс заявлен бесплатным; практическая Linux-среда отдельно.

  • Linux Labs RU ↗

    Первый практикум раздела «Первые шаги». Браузерные VM; для запуска нужен вход через Google.

  • SadServers EN ↗

    Выберите Easy и проверьте условия запуска. Доступ зависит от сценария: открытый, по email или платный.

Базовая безопасность

Начните с того, кто входит в систему, какие службы слушают сеть и какие права нужны для работы. Отключение защиты обычно скрывает проблему вместо объяснения.

Минимальная база начинается с понятных владельцев доступа и обновлений. Для каждого входа определите пользователя, способ аутентификации и нужную задачу. Проверьте, что приложение получает только необходимые права. Учебная практика не требует открывать порты, менять рабочие ключи или отключать защиту на личном компьютере.

  • Минимальные привилегии
  • Слушающие порты
  • Секреты вне кода

Попробуйте

  1. На учебной VM прочитайте id и список сетевых слушателей ss -lnt.
  2. Для выбранного сервиса запишите, нужен ли доступ только с localhost.
  3. Проверьте вымышленный конфиг: пароль в Git, bind 0.0.0.0, общий admin — предложите отдельное исправление каждого риска.

Риски названы отдельно; не предлагается открывать все порты или раздавать админские права.

Почему секрет в приватном Git всё равно проблема?

Доступ получают люди, приложения, копии истории и логи; удаление строки не удаляет прежние коммиты.

Продолжить на русском и английском
  • Introduction to Linux EN ↗

    Навигация, процессы и службы. Курс заявлен бесплатным; практическая Linux-среда отдельно.

  • Linux Upskill Challenge EN ↗

    Первый день: вход и базовая диагностика. Открытые материалы; нужна своя учебная VM или сервер.

  • Linux Labs RU ↗

    Первый практикум раздела «Первые шаги». Браузерные VM; для запуска нужен вход через Google.

Куда пропало место

Локализуйте расход диска по показаниям учебной VM. Никакие команды на вашем компьютере не выполняются. Это вымышленный учебный сценарий.

1. Определите ресурс

/       38% used
/var   100% used
RAM     45% used
log: No space left on device

С чего начать?

2. Сравните наблюдения

/var/log/app.log: 8 GB
/var/cache: 100 MB
app.log растёт на 200 MB/min
повторяется одна ошибка запроса

Какой следующий вывод обоснован?

3. Проверьте исправление

Причина повторов исправлена в учебном приложении.
Согласованная ротация выполнена.
/var: 60% used

Какая проверка завершает разбор?