Как узнать, к какому пакету принадлежит пользователь?

В дистрибутивах Linux некоторые пакеты создают учетные записи пользователей.

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

Я хочу знать специально для Fedora и Ubuntu, но ответы на другие дистрибутивы приветствуются.

4 Solutions collect form web for “Как узнать, к какому пакету принадлежит пользователь?”

В системах на базе Debian (включая Ubuntu) пакеты создают пользователей, используя скрипты- postinst , обычно postinst . Поэтому одним способом может быть grep через эти скрипты:

 grep -R --include='*.postinst' -e useradd -e adduser /var/lib/dpkg/info/ 

Это предполагает, конечно, что postinst скрипт не был удален (вручную или потому, что вы удалили соответствующий пакет).


Политика Debian, похоже, благоприятствует postinst :

[Y] ou должен организовать ваш пакет для создания пользователя или группы при необходимости с помощью adduser в preinst или postinst (опять же, последнее предпочтительнее, если это возможно).

Поддерживающий пакет может также использовать preinst , если adduser является adduser .

Эта политика также ведет нас к другому источнику счетов: пакет base-passwd , как указано в предыдущем абзаце:

Если вам нужен статически выделенный идентификатор, вы должны запросить идентификатор пользователя или группы из base-passwd и не должны освобождать пакет до тех пор, пока вам не будет присвоен его. После того, как вы были выделены, вы должны либо сделать пакет зависимым от версии пакета base-passwd с идентификатором, присутствующим в /etc/passwd либо /etc/group , или организовать для вашего пакета создание самого пользователя или группы с помощью правильный идентификатор (с помощью adduser ) в его preinst или postinst . (Выполнение этого в postinst должно быть предпочтительным, если это возможно, в противном случае для пакета adduser потребуется предварительная зависимость).

Документация base-passwd ( /usr/share/doc/base-passwd/users-and-groups.txt.gz или /usr/share/doc/base-passwd/users-and-groups.html ) гласит:

 The Debian base-passwd package contains the master versions of /etc/passwd and /etc/group. The update-passwd tool keeps the entries in these master files in sync on all Debian systems. They comprise only "global static" ids: that is, those which are reserved globally for the benefit of packages which need to include files owned by those users or groups, or need the ids compiled into binaries. и The Debian base-passwd package contains the master versions of /etc/passwd and /etc/group. The update-passwd tool keeps the entries in these master files in sync on all Debian systems. They comprise only "global static" ids: that is, those which are reserved globally for the benefit of packages which need to include files owned by those users or groups, or need the ids compiled into binaries. 

Включены пользователи / группы (вышли из /usr/share/doc/base-passwd/users-and-groups.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 и указано, что они созданы соответствующими пакетами.

В AFAIK нет встроенной функции диспетчера пакетов, которая создает (или удаляет) тех функциональных / системных пользователей, но это делается в пользовательских разделах сценария предварительной или последующей установки в пакетах RPM.

Как правило, пакет RPM будет создавать и запрашивать право собственности на домашний каталог этих пользователей, например, пакет httpd создает пользовательский apache, а домашний каталог пользователя apache принадлежит пакет httpd, позволяя обходной способ поиска пакета:

 rpm -qf /var/www 

Вы можете проверить, действительно ли пакет httpd мог создать пользователя apache:

 rpm -q --scripts httpd 

Я использую Gentoo, поэтому я бы извлек 5-е поле / etc / passwd, чтобы найти информацию:

 cat /etc/passwd | grep cron | gawk -F: '{print $5}' 

добавлено portage для cronbase

Portage – это система управления пакетами для Gentoo. Таким образом, счет cron создается portage для пакета cronbase.

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

Большинство пакетов, создающих пользователей, будут создавать домашние каталоги пользователей за пределами дома, и чаще всего их домашние каталоги будут частью пакета. В таких случаях вы можете использовать rpm -qf таких домашних каталогов пользователей и узнать об этом пакете.

Пользователь ntp

 [root@secapp01 ~]# grep ntp /etc/passwd ntp:x:38:38::/etc/ntp:/sbin/nologin [root@secapp01 ~]# rpm -qf /etc/ntp ntpdate-4.2.6p5-1.el6.x86_64 и [root@secapp01 ~]# grep ntp /etc/passwd ntp:x:38:38::/etc/ntp:/sbin/nologin [root@secapp01 ~]# rpm -qf /etc/ntp ntpdate-4.2.6p5-1.el6.x86_64 

Пользовательский postfix

 [root@secapp01 ~]# grep postfix /etc/passwd postfix:x:89:89::/var/spool/postfix:/sbin/nologin [root@secapp01 ~]# rpm -qf /var/spool/postfix postfix-2.6.6-6.el6_5.x86_64 
  • Как получить имя старого пакета?
  • Как заменить один пакет другим с помощью yum?
  • Конфликты зависимостей MySQL
  • Каковы плюсы и минусы deb vs. rpm?
  • Могу ли я создать пакет centos 7 (el7) rpm на сервере centos 6 (el6)?
  • Как искать пакеты для установки на CentOS 5.5?
  • Есть ли для RedHat среда, похожая на pbuilder?
  • Что вызывает скрипт csh иногда не source /etc/csh.cshrc?
  • RPM и ISO, установка пакетов
  • как найти, какой репо делает один пакет RPM,
  • CentOS 5.11: yum устанавливает, но пакеты остаются пропавшими без вести
  • Linux и Unix - лучшая ОС в мире.