Réponses:
Cela fonctionnera de manière raisonnablement fiable si le package a été installé via dpkg(y compris avec apt install). Voir la réponse de muru pour une liste des utilisateurs créés dans l'installation Ubuntu par défaut et le package 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:'
remplacer <user>par le nom de l'utilisateur qui vous intéresse, par exemple,systemd
Cela recherche les scripts preinstet postinstde tous les packages connus dpkgpour la commande adduserou useraddet l'utilisateur en question, pour voir quel package est responsable de la création de cet utilisateur. Le résultat est redirigé vers sed afin qu'il ne renvoie que le nom du package lui-même au lieu du nom complet du fichier de script.
grep -RlE rechercher récursivement et imprimer uniquement les noms des fichiers contenant des correspondances, utiliser des expressions régulières étendues'(adduser|useradd).*<user>' /var/lib/dpkg/info --include='*inst'recherchez la commande adduserou useraddet l'utilisateur que vous souhaitez trouver sur la même ligne ( .*correspondra à tous les caractères entre eux, interceptant toutes les options de commande) dans le répertoire où dpkgstocke les scripts, dans des fichiers dont le nom se termine parinstsed -r 's:.*/(.*)\.[-a-z]+inst:\1:'supprimer tout avant et y compris le dernier /dans le chemin complet et l' extension .preinstou.postinstMerci à @muru d'avoir proposé une méthode de recherche plus nette et plus rapide que d'utiliser findici :)
grep -Rl 'adduser.*<user>' /var/lib/dpkg/info --include='*inst'pour simplifier la find -exec grepchose.
basename -sd'accepter les caractères génériques / regex ...) afin que je puisse le faire couper les suffixes pré ET post inst (mais je n'ai trouvé aucun script préinstalle avec adduser donc hausser les épaules) )
postinst, il est donc peu probable que vous en trouviez qui utilise preinst(mais je suppose que le cas rare pourrait exister).
Il y a une exception importante aux adduserutilisateurs et groupes habituels ajoutés ici: ceux qui viennent avec Ubuntu par défaut. Ceux-ci sont fournis par le base-passwdpackage. Une liste d'utilisateurs et de groupes ajoutés par ce package est donnée (et décrite) dans /usr/share/doc/base-passwd/users-and-groups.{html,txt.gz}. La liste est:
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
Le package README ( /usr/share/doc/base-passwd/README) répertorie également certains utilisateurs avec des UID dans la plage 60000-64999 et indique qu'ils sont créés par les packages respectifs.
Regarde aussi:
base-passwdpour 14.04 - vous pouvez voir la liste des utilisateurs et des groupes dans les *.masterfichiers.
preinstcar il existe des packages créant des utilisateurs dans ce script. Mais j'ai compris l'idée et je l'accepterai.