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 preinsty postinstde todos los paquetes conocidos dpkgpara el comando addusero useraddy 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 addusero useraddy 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 dpkgalmacena los scripts, en archivos cuyos nombres terminan coninstsed -r 's:.*/(.*)\.[-a-z]+inst:\1:'quitar todo antes e incluir el último /en la ruta completa y la extensión .preinsto.postinstGracias a @muru por sugerir una forma de búsqueda más ordenada y rápida que usar findaquí :)
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 grepcosa.basename -saceptar 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
adduserusuarios y grupos habituales añadidos aquí: los que vienen con Ubuntu por defecto. Estos son proporcionados por elbase-passwdpaquete. 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-passwd14.04 : puede ver la lista de usuarios y grupos en los*.masterarchivos.fuente