LINUX.ORG.RU

установка/удаление приложений. мониторинг

 , , ,


0

1

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

В винде хватало мониторить изменение веток реестра, а как поступить тут?

также на пк идет отправка всех логов на сервер, с помощью rsyslog, но там что-то полезной информации мало.

точный код не нужен, хватит и советов, спасибо.

Что значит «установка приложений»? Если я скачал с vasyan.narod.ru скрипт enlarge_penis.sh и положил его себе в $HOME/bin, я поставил приложение для увеличения пениса, или нет?

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от DELIRIUM

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

follownow
() автор топика

Анальный зонд делаешь?

rupert ★★★★★
()

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

Laz ★★★★★
()

если это ubuntu, то смотри /var/log/apt

x905 ★★★★★
()

Всем спасибо за ответы. Думаю, как и подсказали, делать с помощью парсинга /var/log/dpkg.log.

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

Я так понимаю нужно делать заранее список всех установленных программ, а потом его сверять с текущим, т.е, если просканировать все файлы dpkg.log, dpkg.log1 и т.д, то можно собрать весь список? Как быть, если какие-то из них удалены.

Получается, с точки зрения C++, тут вся работа основана на парсинге файлов, т.е нет никаких других методов получения всего этого?

И вообще использовать терминал в своем проекте..это лоховство?, т.е, например получать последнюю строку файла с помощью терминала и парсить его, а не читать файл с конца на C++.

follownow
() автор топика
Ответ на: комментарий от anonymous

база dpkg, это файл /var/lib/dpkg/status?

а как его грамотней парсить, прогонять средствами c++, или отправлять команду в терминал, типа такой

dpkg-query --show -f '${source:Package} ${source:Version}\n' | sort -u
и потом парсить этот результат?

follownow
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.