Respuestas:
Esto funcionará de manera razonablemente confiable si el paquete se instaló a través de dpkg
(incluido con apt install
). Consulte la respuesta de muru para obtener una lista de usuarios creados en la instalación predeterminada de Ubuntu y el paquete que los crea. Para esos usuarios, este método no producirá ningún resultado.
Puedes usar el comando:
grep -RlE '(adduser|useradd).*systemd' /var/lib/dpkg/info --include='*inst' | sed -r 's:.*/(.*)\.[-a-z]+inst:\1:'
reemplácelo <user>
con el nombre del usuario que le interesa, por ejemplo,systemd
Esto busca las secuencias de comandos preinst
y postinst
de todos los paquetes conocidos dpkg
para el comando adduser
o useradd
y el usuario en cuestión, para ver qué paquete es responsable de crear ese usuario. El resultado se canaliza a sed, por lo que solo devuelve el nombre del paquete en lugar del nombre completo del archivo de script.
grep -RlE
buscar de forma recursiva e imprimir solo los nombres de archivos que contienen coincidencias, usar expresiones regulares extendidas'(adduser|useradd).*<user>' /var/lib/dpkg/info --include='*inst'
busque el comando adduser
o useradd
y el usuario que desea encontrar en la misma línea ( .*
coincidirá con cualquier carácter entre ellos, capturando cualquier opción de comando) en el directorio donde dpkg
almacena los scripts, en archivos cuyos nombres terminan coninst
sed -r 's:.*/(.*)\.[-a-z]+inst:\1:'
quitar todo antes e incluir el último /
en la ruta completa y la extensión .preinst
o.postinst
Gracias a @muru por sugerir una forma de búsqueda más ordenada y rápida que usar find
aquí :)
grep -Rl 'adduser.*<user>' /var/lib/dpkg/info --include='*inst'
para simplificar la find -exec grep
cosa.
basename -s
aceptar comodines / expresiones regulares ...) para que pueda cortar los sufijos pre Y post inst (pero no encontré ningún script de preinst con adduser, así que encogerse de hombros) )
postinst
, por lo que es poco probable que encuentre alguno que use preinst
(pero supongo que podría existir un caso raro).
Hay una excepción importante para los adduser
usuarios y grupos habituales añadidos aquí: los que vienen con Ubuntu por defecto. Estos son proporcionados por el base-passwd
paquete. Se proporciona (y se describe) una lista de usuarios y grupos agregados por este paquete /usr/share/doc/base-passwd/users-and-groups.{html,txt.gz}
. La lista es:
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
El paquete README ( /usr/share/doc/base-passwd/README
) también enumera algunos usuarios con UID en el rango 60000-64999, y establece que estos son creados por los respectivos paquetes.
Ver también:
base-passwd
14.04 : puede ver la lista de usuarios y grupos en los *.master
archivos.
preinst
, ya que hay algunos paquetes que crean usuarios en ese script. Pero tengo la idea, así que la aceptaré.