Se sospecha que algunos paquetes tienen scripts ejecutados en el momento de la instalación que crean cuentas de usuario /etc/passwd
. ¿Cómo puedo verificar qué paquete creó un usuario específico?
fuente
Se sospecha que algunos paquetes tienen scripts ejecutados en el momento de la instalación que crean cuentas de usuario /etc/passwd
. ¿Cómo puedo verificar qué paquete creó un usuario específico?
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í :)
preinst
, ya que hay algunos paquetes que crean usuarios en ese script. Pero tengo la idea, así que la aceptaré.grep -Rl 'adduser.*<user>' /var/lib/dpkg/info --include='*inst'
para simplificar lafind -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 usepreinst
(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 elbase-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:Usuarios (generalmente con grupos correspondientes)
Grupos (sin usuarios correspondientes)
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.fuente