🧩 Гайд по инвентаризации и аудиту Linux-систем
📑 Содержание
- 1️⃣ Просмотр всех служб в системе
- 2️⃣ Пользователи, группы и статусы учётных записей
- 3️⃣ Список установленных пакетов
- 4️⃣ Информация о дистрибутиве и версии ОС
- 🧩 Дополнительные полезные команды
- 💾 Автоматизация аудита
- 📘 Итог
📋 Быстрая таблица команд
| Раздел | Команда | Назначение | Полезные опции |
|---|---|---|---|
| 1️⃣ Службы | systemctl list-unit-files |
Показать все юниты (службы, сокеты, таргеты и т.д.) | --type=service — только службы |
| 2️⃣ Пользователи | getent passwd + passwd -S + id |
Вывести пользователей, их группы и статус УЗ | Цветной вывод — через sed |
| 3️⃣ Пакеты (Debian/Ubuntu/Astra) | dpkg-query -l |
Список установленных пакетов | dpkg-query -L <pkg> — файлы пакета |
| 3️⃣ Пакеты (RedOS/Alt) | dnf list installed или rpm -qa |
Список установленных пакетов | grep <pkg> — фильтр по имени |
| 4️⃣ Информация о дистрибутиве | lsb_release -a, /etc/astra/*, /etc/redos-release |
Узнать версию ОС | cat /etc/os-release — универсальный способ |
⚙️ 1. Просмотр всех служб в системе
Показать список всех юнитов (служб, сокетов, целей, таймеров и пр.):
systemctl list-unit-files
🧠 Описание столбцов:
- UNIT FILE — имя файла юнита (
.service,.socket,.target, и др.) -
STATE — текущее состояние юнита:
enabled— включен, запускается при старте системыdisabled— выключенstatic— не может быть включен вручную, используется другими юнитамиmasked— полностью заблокирован (не может быть запущен)
📂 Сохранение в файл (удобно при массовом аудите):
HOSTNAME=$(hostname)
systemctl list-unit-files > /home/gis-audit/services_list_${HOSTNAME}
💡 Совет: Для вывода только активных служб:
systemctl list-units --type=service --state=running
👥 2. Пользователи, группы и статусы учётных записей
Показать всех пользователей, их группы и статус пароля:
getent passwd | cut -d: -f1 | xargs -n1 -I {} sh -c 'passwd -S {}; id {}'
🧠 Что делает команда:
getent passwd— список пользователейcut -d: -f1— оставить только именаpasswd -S— показывает состояние пароляid— выводит UID, GID и группы
🔒 Статусы:
L— учётная запись заблокированаP— активна, пароль установлен
🌈 Цветной вывод для удобства (на экране):
getent passwd | cut -d: -f1 | xargs -n1 -I {} sh -c \
'passwd -S {} | sed "s/ L / \x1b[31mL\x1b[0m /; s/ P / \x1b[32mP\x1b[0m /"; id {}'
📂 Сохранение в файл:
HOSTNAME=$(hostname)
getent passwd | cut -d: -f1 | xargs -n1 -I {} sh -c 'passwd -S {}; id {}' \
> /home/gis-audit/user_pass_group_active_${HOSTNAME}
💡 Совет: Вывести только активных пользователей:
getent passwd | cut -d: -f1 | xargs -I {} sh -c 'passwd -S {}' | grep " P "
📦 3. Список установленных пакетов
🐧 Debian / Ubuntu / Astra Linux
dpkg-query -l
📂 Сохранить в файл:
dpkg-query -l > /home/gis-audit/dpkg_list_${HOSTNAME}
🔍 Примеры:
dpkg-query -l nano # Проверить пакет
dpkg-query -l | grep ^ii # Только установленные
dpkg-query --status nano # Статус и конфигурация
dpkg-query -L nano # Файлы пакета
🔴 Red OS / ALT Linux / RHEL-подобные
dnf list installed
# или
yum list installed
# или
rpm -qa
🔍 Примеры:
rpm -qa | grep firefox
rpm -qi nano # Информация о пакете
rpm -ql nano # Список файлов пакета
📂 Сохранить в файл:
rpm -qa > /home/gis-audit/rpm_list_${HOSTNAME}
💡 Совет: Форматированный вывод:
dnf list installed | awk '{print $1, $2}' | column -t
🧭 4. Информация о дистрибутиве и версии ОС
🟢 Astra Linux
lsb_release -a
cat /etc/astra/build_version
cat /etc/astra_license
cat /var/log/astra-history.log
💡 Краткий вывод:
lsb_release -d
🔴 Red OS 7.3 / 8.0
cat /etc/redos-release
cat /etc/os-release
hostnamectl
uname -a
cat /etc/issue
🧩 Дополнительные полезные команды
| Цель | Команда | Комментарий |
|---|---|---|
| Проверить занятое место | df -h |
Использование дисков |
| Проверить использование памяти | free -h |
ОЗУ |
| Проверить загрузку CPU | top, htop |
Мониторинг процессов |
| Активные соединения | ss -tulpn |
Порты и PID |
| Время загрузки служб | systemd-analyze blame |
Что дольше всего стартует |
| Сетевые интерфейсы | ip a |
IP, MAC, статус |
💾 Автоматизация аудита
📦 Пример скрипта для массового аудита:
#!/bin/bash
HOSTNAME=$(hostname)
AUDIT_DIR="/home/gis-audit"
mkdir -p $AUDIT_DIR
echo "[*] Сбор информации с $HOSTNAME..."
systemctl list-unit-files > $AUDIT_DIR/services_list_${HOSTNAME}
getent passwd | cut -d: -f1 | xargs -n1 -I {} sh -c 'passwd -S {}; id {}' > $AUDIT_DIR/user_pass_group_active_${HOSTNAME}
dpkg-query -l > $AUDIT_DIR/dpkg_list_${HOSTNAME} 2>/dev/null || rpm -qa > $AUDIT_DIR/rpm_list_${HOSTNAME}
lsb_release -a > $AUDIT_DIR/os_info_${HOSTNAME} 2>/dev/null || cat /etc/os-release > $AUDIT_DIR/os_info_${HOSTNAME}
df -h > $AUDIT_DIR/disk_usage_${HOSTNAME}
free -h > $AUDIT_DIR/memory_usage_${HOSTNAME}
echo "[+] Аудит завершён. Результаты сохранены в ${AUDIT_DIR}"
📘 Итог
📗 Этот гайд подходит для:
- Быстрой проверки состояния системы
- Массового аудита серверов (через SSH)
- Сборки отчётов по безопасности и инвентаризации
💡 Совместим с:
- Astra Linux
- Red OS
- ALT Linux
- Ubuntu / Debian
- CentOS / RHEL