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 preinst
et postinst
de tous les packages connus dpkg
pour la commande adduser
ou useradd
et 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 adduser
ou useradd
et 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ù dpkg
stocke les scripts, dans des fichiers dont le nom se termine parinst
sed -r 's:.*/(.*)\.[-a-z]+inst:\1:'
supprimer tout avant et y compris le dernier /
dans le chemin complet et l' extension .preinst
ou.postinst
Merci à @muru d'avoir proposé une méthode de recherche plus nette et plus rapide que d'utiliser find
ici :)
grep -Rl 'adduser.*<user>' /var/lib/dpkg/info --include='*inst'
pour simplifier la find -exec grep
chose.
basename -s
d'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 adduser
utilisateurs et groupes habituels ajoutés ici: ceux qui viennent avec Ubuntu par défaut. Ceux-ci sont fournis par le base-passwd
package. 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-passwd
pour 14.04 - vous pouvez voir la liste des utilisateurs et des groupes dans les *.master
fichiers.
preinst
car il existe des packages créant des utilisateurs dans ce script. Mais j'ai compris l'idée et je l'accepterai.