← Blog

Búsquedas en Linux

Búsqueda de archivos en Linux: locate/updatedb, which/whereis/type, find con expresiones y archivos ocultos.

Búsquedas en Linux

Operational Scope & Technical Objective

Localizar un archivo o binario en Linux tiene cuatro vías según el contexto: base de datos (updatedb + locate, indexación previa del filesystem), PATH (which/whereis/type, resolución de ejecutables), expresión directa (find, recorrido en vivo del filesystem con predicados) y patrón de nombre para archivos ocultos. locate es rápido pero depende de la frescura del índice; find es lento pero determinista y admite acciones (-exec).

High-Impact Syntax & Command Cheatsheet

Con base de datos (índice previo)

updatedb ; locate sbd.exe   # actualiza el índice y busca el nombre al instante
locate password | more      # archivos cuyo nombre contiene 'password'

locate busca por nombre completo o fragmento dentro del índice mlocate/plocate; requiere updatedb previo si el archivo es reciente.

Dentro del PATH

which sbd      # ruta del ejecutable si está en el PATH
whereis sbd    # binario, fuentes y manpage del programa
type -a sbd    # todas las ubicaciones del comando (builtins incluidos)

which consulta solo el PATH; whereis extiende a rutas estándar (bin, man, src) sin depender del PATH.

Búsqueda compleja con find

find / -name 'sbd*'                 # por nombre con glob
find / -name 'sbd*' -exec file {} \;   # ejecuta `file` sobre cada resultado

Predicados útiles: -iname (case-insensitive), -type f/d, -user/-group, -perm, -size, -mmin/-mtime, -exec/-delete, -maxdepth.

Archivos ocultos (dotfiles)

find / -type d -name ".*"   # directorios cuyo nombre empieza con '.'
find / -type f -iname ".*" -ls 2>/dev/null   # archivos ocultos con detalle

Real-World Offensive/Defensive Scenarios

  • Hunting de binarios útiles (ofensivo): which/whereis confirman la presencia de herramientas de pivoting o transferencia (nc, socat, curl, wget, python3) sin recorrer el filesystem:

    for b in nc ncat socat curl wget python3 perl ruby php; do which $b 2>/dev/null; done
    
  • Localización de secretos por nombre (ofensivo): locate combinado con patrones (*.conf, *.db, id_rsa, authorized_keys) encuentra archivos de interés en milisegundos; find -name cubre lo que aún no está indexado.

  • Índice como fuga de información (defensivo): locate revela nombres de archivos del sistema a usuarios no privilegiados; en entornos sensibles se restringe updatedb a rutas no críticas o se deshabilita mlocate/plocate para usuarios no root.