Mostrando las entradas para la consulta kill ordenadas por relevancia. Ordenar por fecha Mostrar todas las entradas
Mostrando las entradas para la consulta kill ordenadas por relevancia. Ordenar por fecha Mostrar todas las entradas

Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

E: No se pudo bloquear /var/lib/dpkg/lock-frontend - open (11: Recurso no disponible temporalmente)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

Alguna vez nos podemos encontrar con este mensaje al intentar instalar un paquete en nuestra distribución Linux. Esto es debido a que hemos realizado una instalación fallida, se ha apropiado de alguno de los archivos necesarios para ejecutar apt-get.
Vamos a averiguar que proceso ha secuestrado nuestros archivos utilizando el comando: lsof

lsof [PARÁMETROS] [ARCHIVO..]
En la invocación del comando lsof, se permite identificar que procesos están utilizando el o los archivos indicados.

Ejecutando este comando para averiguar quien nos tiene bloqueado el archivo que necesitamos para comenzar nuestro nuevo proceso de instalación.

sudo lsof /var/lib/dpkg/lock-frontend

Obtenemos dos informaciones un WARNING y el culpable:

lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
apt-get             15206 root    4uW  REG    8,2                     0 9962051 /var/lib/dpkg/lock-frontend


El usuario root intentó lanzar el comando apt-get y por alguna razón no termino con exito y bloqueo el archivo. De la información anterior nos quedamos con el PID, que es el identificador para matarlo

sudo kill -9 15206

Y con esto liberamos del secuestro los archivos necesarios que nos impedía continuar con nuestra tarea. En este caso la instalación de un nuevo paquete. 
 



 

Sherlock Linux distribución orientada a OSINT

 

Sherlock Linux ejecutándose en un portátil
Imagen obtenida de Sherlock Linux


Sherlock Linux es una distribución open source basada en Debian 64 bits, utiliza el entorno de escritorio XFCE y en su versiones para entornos virtuales se encuentran en español. Contiene todas las herramientas necesarias para la obtención de información en fuentes abiertas en una investigación OSINT.

OSINT es un anagrama en inglés open-source intelligence, en su traducción literal seria La inteligencia de fuentes abiertas. Básicamente seria recabar información de fuentes abiertas al público de por ejemplo una persona: nombre completo, redes sociales en las que publica, correo electrónico, dirección física etc... También se pueden realizar para estudios de mercado y/o investigación, como por ejemplo ciudades son más seguras en cuanto ataques terroristas perpetrados. Ello engloba una serie de técnicas o herramientas para rastrear de forma inteligente las distintas redes de información en Internet para recabar información clasificándola de forma ordenada.

Las técnicas o herramientas utilizadas en OSINT, entre otras, son muy importantes para la Ciberseguridad, puesto que para los ciberdelicuentes es la primera fase a la hora de realizar un ciberataques, a personas empresas e instituciones. Conocer que datos pululan por Internet sobre nosotros nos permite saber como ocultarnos, o como ofuscar ciertos datos comprometidos, como puede ser nuestra dirección o numero de teléfono personal.


La Cyber Kill Chain está formada por una secuencia de siete pasos, cada uno de los cuales supone una etapa del ataque:
Imagen obtenida de Incibe articulo Las 7 fases de un ciberataque. ¿Las conoces?


En la documentación se detallan las herramientas pre-instaladas y los marcadores  y extensiones agregados a los navegadores que se incluyen. Esta muy detallada y es una muy buena base de datos, que incluye enlaces web a las herramientas instaladas en la distribución.

Sherlock Linux se puede obtener por dos vías diferentes, descargando una máquina virtual (ova), se encuentran disponibles para virtualizadores VMware y Virtualbox, o una imagen (iso) con todo el software pre instalado o descargando el proyecto de GitHub de la distribución y ejecutar el script de instalación.


Características de versión virtualizada de Sherlock Linux

Captura de pantalla de Sherlock Linux virtualizado con VirtualBox

Comando top

NOMBRE

       top - muestra los procesos que más CPU consumen

DESCRIPCIÓN

       top proporciona una visión continuada de la actividad del procesador en

       tiempo real. Muestra un listado de las tareas  que  hacen  un  uso  más

       intensivo  de  la  CPU en el sistema, y puede proporcionar una interfaz

       interactiva para manipular procesos. 



Unas de las herramientas con las que podremos observar que procesos se encuentran corriendo en nuestro sistema, para saber cuales son los que más consumen y/o si alguno de ellos se encuentra en modo zombie, es top, que viene por defecto instalado en la mayoría de las distribuciones Linux.

Si observamos que algún proceso nos ralentiza el equipo o se en encuentra en estado zombie, podremos matar el proceso desde el mismo comando

Si no le indicamos nada, el comando refrescará los datos cada 3 segundos. Pero podremos cambiar el intervalo de refresco con la opción d y indicando el intervalo en segundos. En el siguente ejemplo cambiaremos el refresco a 5 segundos

top -d 5

¿Qué información podemos obtener con la utilización del comando top?

Administrador de tareas terminal en Linux

Para controlar el consumo, las tareas activas de nuestra instalación basada en Linux podremos utilizar el comando
top
Un administrador de tareas que nos mostrará:

Captura pantalla ejecución comando top


1. Tiempo de actividad y carga media del sistema
  • Hora actual.
  • Tiempo que ha estado el sistema encendido.
  • Número de usuarios que han iniciado sesión
  • Carga media en intervalos de 5, 10 y 15 minutos respectivamente.
2. Tareas
  • Running (Ejecutando): procesos ejecutándose actualmente o preparados para ejecutarse.
  • Sleeping (Hibernando): procesos dormidos esperando que ocurra algo (depende del proceso) para ejecutarse.
  • Stopped (Detenidos): ejecución de proceso detenida.
  • Zombie: el proceso no está siendo ejecutado. Estos procesos se quedan en este estado cuando el proceso que los ha iniciado muere (padre).
3. Estados de la CPU
  • us (usuario): tiempo de CPU de usuario.
  • sy (sistema): tiempo de CPU del kernel.
  • id (inactivo): tiempo de CPU en procesos inactivos.
  • wa (en espera): tiempo de CPU en procesos en espera.
  • hi (interrupciones de hardware): interrupciones de hardware.
  • si (interrupciones de software): tiempo de CPU en interrupciones de software.
4. Memoria física
  • Memoria total.
  • Memoria utilizada.
  • Memoria libre.
  • Memoria utilizada por buffer.
5. Memoria virtual
  • Memoria total.
  • Memoria usada.
  • Memoria libre.
  • Memoria en caché.
6. Tareas en ejecución
  • PID: es el identificador de proceso. Cada proceso tiene un identificador único. Este identificador es necesario para poder matar un proceso con el comando kill
  • USER (Usuario): usuario propietario del proceso.
  • PR: prioridad del proceso. Si pone RT es que se está ejecutando en tiempo real.
  • NI: asigna la prioridad. Si tiene un valor bajo (hasta -20) quiere decir que tiene más prioridad que otro con valor alto (hasta 19).
  • VIRT: cantidad de memoria virtual utilizada por el proceso.
  • RES: cantidad de memoria RAM física que utiliza el proceso.
  • SHR: memoria compartida.
  • S (ESTADO): estado del proceso.
  • %CPU: porcentaje de CPU utilizado desde la última actualización.
  • %MEM: porcentaje de memoria física utilizada por el proceso desde la última actualización.
  • TIME+ (HORA+): tiempo total de CPU que ha usado el proceso desde su inicio.
  • COMMAND: comando utilizado para iniciar el proceso.

Los directorio en Linux

Un anuncio decía que pasabamos mas de media vida buscando. En sistemas basado en Linux hay un sitio en cada carpeta y cada carpeta contiene:

  • / La raíz  del árbol de directorios. No determina ninguna unidad como podría ser en MS-DOS o Windows c: ó d: . Por que las distintas unidades se encuentran en otra carpeta y se acceden desde ella, pero siempre colgará de la raíz.
  • /bin contiene ficheros de comandos ejecutables utilizables por todos los usuarios. Aquí tenemos los programas que pueden lanzar todos los usuarios del sistema. Incluye también los binarios que permiten la ejecución de varias utilidades estándar de la terminal de Linux, concretamente cat, cd, cp, echo, grep, gzip, kill, ls, mv, rm, ping, su, ps, tar y vi.
  • /boot Este directorio incluye todos los ejecutables y archivos que son necesarios en el proceso de arranque del sistema, y que deberán ser utilizados antes que que el kernel empiece a dar las órdenes de ejecución de los diferentes módulos del sistema. Es también donde se encuentra el gestor de arranque GRUB.
  • /dev Este directorio incluye todos los dispositivos de almacenamiento, en forma de archivos, conectados al sistema, es decir, cualquier disco duro conectado, partición, memoria USB, o CDROM conectado al sistema y que el sistema pueda entender como un volumen lógico de almacenamiento.
  • /etc contiene los ficheros de configuración y utilidades para la administración. Tanto del sistema operativo con de las diversas aplicaciones que fuéramos instalando.
  • /home es un directorio donde se encuentran los directorios personales y los archivos particulares de configuración de los usuarios del sistema.
/home/user1/home/user2
  • /lib contiene librerías y compiladores del sistema. Contiene las bibliotecas necesarias para que se ejecuten los programas que tenemos en /bin y /sbin únicamente. En los sistemas operativos de 64 bits, además de /lib existe otro directorio denominado /lib64, referida a las bibliotecas para aplicaciones de 64 bits.
  • /media contiene todas las unidades físicas que tenemos montadas: discos duros, unidades de DVD, pen drives, etc.
  • /opt sirve para admitir ficheros nuevos creados tras la modificación del sistema. Es un punto de montaje desde el que se instalan los paquetes de aplicación adicionales. Podemos usarla para instalar aplicaciones que no vienen en los repositorios, por ejemplo, aquellas que compilamos a mano.
  • /proc Este directorio contiene información de los procesos y aplicaciones que se están ejecutando en un momento determinado en el sistema, pero realmente no guarda nada como tal, ya que lo que almacena son archivos virtuales, por lo que el contenido de este directorio es nulo. Básicamente son listas de eventos del sistema operativo que se generan en el momento de acceder a ellos, y que no existen dentro del directorio como tales. No deberíamos modificar el contenido de este directorio.
  • /sbin es para ejecutables de uso exclusivo por el root tales como el arranque, tareas de restauración, reparación, etc.. Son los necesarios para arrancar y montar el directorio /usr.
  • srv Sirve para almacenar archivos y directorios relativos a servidores que puedas tener instalados dentro de tu sistema, ya sea un servidor web www, un servidor FTP, CVS, etc.
Así, por ejemplo, en el caso de tener instalado un servidor web, sería buena idea tener el directorio web público dentro de /srv, tal como así:
/srv/www
  • /tmp es donde se almacenan los archivos temporales.
  • /usr contiene utilidades y programas generales de usuario:
    • /usr/bin contiene programas de uso general.
    • /usr/share contiene archivos compartibles, independientes de la arquitectura.
      • /usr/share/doc contiene cierta documentación del sistema.
      • /usr/share/man contiene los manuales.
    • /usr/etc contiene archivos de configuración de uso global.
    • /usr/include contiene las cabeceras de C y C++.
    • /usr/lib contiene las bibliotecas de nuestros programas.
    • /usr/sbin contiene los programas de administración del sistema.
    • /usr/src contiene los códigos fuente de nuestros programas.
  • /var contiene ficheros para el administrador. Este directorio contiene información variable, como registros, datos de los servidores, etc.
Más artículos relacionados Los directorios de Linux II