Задать вопрос

Проверка, инвентаризация и аудит Linux машин, как можно узнать про установленный софт?

появилась потребность в проверке Linux тачек. На данный момент владельцы этиХ машин добавили мой публичный ssh ключ, я к ним подключаюсь, имею рут права, несколькими командами могу вычленить железо, которое там стоит. Однако вот с софтом сложнее, как можно выгрузить софт. Ведь юзер мог ставить и через snap и еще каким-то образом
  • Вопрос задан
  • 778 просмотров
Подписаться 5 Средний 4 комментария
Пригласить эксперта
Ответы на вопрос 5
Vindicar
@Vindicar
RTFM!
Составить список популярных пакетных менеджеров и команд их вызова. Разные дистры используют разные менджеры (apt и yum встречаются чаще всего, ЕМНИП).
Для каждого менеджера попытаться получить список установленных пакетов. Также иметь ввиду, что данного менеджера может и не быть на данной машине.
Свести результаты в один список.

Например, для дистров, которые используют apt (Debian и его потомки), это либо apt-mark showmanual, либо apt list --installed | grep -v 'automatic' (чтобы исключить пакеты, которые были поставлены как зависимости для других). Но и там будут пакеты, поставленные при установке ОС.

Если хочется ну прямо супер детальный анализ... найти все файлы, помеченные как исполняемые. Потом узнать список установленных пакетов. Для каждого пакета узнать список установленных файлов. Исключить эти файлы из числа найденных. То, что останется, было установлено помимо менеджера пакетов и потому заслуживает более пристального внимания. Но сам понимаешь, это долго и жорко, ну и всё равно может не дать 100% покрытия. Грубо говоря, если некий файл script.sh не помечен как исполняемый, его всё равно можно запустить через bash script.sh.

Я думаю, стоит обращать внимание, если в списке установленных пакетов есть wine, mono или виртуальные машины. В остальном... вряд ли что-то найдётся.
Ответ написан
Комментировать
Adamos
@Adamos
Платный софт перебиранием /usr/bin искать бесполезно.
Например, IDE от JetBrains (как образец платного софта) - это тупо папка, которая может лежать где угодно, программа запускается лежащим в этой папке скриптом.
Может быть, имеет смысл искать не установленный софт, а - запускавшийся? Получая список файлов и папок в "хомяке" пользователя (в частности, ~/.config, ~/.local и т.п.), где уж платные-то программы непременно создадут свои записи.
Ну, и с Wine, конечно, отдельная песня...
Ответ написан
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Юзер мог ставить софт сотней тыщ способов - через штатный менеджер пакетов, через альтернативные менеджеры, сборкой вручную, тупым раздиранием пакетов на файлы и их раскладкой и даже просто копированием с соседней машины (последние два - это для особо жестких извращенцев, но иногда, когда что-то не работает - приходится)
Ответ написан
NeiroNx
@NeiroNx
Программист
вообще я думаю будет достаточно взять список директорий /usr/share/ как наиболее стандартный список софта. А тот софт что валяется по папкам пользователя(или в других укромных местах) - мы считать не будем.
Ответ написан
Griboks
@Griboks
Просто просканируйте диски на исполняемые файлы на каждой машине.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы