🧩 Гайд по инвентаризации и аудиту Linux-систем

Platform Category Tools


📑 Содержание


📋 Быстрая таблица команд

Раздел Команда Назначение Полезные опции
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

🧠 Описание столбцов:

📂 Сохранение в файл (удобно при массовом аудите):

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 | 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}"

📘 Итог

📗 Этот гайд подходит для:

💡 Совместим с: