Откуда функция учета процессов извлекает данные?

Откуда функция учета процессов извлекает данные?

Я недавно обнаружилфункция учета процессов в системах Unix. По сути, это, по-видимому, устаревшая система учета использования ресурсов, которая просто никогда не удалялась.

С незапамятных времен (фактически с тех времен, когда людям приходилось платить реальные деньги за использованный ими компьютерный цикл) в Unix и его клонах была встроена система Process Accounting (acct). Она позволяла системным администраторам точно знать, что делают их пользователи, и выставлять им счета. Возможности acct существуют в большинстве систем Unix и Linux и по сей день.- @Маженко

С точки зрения кибербезопасности это довольно интересно, поскольку пользователи могут удалять историю bash, и (помимо этого) по умолчанию (или я так думал) истории для команд оболочки Born нет.

При выполнении:

sudo apt-get install acct
sudo /etc/init.d/acct start
sudo lastcomm

...и многие другие связанные команды и параметры, мы можем получить записи, такие как:

mandb             F    man      pts/4      0.00 secs Mon Dec  6 13:33
mandb             F    man      pts/4      0.00 secs Mon Dec  6 13:33
acct.postinst          root     pts/4      0.00 secs Mon Dec  6 13:33
systemctl              root     pts/4      0.00 secs Mon Dec  6 13:33
systemd-tty-ask  S     root     pts/4      0.00 secs Mon Dec  6 13:33
accton           S     root     __         0.00 secs Mon Dec  6 13:33

Что в основном является мощной, обширной историей оболочек, включающей все типы оболочек. Но у меня возникли проблемы с изучением того, как это работает. Где находятся данные, которые эта команда извлекает? Я пытаюсь узнать больше о том, насколько легко злоумышленник может получить доступ к этим данным и удалить их, или где мы можем получить к ним доступ, чтобы сделать резервную копию.

решение1

аккт(5), или acct - файл учета процесса, говорит следующее:

Если ядро ​​собрано с включенной опцией учета процессов (CONFIG_BSD_PROCESS_ACCT), то вызов аккт(2)начинает учет процесса, например:

acct("/var/log/pacct");

Когда включен учет процессов, ядро ​​записывает запись в файл учета при завершении каждого процесса в системе. Эта запись содержит информацию о завершенном процессе и определяется в <sys/acct.h>.

Типичное местоположение файла по умолчанию — /var/log/account/pacct, где будут сохранены данные.

К сожалению, этот файл не является простым текстовым файлом, поэтому не пытайтесь просматривать его с помощью команд moreили . Вместо этого используйтеtailдамп-аккаунт команду для его просмотра.

решение2

Нашел.

/var/log/account/pacct

Связанный контент