Как проверить, какой пакет создал пользователя?

Подозревается, что некоторым пакетам выполняли сценарии во время установки, которые создают учетные записи пользователей в /etc/passwd. Как я могу проверить, какой пакет создал определенного пользователя?

16
задан 5 December 2016 в 06:43

2 ответа

Это будет работать достаточно надежно, если пакет был установлен с помощью dpkg (в том числе с помощью apt install ). См. ответ Муру для получения списка пользователей, созданных при установке Ubuntu по умолчанию, и пакета, который их создает. Для таких пользователей этот метод не выдаст никаких результатов.

Вы можете использовать команду:

grep -RlE '(adduser|useradd).*systemd' /var/lib/dpkg/info --include='*inst' | sed -r 's:.*/(.*)\.[-a-z]+inst:\1:'

заменить на имя интересующего вас пользователя, например, systemd

Выполняет поиск скриптов preinst и postinst всех пакетов, известных dpkg , для adduser или useradd и соответствующем пользователю, чтобы узнать, какой пакет отвечает за создание этого пользователя.Результат передается в sed, поэтому он возвращает только имя самого пакета вместо полного имени файла сценария.

Explanation

  • grep -RlE выполнять рекурсивный поиск и выводить только имена файлов, содержащих совпадения, используйте расширенные регулярные выражения
  • '(adduser | useradd). * ' / var / lib / dpkg / info --include = '* inst' поиск adduser или ] useradd и пользователя, которого вы хотите найти в той же строке (. * будет сопоставлять любые символы между ними, перехватывая любые параметры команды) в каталоге, где хранится dpkg скрипты в файлах, имена которых заканчиваются на inst
  • sed -r 's:. * / (. *) \. [- az] + inst: \ 1:' удалить все до и включая последний / в полном пути и .preinst или .postinst extension

Спасибо @muru за предложение более аккуратного и быстрого способа поиска, чем используя найти [1110872 5] здесь :)

17
ответ дан 23 November 2019 в 02:54

Здесь есть важное исключение из обычных adduser -добавленных пользователей и групп: тех, которые по умолчанию поставляются с Ubuntu. Они предоставляются пакетом base-passwd . Список пользователей и групп, добавленных этим пакетом, приведен (и описан) в / usr / share / doc / base-passwd / users-and-groups. {Html, txt.gz} . Список следующий:

Пользователи (обычно с соответствующими группами)

root    man     majordom    irc         gdm
daemon  lp      postgres    gnats       saned
bin     mail    www-data    nobody      klog
sys     news    backup      messagebus  syslog
sync    uucp    operator    postfix
games   proxy   list        haldaemon

Группы (без соответствующих пользователей)

adm     fax     audio       staff       sshd
tty     voice   src         users       fetchmail
disk    cdrom   shadow      lpadmin     cupsys
kmem    floppy  utmp        sasl        nogroup
dialout tape    video       scanner
dip     sudo    plugdev     ssh

Пакет README ( / usr / share / doc / base-passwd / README ) также перечисляет некоторых пользователей с UID в диапазоне 60000-64999 и заявляет, что они созданы соответствующими пакетами.

Также см .:

16
ответ дан 23 November 2019 в 02:54

Другие вопросы по тегам:

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