Логотип

Как отслеживать активность пользователей Linux с помощью инструментов psacct и acct

Как отслеживать активность пользователей Linux с помощью инструментов psacct и acct

Если вы управляете сервером Linux, особенно если на нём работает несколько пользователей, вам нужно знать, что происходит в вашей системе. Например, кто вошёл в систему? Какие команды они выполняют? Сколько времени занимает обработка данных? Это не просто вопросы из любопытства. Они важны для обеспечения безопасности, устранения неполадок и управления ресурсами.

psacct и acct — это утилиты с открытым исходным кодом для мониторинга действий пользователей в системе Linux. Эти утилиты работают в фоновом режиме и отслеживают действия каждого пользователя в вашей системе, а также потребление ресурсов.

Мы лично использовали эти инструменты в нашей работе. У нас есть команда разработчиков, которая постоянно работает с серверами. Так что это лучшие утилиты для мониторинга серверов.

Эти программы позволяют отслеживать действия пользователей, какие команды они выполняют, сколько ресурсов они потребляют и как долго пользователи активны в системе. Ещё одна полезная функция — отображение общего объёма ресурсов, потребляемых такими службами, как ApacheMySQLFTPSSH и т. д.

Мы считаем, что это одна из лучших и наиболее необходимых утилит для каждого системного администратора Linux/Unix, который хочет отслеживать действия пользователей на своих серверах/системах.

 

Что на самом деле делают эти инструменты

Пакет psacct или acct предоставляет несколько функций для мониторинга активности процессов:

  • Команда ac выводит статистику входов и выходов пользователей (время подключения) в часах.
  • Команда lastcomm выводит информацию о ранее выполненных командах пользователя.
  • Команда accton используются для включения/отключения процесса учета.
  • Команда sa выводит сводную информацию о ранее выполненных командах.
  • Команды last и lastb отображают список последних вошедших в систему пользователей.

 

Установка пакетов psacct или acct в Linux

psacct и acct — это похожие пакеты, и разница между ними невелика, но пакет psacct доступен только для дистрибутивов на основе rpm, таких как RHELCentOS и Fedora, а пакет acct — для дистрибутивов на основе Debian, таких как Ubuntu и Linux Mint.

Чтобы установить пакет psacct в дистрибутивах на основе rpm, выполните следующую команду yum или dnf:

sudo yum install psacct
# Или в более новых системах
sudo dnf install psacct

 

Читать  Как объявить пустой массив в Bash?

Чтобы установить пакет acct с помощью команды apt в дистрибутивах на базе Debian:

sudo apt install acct

 

В других дистрибутивах Linux его можно установить следующим образом:

sudo apk add psacct [в Alpine Linux]
sudo pacman -S acct [в Arch Linux]
sudo zypper install acct [в OpenSUSE]

 

Запуск службы psacct или acct

По умолчанию служба psacct отключена, и в дистрибутивах на базе RHEL ее необходимо запускать вручную. Чтобы проверить состояние службы, используйте следующую команду:

sudo systemctl status psacct

 

Вы видите, что статус отключен, поэтому давайте запустим его вручную с помощью следующих команд, которые создадут файл /var/account/pacct:

sudo systemctl start psacct
sudo systemctl enable psacct
sudo systemctl status psacct

 

В дистрибутивах на базе Debian служба запускается автоматически; вам не нужно запускать ее вручную.

 

Отображение статистики времени подключения пользователей

Команда ac без указания аргументов отобразит общую статистику времени подключения в часах на основе входов и выходов пользователей из текущего файла wtmp:

total     11299.15

 

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

 

Отображение статистики пользователей Linux по дням

С помощью команды "ac -d" можно вывести общее время входа в систему в часах по дням:

ac -d

 

Обратите внимание на всплески активности 31 октября и 3 ноября. Если вы видите подобные необычные закономерности, стоит выяснить, что вызвало повышенную активность.

 

Отображение общего времени входа в систему всех пользователей Linux

С помощью команды «ac -p"» можно вывести общее время входа в систему каждого пользователя Linux в часах:

ac -p

 

Пример вывода:

rockylinux 425,61
andreyex 702,29
root 10171,54
всего 11299,44

 

Здесь видно, что root входил в систему значительно чаще, чем другие пользователи. Это может быть нормально для вашей среды, а может указывать на то, что вам нужно делегировать больше задач пользователям без прав root.

Читать  Настройка визуального мониторинга данных временных рядов InfluxDB в Grafana

 

Отображение времени входа пользователя в Linux

Чтобы получить общее время входа пользователя «ravi» в систему в часах, используйте следующую команду:

ac ravi

total      110.31

 

Отображение времени входа пользователя в систему по дням

Следующая команда выведет общее время входа пользователя «ravi» в систему по дням в часах:

ac -d ravi

 

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

ac -d ravi | tail -n 31

 

Вывести все команды Linux, выполненные пользователями

Команда "sa" используется для вывода сводки команд, выполненных пользователями:

sa

 

Объяснение результатов выполнения указанной выше команды:

  • 0,04re — «реальное время» в минутах по настенным часам.
  • 0,04cp — сумма системного и пользовательского времени в минутах процессорного времени.
  • 6546k — усреднённое использование ядер процессорного времени, то есть 1000 единиц.
  • fail2ban-client — имя команды.

 

Звёздочка (*) после некоторых команд указывает на то, что команда была запущена с правами суперпользователя.

 

Печать информации о пользователе Linux

Чтобы получить информацию об отдельном пользователе, используйте параметры -u:

sa -u

 

Здесь показаны все команды, которые выполнял конкретный пользователь, а также ресурсы, которые потребляла каждая команда.

 

Печать количества процессов в Linux

Эта команда выводит общее количество процессов и время, затраченное на обработку процессором. Если вы видите, что эти показатели продолжают расти, значит, пришло время изучить систему и выяснить, что происходит:

sa -m

 

Печать и сортировка по проценту использования

Команда "sa -c" отображает самый высокий процент пользователей:

sa -c

 

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

 

Список последних выполненных команд пользователя

Команда 'lastcomm' используется для поиска и отображения информации о ранее выполненных командах пользователя. Вы также можете искать команды по отдельным именам пользователей. Например, мы видим команды пользователя (ravi):

lastcomm andrey

 

Читать  Как очистить кэш оперативной памяти, буферы и раздел подкачки в Linux без перезагрузки

Флаг "F" указывает на то, что команда была запущена, но не выполнена (обычно это инициализация оболочки). Это нормальное поведение, но его стоит учитывать при просмотре журналов.

Вы также можете ограничить вывод, чтобы отображались только самые последние команды:

lastcomm tecmint | head -n 20

 

Поиск журналов команд

С помощью команды lastcomm вы сможете просмотреть, как использовалась каждая команда по отдельности:

lastcomm ls

 

Это особенно полезно, когда нужно проверить, кто выполнял определённые команды, например, если вы хотите узнать, кто обращался к конфиденциальным каталогам.

lastcomm cat | grep -i "shadow\|passwd"

 

Практические примеры использования

Вот несколько реальных ситуаций, в которых эти инструменты оказываются незаменимыми:

  • Отслеживание ресурсоёмких процессов: если ваш сервер работает медленно, используйте sa -c для определения команд, которые потребляют больше всего процессорного времени.
  • Аудит безопасности: используйте lastcomm для просмотра команд, которые были выполнены до инцидента, связанного с безопасностью. Это позволяет создать журнал аудита, который сложнее подделать, чем историю команд.
  • Отчёты о платежах и использовании: в средах виртуального хостинга ac -p предоставляет конкретные данные об активности пользователей для целей выставления счетов.
  • Устранение неполадок, связанных с пользователями: если пользователь говорит «Я ничего не делал», вы можете вежливо уточнить, какие команды были выполнены на самом деле.

 

Управление файлами журналов

Эти инструменты создают журналы, которые со временем могут разрастаться. Основной файл учета находится по адресу /var/account/pacct. Вы можете ротировать этот файл с помощью logrotate, создав файл конфигурации по адресу /etc/logrotate.d/psacct:

/var/account/pacct {
    monthly
    rotate 12
    compress
    notifempty
    create 0600 root root
}

 

Дополнительную информацию и инструкции по использованию можно найти на страницах руководства к этим инструментам:

man ac
man sa
man lastcomm
man accton

 

В этой статьи содержатся дополнительные параметры и флаги, которые помогут вам настроить мониторинг в соответствии с вашими потребностями.

Редактор: AndreyEx

Рейтинг: 5 (1 голос)
Если статья понравилась, то поделитесь ей в социальных сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Загрузка...

Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала