web-dev-qa-db-fra.com

Comment vérifier quel paquet a créé un utilisateur?

On soupçonne que certains scripts ont des scripts exécutés au moment de l'installation qui créent des comptes d'utilisateurs dans /etc/passwd. Comment puis-je vérifier quel paquet a créé un utilisateur spécifique?

14
Cyker

Cela fonctionnera de manière raisonnablement fiable si le paquet a été installé via dpkg (y compris avec apt install). Voir réponse de mur pour la liste des utilisateurs créés dans l'installation par défaut d'Ubuntu et le paquet qui les crée. Pour ces utilisateurs, cette méthode ne produira aucune sortie.

Vous pouvez utiliser la commande:

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

remplacez <user> par le nom de l'utilisateur qui vous intéresse, par exemple, systemd

Ceci recherche les scripts preinst_ et postinst de tous les packages connus de dpkg à la commande adduser ou useradd et à l'utilisateur en question, afin de voir quel package est responsable de la création de cet utilisateur. Le résultat est redirigé vers sed, de sorte qu'il renvoie uniquement le nom du package lui-même au lieu du nom complet du fichier de script.

Explication

  • grep -RlE recherche de manière récursive et n'imprime que les noms de fichiers contenant des correspondances, utilise des expressions régulières étendues
  • '(adduser|useradd).*<user>' /var/lib/dpkg/info --include='*inst' recherche la commande adduser ou useradd et l'utilisateur que vous souhaitez rechercher sur la même ligne (.* correspondra à tous les caractères qui les séparent, en prenant toutes les options de commande) dans le répertoire où dpkg stocke les scripts, dans les fichiers dont le nom se termine par inst.
  • sed -r 's:.*/(.*)\.[-a-z]+inst:\1:' supprime tout ce qui précède et y compris le dernier / dans le chemin complet et l'extension .preinst ou .postinst

Merci à @muru d’avoir suggéré un moyen de recherche plus simple et plus rapide que d’utiliser find ici :)

16
Zanna

Il existe une exception importante aux utilisateurs et groupes adduser- habituellement ajoutés: ceux fournis avec Ubuntu par défaut. Ceux-ci sont fournis par le paquet base-passwd. Une liste des utilisateurs et des groupes ajoutés par ce paquet est fournie (et décrite) dans /usr/share/doc/base-passwd/users-and-groups.{html,txt.gz}. La liste est:

Utilisateurs (généralement avec les groupes correspondants)

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

Groupes (sans utilisateurs correspondants)

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

Le package README (/usr/share/doc/base-passwd/README) répertorie également certains utilisateurs dont les UID sont compris entre 60000 et 64999 et indiquent qu'ils sont créés par les packages respectifs.

Regarde aussi:

15
muru