Está en la página 1de 171

Jose Manuel Ayala Wilson

Linux
VERSION 1.7 JULIO DE 2021
JOSE MANUEL AYALA WILSON
Jose Manuel Ayala Wilson

INTRODUCCION
Jose Manuel Ayala Wilson

ARQUITECTURA DEL ORDENADOR (1)


• La arquitectura en tecnología se refiere
a como están diseñados y construidos
los ordenadores
• Un ordenador es un dispositivo
electrónico de procesamiento de
información que básicamente tiene:
• CPU (Central Processing Unit):
cerebro electrónico capaz de
procesar información en formato
binario mediante operaciones lógicas
y matemáticas (procesadores i3, i5,
i7, Ryzen, Pentium)
• La memoria principal (Main Memory):
donde se almacenan los datos que
vana ser tratados y los programas
que los procesan (memoria RAM)
Jose Manuel Ayala Wilson

ARQUITECTURA DEL ORDENADOR (2)


• Almacenamiento (Backing Storage):
dispositivos capaces de almacenar y
persistir (la información queda grabada
aunque el dispositivo se apague)
grandes volúmenes de información
(discos mecánicos HDD, de estado sólido
SSD, discos ópticos CD/DVD)
• Dispositivos de entrada (Input): los que
permiten al usuario entrar una
información (teclado, micrófono,
cámaras , ratón)
• Dispositivos de salida (output): los que
permiten visualizar la información
procesada (pantallas, impresoras,
altavoces)
Jose Manuel Ayala Wilson

QUE ES UN SISTEMA OPERATIVO


• Un sistema operativo es el software principal o conjunto
de programas de un sistema informático que gestiona
los recursos de hardware y provee servicios a los
programas de aplicación de software, ejecutándose en
modo privilegiado respecto de los restantes.​
• Gestionar los recursos de localización y protección de
acceso del hardware, hecho que alivia a los
programadores de aplicaciones de tener que tratar con
estos detalles.
• La mayoría de aparatos electrónicos que utilizan
microprocesadores para funcionar, llevan incorporado
un sistema operativo (teléfonos móviles, ordenadores,
routers, etc.).
• En la mayoría de los casos son manejados mediante
una interfaz gráfica de usuario, un gestor de ventanas
o un entorno de escritorio, una línea de comandos o un
navegador web.
Jose Manuel Ayala Wilson

INTERACCIONES EN EL SISTEMA
• El sistema operativo interactúa directamente con el
hardware (memoria, tarjeta gráfica, comunicaciones,
entrada/salida)
• Cada fabricante de hardware provee una pieza de
software denominada driver que es utilizada por el
sistema operativo para intercambiar información y dar
órdenes a un hardware específico
• Las aplicaciones interactúan con el sistema operativo
cuando necesitan cualquier recurso físico solicitándolo
mediante lo que se conoce como llamadas al sistema
• Los usuarios interactúan con las aplicaciones cuando
necesitan resolver tareas comunes que se automatizan
gracias a la informática (enviar correos, escribir y editar
documentos, jugar, publicar en redes sociales, etc.)
Jose Manuel Ayala Wilson

MODOS DE EJECUCION
• Modo usuario: el sistema da acceso a un conjunto
limitado de recursos y operaciones que pueden
realizarse sobre el hardware del ordenador. En este
modo se ejecutan las aplicaciones de los usuarios
• Modo supervisor (modo kernel): el sistema da acceso
prácticamente a todos los recursos y operaciones que
pueden realizarse sobre el hardware del ordenador. En
este modo se ejecutan las aplicaciones de
administración y los componentes internos del sistema
operativo que controlan la memoria, la entrada/salida
(E/S), el almacenamiento en disco, etc.
Jose Manuel Ayala Wilson

INTERRUPCION
• Es una señal que envía un dispositivo de E/S a la
CPU para indicar que la operación de la que se
estaba ocupando, ya ha terminado.
• El mecanismo de tratamiento de las
interrupciones permite al sistema operativo
utilizar la CPU en servicio de una aplicación,
mientras otra permanece a la espera de que
concluya una operación en un dispositivo de E/S.
• El hardware se encarga de avisar al SO cuando el
dispositivo de E/S ha terminado y el SO puede
intervenir entonces, si es conveniente, para
hacer que el programa que estaba esperando por
el dispositivo, se continúe ejecutando.
Jose Manuel Ayala Wilson

EXCEPCION
• Es una situación de error detectada por la CPU mientras
ejecutaba una instrucción, que requiere tratamiento por
parte del SO.
• El mecanismo de tratamiento de las excepciones es
esencial para impedir, junto a los modos de ejecución
de la CPU y los mecanismos de protección de la
memoria, que las aplicaciones realicen operaciones que
no les están permitidas.
• Como en el caso de las interrupciones, el hardware se
limita a dejar el control al SO, y este es el que trata la
situación como convenga.
• Es bastante frecuente que el tratamiento de una
excepción no retorne al programa que se estaba
ejecutando cuando se produjo la excepción, sino que el
SO aborte la ejecución de ese programa.
Jose Manuel Ayala Wilson

KERNEL
• En informática, un núcleo o kernel es un software que
constituye una parte fundamental del sistema
operativo, y se define como la parte que se ejecuta en
modo privilegiado (conocido también como modo
núcleo o modo kernel).
• Es el principal responsable de facilitar a los distintos
programas acceso seguro al hardware o en forma
básica, es el encargado de gestionar recursos, a través
de servicios de llamada al sistema.
• Como hay muchos programas y el acceso al hardware
es limitado, también se encarga de decidir qué
programa podrá usar un dispositivo de hardware y
durante cuánto tiempo, lo que se conoce como
multiprogramación.
Jose Manuel Ayala Wilson

DRIVERS
• Un controlador de dispositivo o manejador de
dispositivo (en inglés: device driver, o simplemente
driver)​ es un programa informático que permite al
sistema operativo interactuar con un periférico,
haciendo una abstracción del hardware y
proporcionando una interfaz (posiblemente
estandarizada) para utilizar el dispositivo.​
• Es una pieza esencial del software, y en particular, del
núcleo de un sistema operativo, sin la cual el hardware
sería inutilizable.
• Cada fabricante de hardware suele producir sus propios
drivers y proporcionarlos a los fabricantes de sistemas
operativos para que los incluyan en sus distribuciones
Jose Manuel Ayala Wilson

GESTION DE PROCESOS
• Un proceso es simplemente, un programa en ejecución
que necesita recursos para realizar su tarea: tiempo de
CPU, memoria, archivos y dispositivos de E/S.
• El SO es el responsable de lo siguiente:
• Crear y destruir procesos.
• Parar y reanudar procesos.
• Ofrecer mecanismos para que los procesos puedan
comunicarse y se sincronicen.
• La gestión de procesos podría ser similar al trabajo de
oficina: se puede tener una lista de tareas a realizar y a
estas fijarles prioridades: alta, media, baja, por ejemplo.
• Debemos comenzar haciendo las tareas de prioridad
alta primero y cuando se terminen seguir con las de
prioridad media y después las de baja. Una vez
realizada la tarea se tacha.
Jose Manuel Ayala Wilson

GESTION DE MEMORIA
• La gestión de memoria se refiere a los distintos
métodos y operaciones que se encargan de obtener la
máxima utilidad de la memoria, organizando los
procesos y programas que se ejecutan de manera tal
que se aproveche de la mejor manera posible el
espacio disponible.
• Entre las principales operaciones que desarrolla la
administración de memoria se encuentran la
reubicación, que consiste en trasladar procesos activos
dentro y fuera de la memoria principal para maximizar
la utilización del procesador; la protección, mecanismos
que protegen los procesos que se ejecutan de
interferencias de otros procesos; uso compartido de
códigos y datos, con lo que el mecanismo de protección
permite que ciertos procesos de un mismo programa
que comparten una tarea tengan memoria en común.
Jose Manuel Ayala Wilson

GESTION DE ALMACENAMIENTO
• Un sistema de almacenamiento secundario es
necesario, ya que la memoria principal
(almacenamiento primario) es volátil (los datos se
pierden al desconectar el ordenador) y además muy
pequeña para almacenar todos los programas y datos.
• También es necesario mantener los datos que no
convenga mantener en la memoria principal.
• El SO se encarga de:
• Planificar los discos.
• Gestionar el espacio libre.
• Asignar el almacenamiento.
• Verificar que los datos se guarden en orden.
Jose Manuel Ayala Wilson

SISTEMA DE ARCHIVOS
• El sistema de archivos o sistema de ficheros es el
componente del sistema operativo encargado de
administrar y facilitar el uso del almacenamiento
secundario (discos)
• Sus principales funciones son la asignación de
espacio a los archivos, la administración del
espacio libre y del acceso a los datos guardados.
• La mayoría de los sistemas operativos manejan su
propio sistema de archivos.
• Los sistemas de archivos proveen métodos para
crear, mover, renombrar y eliminar tanto archivos
como directorios (archivos que almacenan otros
archivos)
Jose Manuel Ayala Wilson

SISTEMA DE PROTECCION
• Mecanismo que controla el acceso de
los programas o los usuarios a los
recursos del sistema.
• El SO se encarga de:
• Distinguir entre uso autorizado y
no autorizado.
• Especificar los controles de
seguridad a realizar.
• Forzar el uso de estos
mecanismos de protección.
Jose Manuel Ayala Wilson

SISTEMA DE COMUNICACION
• Para mantener las comunicaciones con
otros sistemas es necesario poder
controlar el envío y recepción de
información a través de las interfaces
de red u otros estándares de
intercambio de información como
BlueTooth, infrarrojos, etc.
• También hay que crear y mantener
puntos de comunicación que sirvan a
las aplicaciones para enviar y recibir
información, y crear y mantener
conexiones virtuales entre aplicaciones
que están ejecutándose localmente y
otras que lo hacen remotamente.
Jose Manuel Ayala Wilson

PROGRAMAS DE SISTEMA
• Son aplicaciones de utilidad que se suministran
con el SO pero no forman parte de él.
• Ofrecen un entorno útil para el desarrollo y
ejecución de programas, siendo algunas de las
tareas que realizan:
• Manipulación y modificación de archivos.
• Información del estado del sistema.
• Soporte a lenguajes de programación.
• Comunicaciones.
Jose Manuel Ayala Wilson

INTERFAZ DE USUARIO (1)


• La interfaz de línea de comandos o interfaz de
línea de órdenes (en inglés, command-line
interface, CLI) es un método que permite a los
usuarios dar instrucciones a algún programa
informático por medio de una línea de texto
simple.
• Debe notarse que los conceptos de CLI, shell y
emulador de terminal no son lo mismo ya que
CLI es un método mientras que shell y emulador
de terminal son programas informáticos. Sin
embargo los tres suelen utilizarse como
sinónimos.
• Las CLI pueden emplearse interactivamente,
escribiendo instrucciones en alguna especie de
entrada de texto, o pueden utilizarse de una
forma mucho más automatizada (archivo batch),
leyendo órdenes desde un archivo de scripts.
Jose Manuel Ayala Wilson

INTERFAZ DE USUARIO (2)


• La interfaz gráfica de usuario, conocida también
como GUI (del inglés graphical user interface), es
un programa informático que utiliza un conjunto
de imágenes y objetos gráficos para representar
la información y acciones disponibles en el
sistema.
• Su principal uso consiste en proporcionar un
entorno visual sencillo y amigable para permitir
la comunicación con el sistema operativo.
• Como ejemplos de interfaz gráfica de usuario,
cabe citar los entornos de escritorio Windows, el
X-Window de GNU/Linux o los de macOSX: Aqua y
Quartz.
Jose Manuel Ayala Wilson

UNIX
Jose Manuel Ayala Wilson

QUE ES UNIX
• Unix (registrado oficialmente como UNIX®) es
un sistema operativo portable, multitarea y
multiusuario; desarrollado en 1969 por un grupo
de empleados de los laboratorios Bell de AT&T.
• El proyecto fue bautizado UNICS, como acrónimo
Uniplexed Information and Computing System, y
luego se cambió el nombre a UNIX, dando origen
al legado que llega hasta nuestros días.​
• Muchos de los aspectos que caracterizan a Unix
fueron en su momento completas innovaciones
que no solo tendrían un gran impacto en el
desarrollo de sistemas y distribuciones similares
a Unix, sino que fueron incluso adoptados por
sus competidores Apple y Microsoft en sus
respectivos sistemas operativos.
Jose Manuel Ayala Wilson

UNIX - SISTEMA DE ARCHIVOS


• Un componente elemental de Unix fue desde el
principio el sistema de ficheros organizado
jerárquicamente que permite al usuario ordenar
los archivos en carpetas, subordinando tantos
subdirectorios como sean necesarios al
directorio raíz, definido por la barra “/”.
• Siguiendo el principio fundamental “Everything
is a file” (“todo es un archivo”), Unix también
representa a las unidades de disco, los discos
duros, las terminales o los equipos externos
como archivos de dispositivo en el sistema de
archivos.
• Algunos derivados, como Linux, definen incluso
a los procesos y a sus propiedades como
archivos en el sistema virtual de ficheros procfs.
Jose Manuel Ayala Wilson

UNIX - MULTITAREA
• En el éxito de Unix también tuvo un impacto
decisivo la posibilidad de ejecutar varios
procesos o programas al mismo tiempo sin
cortarse el paso mutuamente.
• Con este fin, el sistema operativo se apoya
desde sus inicios en el método de la multitarea
apropiativa (preemptive multitasking), según el
cual un componente denominado planificador
(scheduler), ubicado en el núcleo del sistema
operativo, se encarga de administrar los
procesos en base a un sistema de prioridades.
• Fue mucho más tarde, a lo largo de 1990,
cuando Apple y Microsoft se decidieron a realizar
soluciones de gestión de procesos de este tipo.
Jose Manuel Ayala Wilson

UNIX - MULTIUSUARIO
• Uno de los objetivos de crear UNIX fue que
permitiera trabajar a varios usuarios al mismo
tiempo.
• Este es el motivo de asignar a cada programa y
a cada proceso un propietario.
• La ventaja de un sistema multiusuario de este
tipo no solamente residía en la posibilidad de
acceder a un mismo procesador en el mismo
momento, sino también en la gestión de
permisos ligado a ello, porque ahora los
administradores podían definir qué permisos de
acceso tenía cada usuario y a qué recursos
podía acceder.
Jose Manuel Ayala Wilson

UNIX - NETWORKING
• Con 4.2BSD, el sistema Unix de la Berkeley se
convierte en 1983 en el primer sistema
operativo que integra la pila de protocolos de
Internet, la cual sienta las bases de Internet y de
una configuración sencilla de la red y ofrece la
posibilidad de participar como cliente o servidor.
• A finales de la década de los 80, con la
mencionada cuarta versión de System V,
aterriza en el mercado una variante del sistema
de AT&T comercial en el que se añade al kernel
la legendaria familia de protocolos.
• En cambio, no sería hasta 1993 (versión 3.11 y
su correspondiente extensión) cuando Windows
soportaría TCP/IP.
Jose Manuel Ayala Wilson

UNIX - MULTIPLATAFORMA
• Mientras que en la época del nacimiento de Unix
se diseñaba a los sistemas operativos y a sus
aplicaciones en función de un tipo exacto de
procesador, el equipo de los Laboratorios Bell
persiguió desde el principio la visión de un
sistema portable.
• Aunque se utilizaba un lenguaje ensamblador,
tan pronto como se estableció la estructura
fundamental del software de sistema, el
proyecto inició un lenguaje de programación
propio del cual nacería el histórico lenguaje C,
ampliamente utilizado hoy para escribir sistemas
operativos y todo tipo de software.
• Con la posterior y muy modificada versión V7 de
Unix de 1979 el sistema operativo se mereció
con razón su reputación como sistema portable.
Jose Manuel Ayala Wilson

UNIX - HERRAMIENTAS
• Los sistemas Unix reúnen un gran número de
instrumentos y comandos, cada uno de los cuales está
concebido generalmente para unas pocas tareas
especiales.
• Para la solución general de problemas se aplica el
principio de buscar respuestas en la combinación de
herramientas estándar en lugar de desarrollar
herramientas nuevas y específicas.
• La herramienta más importante en este sentido ha
sido siempre el shell (sh), un intérprete de comandos
orientado a texto que ofrece numerosas opciones de
programación.
Jose Manuel Ayala Wilson

LA FAMILIA DE UNIX
• UNIX dió origen a toda una familia de
sistemas operativos que usaron sus
revolucionarios conceptos.
• Entre ellos:
• Free BSD
• Net BSD
• SunOS
• macOS
• Solaris
• HP-UX
• IBM AIX
• SGI IRIX
Jose Manuel Ayala Wilson

LINUX
Jose Manuel Ayala Wilson

QUE ES LINUX (1)


• GNU/Linux es la denominación técnica y
generalizada que reciben una serie de sistemas
Richard Stallman operativos de tipo Unix, que también suelen ser de
código abierto, multiplataforma, multiusuario y
multitarea.
• Estos sistemas operativos están formados por la
combinación de varios proyectos, entre los cuales
destaca el entorno GNU, encabezado por el
programador estadounidense Richard Stallman
junto a la Free Software Foundation, una fundación
cuyo propósito es difundir el software libre, así
como también el núcleo de sistema operativo
conocido como Linux, encabezado por el
programador finlandés Linus Torvalds.​

Linus Torvalds
Jose Manuel Ayala Wilson

QUE ES LINUX (2)


• El desarrollo de estos sistemas operativos es uno
de los ejemplos más prominentes de software
libre: todo su código fuente puede ser utilizado,
modificado y redistribuido libremente por
cualquier persona, empresa o institución, bajo los
términos de la Licencia Pública General de GNU,
así como de otra serie de licencias.
• La idea de desarrollar un sistema operativo libre y
basado en el sistema operativo Unix, se remonta a
mediados de la década de 1980 con el proyecto
GNU.

El logotipo oficial del Proyecto


GNU es un ñú y del núcleo
Linux el pingüino Tux
Jose Manuel Ayala Wilson

QUE ES LINUX (3)


• A pesar de que en la jerga cotidiana la mayoría de
las personas usan el vocablo Linux para referirse a
este sistema operativo,​ en realidad ese es solo el
nombre del kernel o núcleo, ya que el sistema
completo está formado también por una gran
cantidad de componentes del proyecto GNU, que
van desde compiladores hasta entornos de
escritorio.​
• Cabe señalar que, existen derivados de sistemas
operativos que usan el núcleo Linux, pero que no
tienen componentes GNU, como por ejemplo el
sistema operativo Android,​ así como distribuciones
de software GNU donde el núcleo Linux está
ausente, como por ejemplo el sistema operativo
FreeBSD, que es un sistema operativo basado en
Unix, que usa algunas aplicaciones del proyecto
GNU.​
Jose Manuel Ayala Wilson

LAS DISTROS (1)


• Los sistemas operativos GNU/Linux, se encuentran
normalmente en forma de compendios conocidos
como distribuciones o distros, a las cuales se les han
añadido selecciones de aplicaciones y programas,
con las cuales el sistema cuenta directamente al ser
instalado, así como una amplia serie de programas
que pueden descargarse desde un repositorio, que
consiste en un almacén de software, para su
posterior instalación.
• El propósito de estas distribuciones es ofrecer
GNU/Linux como un producto final que el usuario
pueda instalar en su ordenador para que funcione
como su sistema operativo principal, o también en
máquinas virtuales, cumpliendo con toda una serie
https://distrowatch.com/ de necesidades básicas para un grupo determinado
de usuarios, o para el público general.
Jose Manuel Ayala Wilson

LAS DISTROS (2)


• Algunas de estas distribuciones son especialmente
conocidas por su uso en servidores de Internet,
supercomputadoras, y sistemas embebidos​ donde
GNU/Linux tiene la cuota más importante de esos
mercados.
• Según un informe de IDC, GNU/Linux es utilizado por
el 78% de los principales 500 servidores del mundo.
• Según Top500.org, las 500 superordenadores más
potentes del mundo utilizan todas ellas alguna
https://www.top500.org/
distribución del sistema operativo GNU/Linux.
• Con menor participación, el sistema GNU/Linux
también se usa en el segmento de las ordenadores
de escritorio, portátiles, dispositivos móviles,
ordenadores, videoconsolas, wearables, dispositivos
IoT y otros.
Jose Manuel Ayala Wilson

KALI LINUX
• Kali Linux es una distribución basada en Debian
GNU/Linux diseñada principalmente para la
auditoría y seguridad informática en general.
• Fue fundada y es mantenida por Offensive
Security Ltd.
• Mati Aharoni y Devon Kearns, ambos
pertenecientes al equipo de Offensive Security,
desarrollaron la distribución a partir de la
reescritura de BackTrack, que se podría
denominar como la antecesora de Kali Linux.
https://www.offensive-security.com/
Jose Manuel Ayala Wilson

EL TERMINAL DE KALI
Jose Manuel Ayala Wilson

EL TERMINAL DE KALI (1)


Menú de
opciones
El terminal es la aplicación o programa
que nos permite comunicarnos con el
sistema operativo mediante comandos en
línea.
El terminal se conecta con el shell que el
programa que interpreta y ejecuta los
comandos.
Aunque Kali Linux tiene varios shells (sh,
Prompt o indicador donde zsh, bash, dash), en este curso vamos a
vamos a teclear los comandos. utilizar bash
Nos muestra además la ruta
del directorio actual
En azul: modo usuario
En rojo: modo superusuario
Barra de
scroll
Jose Manuel Ayala Wilson

EL TERMINAL DE KALI (2)

Podemos abrir múltiples


terminales al mismo tiempo
haciendo click en el icono de
Podemos seleccionar los terminal que tenemos en la
terminales en la barra de barra de tareas
estado y ejecutar comandos
diferentes en cada uno
Jose Manuel Ayala Wilson

EL TERMINAL DE KALI (3)


Podemos abrir múltiples pestañas
o tabs en mismo terminal con la
opción File->New Tab o
presionando CTRL+SHIFT+T

Podemos seleccionar múltiples


pestañas de un mismo
terminal y ejecutar comandos
diferentes en cada una
Jose Manuel Ayala Wilson

LOS COMANDOS EN LINEA (1)


• Los comandos que tecleamos en el terminal
tienen la sintaxis: comando parametro1
parametro2 ... parametroN
• Los parámetros u opciones es información
adicional que necesita el comando para poder
realizar su tarea. Por ejemplo si vas a borrar un
fichero tendras que decir que fichero vas a
borrar. Si vas a ver el contenido de un directorio
tendrás que decir que directorio quieres ver
• Muchos comandos aceptan el parámetro --help
para mostrar ayuda adicional sobre sus
parámetros u opciones
• El comando man <comando> se utiliza para
Los comandos se ejecutan presionando ver más detalles sobre un comando específico y
la tecla ENTER sus opciones y a menudo incluye ejemplos de
cómo utilizarlo
Jose Manuel Ayala Wilson

LOS COMANDOS EN LINEA (2)


• Se pueden ejecutar múltiples comandos uno
detrás de otro separándolos por &&
comando1 && comando2 ... && comandon
• Igualmente se puede ejecutar un comando
como una tarea de fondo (o tarea en
background) liberando el prompt del terminal y
permitiéndonos seguir tecleando comandos en
lugar de esperar a que la tarea que consume
tiempo termine
• Para ello solo tenemos que añadir & al final de
la línea de comando (siempre separada por
espacio)
comando &
Los comandos se pueden ejecutar en • También funciona con múltiples comandos:
foreground o background comando1 && comando2 ... && comandon &
Jose Manuel Ayala Wilson

LOS COMANDOS EN LINEA (3)


Linux viene con una selección amplia de
comandos y utilidades de propósito
general instalados.
Aún así hay miles de comandos y
utilidades en sus repositorios de software
para hacer prácticamente cualquier tarea.
Si queremos ejecutar un comando válido
que no está instalado, el propio Linux nos
propone instalarlo y nos sugiere el
comando para ello:
sudo apt install <comando>
Jose Manuel Ayala Wilson

CONTROL DEL TERMINAL


COMANDO DESCRIPCION
history Muestra el historial de todos los comandos que hemos tecleado
history -c Borra el historial de comandos que hemos usado (usado por los
hackers para borrar sus huellas)
!! Repite el último comando ejecutado
!<n> Repite un comando del historial por su número
exit Cierra la pestaña o el terminal (También sale del modo superusuario
volviendo al modo de usuario)
<scroll una línea> CTRL-Flecha Arriba / CTRL-Flecha Abajo
<scroll una página> CTRL-Página Arriba / CTRL-Página Abajo
<comando anterior> Flecha arriba
<comando siguiente> Flecha abajo
clear Borra el terminal (CTRL-L)
Jose Manuel Ayala Wilson

EL USUARIO
Jose Manuel Ayala Wilson

LOS USUARIOS DE LINUX (1)


• Usuario: cualquier entidad dentro del sistema que tiene
la responsabilidad de realizar tareas
• Los usuarios pueden clasificarse en por su forma de
entrar al sistema en:
• Usuarios con login (normalmente son personas)
• Usuarios sin login (normalmente son utilizados por
diversos procesos para su ejecución)
• Por sus privilegios para realizar tareas suelen clasificarse
en:
• Usuario normal: usuario que tiene una capacidad
limitada a la hora de operar con el sistema
• Superusuario (root): usuario administrador que
puede realizar cualquier tarea de mantenimiento del
sistema y que en algunos Linux tiene también
capacidad de hacer login
Jose Manuel Ayala Wilson

LOS USUARIOS DE LINUX (2)


• Los usuarios se suelen ubicar en grupos y estos grupos
suelen tener determinados privilegios y acceso a
determinados recursos basados en un sistema de
permisos
• Si un usuario pertenece a muchos grupos tendrá mucho
poder dentro del sistema operativo Linux
• El superusuario o root no necesita pertenecer a ningún
grupo para realizar tareas administrativas como ver los
directorios de cualquier otro usuario, arrancar programas
que se ejecutan en background (servicios), instalar
aplicaciones, etc.
• A menudo y para no trabajar todo el tiempo como root
por el peligro que representa, se suele impersonar el
root en un comando privilegiado prefijándolo con sudo y
entrando la contraseña
Jose Manuel Ayala Wilson

COMANDOS DE USUARIO
COMANDO DESCRIPCION
whoami Muestra el usuario actual
id Muestra el usuario actual y sus grupos
w Información sobre el usuario logado
passwd Cambia la contraseña del usuario actual
groups Muestra los grupos a los que pertenece el usuario
logout Desconectarse como usuario (requiere volver a hacer login). Funciona
en sistemas donde la interfaz es el terminal como Ubuntu Server
pkill -u $USER Termina la sesión de usuario en Kali Linux
Jose Manuel Ayala Wilson

FECHA Y HORA
Jose Manuel Ayala Wilson

LA FECHA Y LA HORA
• En seguridad es muy importante que el sistema
tenga la fecha y la hora correctas para poder
identificar e incluso justificar legalmente tanto la
detección de incidentes como las franjas horarias en
que ocurren
• Al cambiar a la zona horaria correcta deberíamos
tener la fecha y la hora correctamente sincronizadas
• Debemos asegurarnos de que Kali tiene la fecha, la
hora y la zona horaria correspondiente a España
(Europe/Madrid) antes de trabajar profesionalmente
con él
• El servicio ntp que está por defecto activado
en Kali se encarga de sincronizar la fecha y la
hora automáticamente según la zona horaria

https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
Jose Manuel Ayala Wilson

FECHA Y HORA
COMANDO DESCRIPCION
date Muestra la fecha y hora actuales
date +%Y%m%d-%H%M%S Muestra la fecha y la hora como 20210217-043024
sudo date +%Y%m%d -s “20210101” Pone la fecha 01/01/2021 (modo root)
sudo date -s “19 FEB 2021 14:25” Pone la fecha y hora 19/02/2021 14:25 (modo root)
sudo date +%T -s “15:30:00” Pone la hora 15:30:00 (modo root)
cal Muestra el calendario del mes actual
cal <mes> <año> Muestra el calendario del mes y año indicados
cal <año> Muestra el calendario completo del año indicado
timedatectl Ver la hora actual y la zona horaria
timedatectl list-timezones Listar todas las zonas horarias (q para salir)
sudo timedatectl set-timezone <zona> Establecer tu zona horaria segun el listado anterior
Las cadenas de formato son: %Y - año, %m - mes, %d - dia, %H - hora, %M - minutos, %S -
segundos, %T - la hora en formato “hora:minutos:segundos”.
Jose Manuel Ayala Wilson

INFORMACION
DEL
SISTEMA
Jose Manuel Ayala Wilson

SOBRE EL SISTEMA
• A menudo es importante conocer información sobre el
sistema operativo instalado (versión de kernel, nombre
del sistema, arquitectura, etc.)
• Aquí se incluye el uso de la memoria, el espacio libre en
disco y el tiempo que el sistema lleva encendido de
forma continua (uptime)
• El uptime es importante porque revela si alguien o algo
(un malware) ha reiniciado el ordenador provocando una
pérdida de servicio (caso típico en los servidores) y que
podría ser síntoma de un ciberataque
Jose Manuel Ayala Wilson

INFORMACION DEL SISTEMA


COMANDO DESCRIPCION
uname -a Información sobre el sistema operativo
du <dir> -ah Muestra de forma amigable el uso del disco por ficheros y directorios
du <dir> -sh Muestra el total de espacio ocupado por ficheros y directorios
df -H Muestra de forma amigable el espacio libre y ocupado en disco
free -h Muestra el espacio libre y ocupado en la memoria principal
uptime Muestra el tiempo que hace desde que el usuario encendió el
ordenador
uptime -p Muestra en un formato amigable y resumido el tiempo que hace
desde que el usuario encendió el ordenador
Jose Manuel Ayala Wilson

FICHEROS
Jose Manuel Ayala Wilson

QUE ES UN FICHERO
• Fichero: cualquier información dentro del sistema
operativo a la que se pueda acceder persistida en algún
soporte e identificada por un nombre simbólico
• Normalmente los ficheros en Linux representan la
información grabada en el sistema de ficheros o sistema
de archivos
• Un fichero es un objeto o entidad que tiene un conjunto
de propiedades o metadatos además de su nombre:
tamaño, permisos, usuario que lo creó, grupo al que
pertenece el usuario que lo creó, fecha y hora en que
fué creado o actualizado, etc.
• Los directorios son ficheros capaces de contener otros
ficheros (suelen llamarse directorios en el entorno de
terminal o carpetas en el entorno gráfico por el icono
que los representa)
Jose Manuel Ayala Wilson

NOMBRES DE FICHEROS
• Los ficheros en Linux a diferencia de Windows no tienen
extensiones
• Las extensiones son unos caracteres o abreviaturas que
se añaden al final del nombre de un fichero para poderlo
categorizar a simple vista.
• Así estamos acostumbrados en Windows a que txt son
ficheros texto, docx son documentos de Word, exe son
programas ejecutables, etc.
• En Linux se pueden llamar de cualquier manera, si bien se
recomienda nombres en minúsculas y evitar los espacios
en blanco o sustituirlos por guiones: en lugar de escribir
alumnos de bootcamp mejor escribir alumnos-de-
bootcamp o alumnosdebootcamp sin espacios
• Si un nombre de fichero empieza por un punto
como .clave-oculta, su nombre quedará oculto al listar el
directorio
Jose Manuel Ayala Wilson

SISTEMAS DE FICHEROS EN LINUX


SISTEMA DESCRIPCION
ext2 Se mejoran las prestaciones de la primera versión, soportando
ficheros de hasta 2 TB de tamaño y particiones de hasta 4 TB. El
tamaño máximo del volumen puede ser de 16 TB.
ext3 Soporte para ficheros de 2 TB y volúmenes de hasta 32 TB.
ext4 Es la versión actual de este sistema, que soporta ficheros de hasta
16 TB y volúmenes de hasta 1000 PB. Además, la gestión de
energía y optimización de acceso y escritura también está mejorado
de forma considerable.
BtrFS (butter filesystem) es un sistema de ficheros desarrollado por
Oracle muy eficiente con grandes volúmenes de datos
JFS (journaled filesystem) este sistema de archivos es popular debido a
su simplicidad y la capacidad de trabajar de acuerdo con el tamaño
del disco duro. Este sistema de archivos usa muy menos potencia
de procesamiento de la CPU y debido a esta característica, es
preferido por algunos de los administradores del sistema.
Jose Manuel Ayala Wilson

OTROS SISTEMAS DE FICHERO


SISTEMA DESCRIPCION
msdos Podremos montar unidades con sistema de ficheros FAT16 propios
de MS-DOS (antiguo sistema operativo de Microsoft)
vfat o FAT32 para la compatibilidad con sistemas operativos Windows 9x
o superiores, y sistemas de archivos propios de unidades de
almacenamiento USB.
ntfs Sistema de ficheros que introdujo Microsoft a partir de los sistemas
Windows 2000 y XP, en funcionamiento hasta día de hoy. Mediante
el paquete nfts-3g preinstalado en Kali podemos leer, escribir y
ejecutar ficheros de esta partición.
iso9660 sistema de ficheros que utilizan los CD/DVD
hfs/hfs+ Sistema de archivos de macOS de Apple

Montar un sistema de archivo es conectar en un punto (generalmente en /mnt o /media de tu


sistema Linux) el árbol o estructura de directorios del almacenamiento deseado (disco externo,
pendrive, DVD, etc.)
Jose Manuel Ayala Wilson

COMANDOS DE FICHERO (1)


COMANDO DESCRIPCION
touch Crea un fichero vacío si no existe o actualiza la fecha y hora de un
fichero existente
cat <fichero> Muestra el contenido de un fichero texto
cat <fic1> <fic2> Muestra el contenio de varios ficheros texto
tac <fichero> Muestra el contenido de un fichero texto en el orden inverso
tac <fic1> <fic2> Muestra el contenio de varios ficheros texto en el orden inverso
more <fichero> Muestra el contenido de un fichero con una pausa controlada por
ENTER
less <fichero> Muestra el contenido de un fichero y permite moverse con las
flechas del cursor hacia adelante y hacia atrás en sus líneas
head -n <n> <fichero> Muestra las primeras <n> líneas de un fichero texto
tail -n <n> <fichero> Muestra las últimas <n> líneas de un fichero texto
tail -f <fichero> Muestra las últimas líneas que se actualizan en un fichero
Jose Manuel Ayala Wilson

COMANDOS DE FICHERO (2)


COMANDO DESCRIPCION
nl <fichero> Muestra el contenido de un fichero con números de línea
wc <fichero> Muestra la cantidad de líneas, palabras y caracteres de un fichero
texto
wc -l <fichero> Muestra la cantidad de líneas de un fichero texto
wc -w <fichero> Muestra la cantidad de palabras de un fichero texto
wc -c <fichero> Muestra la cantidad de caracteres de un fichero texto
cp <fich1> <fich2> Hace una copia del fichero con otro nombre o lo copia en otro
directorio
mv <fich1> <fich2> Renombra un fichero o lo copia en otro directorio
rm <fichero> Borra un fichero
rm <fich1> <fich2> Borra múltiples ficheros por su nombre
file <fichero> Información sobre el fichero
Jose Manuel Ayala Wilson

COMANDOS DE FICHERO (3)


COMANDO DESCRIPCION
dd if=/dev/zero of=ceros bs=1M count=100 Generando un fichero relleno de ceros binarios
del tamaño 1OO MB.
dd if=/dev/urandom of=data bs=1M Generando un fichero relleno de datos binarios
count=50 aleatorios de tamaño 50M

openssl rand -out test.txt -base64 100000 Generando un fichero test.txt en formato
base64 con contenido aleatorio de 100,000
bytes (en texto ocupa algo más)
fallocate -l 10M test.dat Generando un fichero test.dat en formato
binario relleno de ceros de 10 MB

Estos comandos nos ayudan a generar ficheros de prueba que luego podemos utilizar con
otros comandos de Linux
Jose Manuel Ayala Wilson

WILDCARDS
Jose Manuel Ayala Wilson

WILDCARDS (COMODINES)
• Los wildcards o comodines son caracteres especiales
que pueden ser utilizados para formar patrones a la
hora de realizar las búsquedas o mostrar el
contenido de los directorios
• Estos caracteres no pueden formar parte del nombre
de ningún fichero en Linux
Jose Manuel Ayala Wilson

COMODINES (WILDCARDS)
WILDCARD DESCRIPCION EJEMPLOS

? Un solo caracter carpeta? log-file??

* Cero o más caracteres *.jpg

[] Cualquier elemento que esté en el rango fichero[0-9][0-9]


indicado
{} Cualquier elemento de la lista, separado por {*.doc, *.docx,*.ppt,*.pptx}
comas
[!] Cualquier caracter que no esté dentro de la carpeta[!0-9]
lista
Jose Manuel Ayala Wilson

NOMBRES Y PATRONES (1)


FICHERO PATRONES RESULTADO

us2004.ova us2??.ova No encontrado (el nombre tiene 3


caracteres después del 2)
us[0-9][0-9][0-9][0-9].ova Encontrado (después de us vienen 4
dígitos)
us*.ova Encontrado (el nombre empieza por us y
termina en .ova)
us20[!a-z][!a-z].ova Encontrado (el nombre termina en dos
caracteres que no son letras)
us20[!0-9][!a-z].ova No encontrado (el nombre contiene un
dígito despues del 20)
us2004{.ova,.ppt} Encontrado (us2004.ova pero no
us2004.ppt)

Distintos patrones que permiten encontrar al fichero us2004.ova


Jose Manuel Ayala Wilson

NOMBRES Y PATRONES (2)


FICHERO PATRONES RESULTADO

/sbin/samba_kcc samba* Encontrado

samba_* Encontrado

samba_??? Encontrado

samba_?? No encontrado (el nombre tiene 3


caracteres después del guión bajo)
samba_[a-z][a-z][a-z] Encontrado

samba_[a-z][a-z][0-9] No encontrado (no hay digitos en el


último caracter del nombre)

Distintos patrones que permiten encontrar al fichero /sbin/samba_kcc


Jose Manuel Ayala Wilson

EDICION
DE
FICHEROS TEXTO
Jose Manuel Ayala Wilson

EDITANDO FICHEROS TEXTO


• En el terminal de Linux podemos crear o modificar
ficheros texto con el editor nano
• Nano es una aplicación potente para las tareas
básicas de edición.
• Incluye coloreado de sintaxis (syntax highlighting)
para numeros lenguajes de programación
incluyendo los diversos shell por lo que es muy
bueno para los desarrolladores
Jose Manuel Ayala Wilson

EDITOR NANO
COMANDO DESCRIPCION
F1 Ayuda del editor
F2 (CTRL-X) Salir del editor
F3 (CTRL-S) Guardar los cambios
F6 Buscar una cadena de caracteres
CTRL-K Cortar un texto seleccionado con las teclas del cursor
CTRL-U Pegar el texto cortado previamente
CTRL-C Donde está el cursor dentro del fichero editado
CTRL-J Justificar el texto del fichero

Para ejecutar nano que muestre los números de línea ejecutar como: nano -l <fichero>
Jose Manuel Ayala Wilson

DIRECTORIOS
Jose Manuel Ayala Wilson

QUE ES UN DIRECTORIO
• Directorio: es un fichero capaz de contener
otros ficheros (en entorno gráfico se le
suele llamar carpeta)
• Los directorios tienen una estructura
jerárquica o en arbol siendo el directorio
principal el directorio raíz simbolizado por /
• A partir de este directorio una ruta dentro
del sistema de ficheros puede incluir varios
directorios separados por slash o barra
inclinada a la derecha (nota que el primer
slash es el directorio raíz y los siguientes
son separadores entre nombres de
directorios o entre nombres de directorios y
nombres de ficheros)
Jose Manuel Ayala Wilson

NOMBRES ESPECIALES DE DIRECTORIOS


• Directorio actual: se representa por un
punto .
• Directorio anterior: se representa por dos
puntos ..
• Directorio del usuario: se representa por un
símbolo ~ y equivale al directorio
/home/<usuario> en el caso del usuario
que haya hecho login en el sistema.
• En las máquinas virtuales de Kali Linux el
En esta máquina están ocultos los usuario por defecto es kali por lo que su
directorios .ZAP y .wine directorio por defecto será /home/kali
• Si el nombre de un directorio empieza por
un punto, como .ssh su nombre quedará
oculto tanto en el terminal como en la
interfaz gráfica de usuario
Jose Manuel Ayala Wilson

DIRECTORIOS PRINCIPALES DE LINUX (1)


• /bin: contiene los comandos básicos del sistema y que
tienen permisos de ejecución para todos los usuarios
del sistema (la mayoría de ellos).
• /boot: Contiene los comandos de arranque del sistema
como el kernel. En nuestra máquina, podremos tener
instalados varios kernels y arrancar del que nosotros
queramos, algo impensable en un sistema Windows. En
este directorio también se encuentra el cargador de
arranque grub. Cuando actualizamos un sistema Linux
a un nuevo kernel, se creará una nueva entrada en el
grub para arrancar desde el nuevo o desde el antiguo.
• /dev: contiene los archivos especiales para los
dispositivos hardware de nuestro equipo. Además de
las unidades de almacenamiento.
Jose Manuel Ayala Wilson

DIRECTORIOS PRINCIPALES DE LINUX (2)


• /etc: directorio que almacena todos los ficheros de
configuración del sistema. Todos los usuarios pueden
ver los ficheros, pero solo el root puede modificarlos.
• /home: en este directorio se almacenan todos los
directorios de trabajo de los usuarios creados en el
sistema. El funcionamiento es similar a “mis
documentos” en Windows.
• /lib: directorio en donde se almacenan las librerías
básicas para trabajar en el sistema.
• /media: este directorio está destinado al montaje y
desmontaje de las unidades de almacenamiento como
particiones, USB y CD-ROM. Es opcional, y además en
según qué distribución tendrá un nombre distinto, por
ejemplo /mnt.
Jose Manuel Ayala Wilson

DIRECTORIOS PRINCIPALES DE LINUX (3)


• /sbin: comandos que solamente puede usar el root,
para la administración del sistema.
• /proc: lugar en donde se almacenan de forma dinámica
las listas de procesos que se ejecutan en el sistema y
las estructuras de datos del sistema.
• /root: directorio especial del súper usuario de Linux,
por supuesto, solamente el root podrá escribir dentro
de este directorio.
• /tmp: directorio exclusivamente destinado a la
información temporal. Podremos incluso crear una
partición exclusiva para /tmp.
• /usr: directorio en donde se almacenan los programas
que nosotros instalamos, y que no forman parte del
sistema operativo básico.
• /var: directorio que almacena ficheros de datos como
log del sistema, datos administrativos, etc.
Jose Manuel Ayala Wilson

LISTADO DE DIRECTORIO: ls -l
permisos
Fecha y hora
Tamaño en bytes

propietario

grupo del propietario

Si es un directorio, cuantos directorios


contiene (., .., etc) Nombres de
ficheros y
directorios
Jose Manuel Ayala Wilson

COMANDOS DE DIRECTORIOS (1)


COMANDO DESCRIPCION
pwd En que directorio estoy o cual es el directorio actual (puede verse en
el prompt del terminal)
cd <dir> Cambia al directorio especificado
cd Cambia al directorio del usuario actual
cd .. Cambia al directorio anterior
ls Muestra los ficheros del directorio actual
ls -l Muestra los ficheros del directorio actual en formato listado (sinónimo
de ll)
ls -la Muestra los ficheros en formato listado incluyendo ficheros ocultos
ls -lh Muestra los ficheros en formato listado pero mostrando los tamaños
de los ficheros de una forma amigable
ls -ld .[^.]* Muestra todos los ficheros y directorios ocultos
ls -lt Muestra todos los ficheros modificados por orden cronológico
Jose Manuel Ayala Wilson

COMANDOS DE DIRECTORIOS (2)


COMANDO DESCRIPCION
tree Muestra el arbol de directorio a partir del directorio actual
tree <dir> Muestra el arbol de directorio del directorio especificado
mkdir <dir1> <dir2> Crea directorios vacíos
mkdir -p <dir1/dir2> Crea una ruta de directorios
rmdir <dir1> <dir2> Borra directorios vacíos
rm -rf <dir> Borra el directorio <dir> con todo su contenido incluyendo
ficheros y otros directorios
rm -rf * Borra el contenido del directorio actual incluyendo ficheros y
otros directorios
mv <dir1> <dir2> Cambiar un directorio de nombre o moverlo a otra ubicación
cp -r <dir1> <dir2> Copia el directorio a otro directorio incluyendo todo su contenido
(ficheros y directorios incluidos)
Jose Manuel Ayala Wilson

ENLACES (LINKS)
Jose Manuel Ayala Wilson

QUE ES UN ENLACE (LINK)


• Un enlace simbólico (symlink), también
conocido como enlace simbólico o
enlace suave (soft link), es un tipo
especial de archivo que apunta a otro
archivo o directorio.
• Permiten acceder a directorios o a
ficheros con un nombre diferente del
que tienen, a menudo más conveniente
o más corto
• Por su uso son similares a los shortcuts,
atajos o accesos directos de Windows
• Se identifican en los listados con ls por
tener una ele en el primer caracter y
por mostrar una flecha -> indicado el
fichero o el directorio al que apuntan
Jose Manuel Ayala Wilson

TIPOS DE ENLACE
• Enlaces duros o físicos (hard links). Es como
un nombre adicional para un archivo existente.
Los enlaces físicos asocian dos o más
nombres de archivo con el mismo inode. Se
pueden crear uno o más enlaces físicos para
un solo archivo. No se pueden crear enlaces
físicos para directorios y archivos en un
sistema de archivos o partición diferente.
• Enlaces blandos (soft links). Es como un atajo
en Windows. Es un puntero indirecto a un
archivo o directorio. A diferencia de un
enlaces duros, un enlace simbólico puede
inode: estructura de datos dentro del apuntar a un archivo o directorio en un
sistema de archivos que guarda atributos sistema de archivos o partición diferente.
del archivo así como los bloques físicos
que ocupa en el disco
Jose Manuel Ayala Wilson

DIFERENCIAS ENTRE ENLACES


• Los enlaces simbólicos se pueden hacer con
ficheros y directorios mientras que los duros
solo entre ficheros.
• Los enlaces simbólicos se pueden hacer entre
distintos sistemas de ficheros, los duros no.
• Los enlaces duros comparten el número de
inode, los simbólicos no.
• En los enlaces simbólicos si se borra el fichero
o directorio original, la información se pierde,
en los duros no.
• Los enlaces duros son copias exactas del
fichero mientras que los simbólicos son meros
inode: estructura de datos dentro del punteros o “accesos directos”.
sistema de archivos que guarda atributos
del archivo así como los bloques físicos
que ocupa en el disco
Jose Manuel Ayala Wilson

CREAR ENLACES CON LN


• ln es un comando para crear vínculos entre
archivos.
• De forma predeterminada, el comando ln crea
vínculos físicos o duros (hard links).
• Para crear un enlace simbólico (soft link),
tenemos que usar la opción -s (--symbolic).
• La sintaxis del comando para crear enlaces
simbólicos es la siguiente:
ln -s [OPTIONS] FILE LINK
• Si se dan ambos FILE y LINK, ln creará un
enlace desde el archivo especificado como
primer argumento FILE al archivo especificado
man ln como segundo argumento LINK.
Jose Manuel Ayala Wilson

COMANDO LN
COMANDO DESCRIPCION
ln sevilla.txt sevillanos.txt Crea un enlace físico (hard link) llamado sevillanos.txt
para el fichero texto sevilla.txt
ln -s sevilla.txt sev.txt Crea un enlace simbólico llamado sev.txt para el fichero
texto sevilla.txt
cat sev.txt Si mostramos el contenido de sev.txt es el mismo que
sevilla.txt
rm sev.txt Borra el enlace simbólico al fichero sevilla.txt
unlink sev.txt Borra el enlace simbólico al fichero sevilla.txt
ln -s Documents/ MisDocumentos Crea un enlace simbólico llamado MisDocumentos para
el directorio Documents
tree MisDocumentos Muestra el arbol de directorios de MisDocumentos que es
el mismo que el de Documents
unlink MisDocumentos Borra el enlace simbólico al directorio Documents
Jose Manuel Ayala Wilson

LOS PERMISOS
DE
LINUX
Jose Manuel Ayala Wilson

LOS PERMISOS DE UNIX/LINUX (1)


• La mayoría de los sistemas de archivos modernos
permiten asignar permisos (o derechos de acceso) a los
archivos para determinados usuarios y grupos de
usuarios.
• De esta manera, se puede restringir o permitir el acceso
de un determinado usuario a un archivo para su
visualización de contenidos, modificación y/o ejecución
(en caso de un archivo ejecutable).
• Los permisos de sistemas UNIX/Linux se dividen en tres
clases:
• usuario: permisos propietario del archivo
• grupo: permite que un conjunto de usuarios
compartan los mismos permisos
• otros: permiso del resto de los usuarios del sistema
Jose Manuel Ayala Wilson

LOS PERMISOS DE UNIX/LINUX (2)


permisos

propietario

grupo
Jose Manuel Ayala Wilson

LOS PERMISOS DE UNIX/LINUX (3)

Caracter Tipo de archivo Grupos rwx Significado


- Archivo regular primero Lo que el propietario puede
d Directorio hacer
b Archivo especial de bloques segundo Lo que los miembros del grupo
de usuario pueden hacer
c Archivo especial de caracteres
tercero Lo que el resto de los usuarios
l Enlace simbólico
pueden hacer
p Named pipe
s Socket de dominio RWR Significado
r r:leíble, -:no leíble
w w:modificable,-:no modificable
x x:ejecutable,-:no ejecutable
Jose Manuel Ayala Wilson

LOS PERMISOS DE UNIX/LINUX (4)


PERMISOS ARCHIVOS DIRECTORIOS
lectura (r) Permite visualizar el contenido Permite listar el contenido del directorio

escritura (w) Permite modificar el contenido Permite crear, modificar, borrar, mover y
renombrar ficheros y directorios en ese
directorio
ejecución (x) Permite ejecutar el archivo Permite situarse sobre el directorio para
poder examinar su contenido, copiar
archivos de o hacia él. Si no tienes
permiso de ejecución no podrás copiar o
mover ficheros si este directorio es origen,
destino o forma parte de la ruta
Jose Manuel Ayala Wilson

PERMISOS EN FORMATO NUMERICO


Permisos Binario Octal • Los permisos se pueden especificar en el
--- 000 0 sistema de numeración octal, donde cada
--x 001 1 grupo de permisos (3 grupos) podemos
-w- 010 2 representarlo con un dígito entre cero y siete
-wx 011 3 • Este dígito puede calcularse sumando los
r-- 100 4 valores de cada uno de los permisos.
r-x 101 5 • Por ejemplo si los permisos fueran:
rw- 110 6 rwxr-xr--
rwx 111 7
• Para el propietario sería: 4 + 2 + 1 = 7
Permiso Valor • Para el grupo sería: 4 + 0 + 1 = 5
r 4 • Y para otros sería: 4 + 0 + 0 = 4
w 2 • Sumamos 0 donde no hay permisos y 4, 2 ó
x 1 1 según el permiso que necesitemos
Jose Manuel Ayala Wilson

REVISAR LOS PERMISOS (1)


COMANDO DESCRIPCION
stat -c ‘%A’ usuarios.txt Tipo de fichero y bits de permisos en formato amigable
stat -c ‘%a’ usuarios.txt Permisos de un fichero en formato octal
stat -c ‘%A’ Documents/ Tipo y bits de permisos en formato amigable
stat -c ‘%a’ Documents/ Permisos de un directorio en formato octal
stat -c ‘%F’ usuarios.txt Tipo de un fichero
Jose Manuel Ayala Wilson

REVISAR LOS PERMISOS (2)


COMANDO DESCRIPCION
stat -c ‘%U’ sevilla.txt Propietario del fichero
stat -c ‘%u’ sevilla.txt ID del usuario propietario de un fichero
stat -c ‘%G’ sevilla.txt Nombre del grupo del propietario del fichero
stat -c ‘%g’ sevilla.txt ID del grupo del propietario del fichero
Jose Manuel Ayala Wilson

CAMBIAR LOS PERMISOS (1)


COMANDO DESCRIPCION
chmod +x saludo.sh Permiso de ejecución para el propietario, el grupo y el
resto de los usuarios
chmod u+x saludo.sh Permiso de ejecución para el propietario
chmod g+x saludo.sh Permiso de ejecución para el grupo
chmod o+x saludo.sh Permiso de ejecución para el resto de los usuarios
chmod +x MiCarpeta/ Permiso de acceso para MiCarpeta
chmod -x saludo.sh Sin permiso de ejecución para el propietario, el grupo y
el resto de los usuarios
chmod u-x saludo.sh Sin permiso de ejecución para el propietario
chmod g-x saludo.sh Sin permiso de ejecución para el grupo
chmod o-x saludo.sh Sin permiso de ejecución para el resto de los usuarios
chmod -x MiCarpeta/ Sin permiso de acceso para MiCarpeta
Jose Manuel Ayala Wilson

CAMBIAR LOS PERMISOS (2)


COMANDO DESCRIPCION
chmod u+r+w+x saludo.sh Todos los permisos para el propietario
chmod u+r+w,g+r,o+r saludo.sh Permisos de lectura y escritura para el propietario y
lectura para el grupo y otros usuarios
chmod ugo+w saludo.sh Permiso de escritura para propietario, grupo y otros
chmod -R 777 miCarpeta/ Todos los permisos para miCarpeta y todos los ficheros y
directorios que contenga
chmod -R 755 /var/www/html Todos los permisos para el propietario, lectura y
ejecución para el grupo y otros usuarios para
/var/www/html y todos los ficheros y directorios que
contenga
chmod 740 saludo.sh Todos los permisos para el propietario, lectura para el
grupo y ningún permiso para el resto de los usuarios
Jose Manuel Ayala Wilson

CAMBIAR PROPIETARIO Y GRUPO


COMANDO DESCRIPCION
sudo chown kali saludo.sh Cambia el dueño del fichero
sudo chown :root saludo.sh Cambia el grupo del fichero a root
sudo chown root:root saludo.sh Cambia el dueño y grupo del fichero
sudo chown -R kali:kali miCarpeta/ Cambia el dueño y grupo del directorio incluidos todos
los directorios y ficheros que contenga

Nota que las operaciones de cambio de grupo y propietario son privilegiadas!!!!


Jose Manuel Ayala Wilson

USUARIOS Y GRUPOS
Jose Manuel Ayala Wilson

GRUPOS DE UNIX/LINUX (1)


• Los grupos permiten conceder permisos a
un conjunto de usuarios simultáneamente.
• En Linux un usuario tiene los siguientes
grupos:
• Grupo primario: es el que consta como
su GID en /etc/passwd. Sólo puede tener
un grupo primario.
• Grupos secundarios o suplementarios:
son los gestionados en el fichero
/etc/group, donde se puede añadir un
usuario a más grupos.
Jose Manuel Ayala Wilson

GRUPOS DE UNIX/LINUX (2)


Fichero /etc/passwd donde están
registrados todos los usuarios del
sistema

Grupo primario del


usuario kali (gid)
Jose Manuel Ayala Wilson

GRUPOS DE UNIX/LINUX (3)


Fichero /etc/group donde están
registrados todos los grupos del
sistema

Usuarios del grupo


scanner

Usuarios del grupo


kaboxer
Jose Manuel Ayala Wilson

GRUPOS DE UNIX/LINUX (4)


• Durante la sesión de usuario se puede
cambiar temporalmente el grupo al que
pertenece el usuario:
• Grupo real: es su grupo primario que
consta en /etc/passwd. Es el grupo al
que pertenece un usuario cuando inicia
sesión.
• Grupo efectivo: mediante el comando
newgrp se puede cambiar el grupo
primario al que pertenece el usuario, y
la configuración es efectiva hasta que
cierre la sesión o vuelva a cambiar de
grupo efectivo.
Jose Manuel Ayala Wilson

COMANDOS DE GRUPO (1)


COMANDO DESCRIPCION
id [usuario] Muestra los grupos del usuario actual o del usuario
especificado
groups [usuario] Muestra los grupos del usuario actual o del usuario
especificado
sudo useradd -m -g kali -G Crea el usuario juan con su directorio en home, lo pone
kaboxer,scanner -p “” juan en el grupo primario kali y en los grupos kaboxer y
scanner y con una contraseña vacía (se cambia con
passwd)
sudo useradd -m -U -G Crea el usuario juan con su directorio en home, crea el
kali,kaboxer,scanner -p “” juan grupo primario juan y lo pone en ese grupo y en los
grupos kali, kaboxer y scanner y con una contraseña
vacía (se cambia con passwd)
sudo useradd -m -g kali -G Crea el usuario pedro con su directorio en home, lo
kaboxer,scanner -p “” -s /bin/bash asigna al grupo primario kali y a los grupos kaboxer y
pedro scanner, y con una contraseña vacía (se cambia con
passwd) y el shell bash
Jose Manuel Ayala Wilson

COMANDOS DE GRUPO (2)


COMANDO DESCRIPCION
sudo useradd -m -U -G kali,kaboxer,scanner -p “” Crea el usuario juan con su directorio en
-e 2021-02-23 juan home, crea el grupo primario juan y lo pone
en ese grupo y en los grupos kali, kaboxer y
scanner, no le asigna contraseña y fecha de
expiración el 23/02/2021
sudo useradd -m -U -G kali,kaboxer,scanner -p “” Crea el usuario juan con su directorio en
-e $(date -d “15 days” +”%Y-%m-%d”) juan home, crea el grupo primario juan y lo pone
en ese grupo y en los grupos kali, kaboxer y
scanner, no le asigna contraseña y fecha de
expiración dentro de 15 días
sudo useradd -m -U -G kali,kaboxer,scanner -p “” Crea el usuario juan con su directorio en
juan home, crea el grupo primario juan y lo pone
sudo sleep 600 && sudo usermod -L juan & en ese grupo y en los grupos kali, kaboxer y
scanner, no le asigna contraseña y fecha de
expiración dentro de 10 minutos
Jose Manuel Ayala Wilson

COMANDOS DE GRUPO (3)


COMANDO DESCRIPCION
sudo usermod -L <usuario> Bloquea el usuario inmediatamente
sudo usermod -U <usuario> Desbloquea el usuario inmediatamente
passwd Cambia la contraseña del usuario actual
sudo chage -d 0 <usuario> Hace que la contraseña del usuario caduque de
inmediato
sudo userdel -r <usuario> Elimina el usuario y su directorio en home
sudo groupadd <grupo> Crea un grupo
sudo groupdel <grupo> Elimina un grupo
sudo usermod -g <grupo> <usuario> Mete un usuario en un grupo primario (no usar con
el usuario kali)
sudo usermod -a -G Mete el usuario en los grupos indicados
<grupo1>,<grupo2> <usuario>
sudo deluser <usuario> <grupo> Elimina un usuario de un grupo
Jose Manuel Ayala Wilson

BUSQUEDA
DE
FICHEROS
Jose Manuel Ayala Wilson

BUSQUEDAS DE FICHEROS/DIRECTORIOS
• Linux tiene varios comandos para encontrar
ficheros y directorios que cumplan con
determinados criterios
• Estos criterios pueden incluir:
• nombre
• tamaño
• fecha y hora de creación
• permisos
• La búsqueda principal se hace por el nombre y
puede incluir comodines o wildcards
• Entre los comandos de búsqueda de Linux
tenemos:
• find
• locate
• whereis
Jose Manuel Ayala Wilson

BUSQUEDAS CON FIND (1)


COMANDO DESCRIPCION
find . -name *.txt Busca todos los ficheros cuyo nombre termine en .txt a
partir del directorio actual
find . -type d Busca todos los directorios a partir del directorio actual
find . -type d -name v* Busca todos los directorios a partir del directorio actual
cuyo nombre empiece por v
find . -type d -iname v* Busca todos los directorios a partir del directorio actual
cuyo nombre empiece por V o v (iname ignora
mayúsculas y minúsculas)
find . -type f Busca todos los ficheros a partir del directorio actual
find . -type f -name *txt Busca todos los ficheros a partir del directorio actual
cuyo nombre termine en txt
find / -type d -empty Busca todos los directorios vacíos del sistema
find / -type f -empty Busca todos los ficheros vacíos del sistema
find / -name "*.txt" -printf "%f\n" Muestra solo los nombres de ficheros sin la ruta
Jose Manuel Ayala Wilson

BUSQUEDAS CON FIND (2)


COMANDO DESCRIPCION
find . Busca todos los ficheros y directorios a partir del directorio
actual
find . -type d -iname 'd*' Busca todos los ficheros y directorios a partir del directorio
actual cuyo nombre empiece por D o d (el patrón de
búsqueda puede ir entre comillas simples o dobles)
find / -type l Busca todos los enlaces del sistema a partir del directorio
raiz
find / -type d Busca todos los directorios del sistema a partir del directorio
raiz
sudo find / -type f -name *icon Busca todos los iconos (imágenes) del sistema a partir del
directorio raiz
find / -type f -perm -u=x Busca todos los ficheros del sistema donde el usuario tenga
permisos de ejecucion (ficheros ejecutables)
find / -type f -perm -g=x Igual que la anterior pero donde el grupo tenga permisos de
ejecución
Jose Manuel Ayala Wilson

BUSQUEDAS CON FIND (3)


COMANDO DESCRIPCION
sudo find / -type f -perm 0777 Busca todos los ficheros que tengan todos los
permisos asignados (lectura, escritura y ejecución)
sudo find / -type f ! -perm 0777 Busca todos los ficheros que no tengan todos los
permisos asignados (lectura, escritura y ejecución)
sudo find / -type f -perm -a=r Busca todos los ficheros que tengan permiso de
lectura
sudo find / -type f -perm -a=w Busca todos los ficheros que tengan permiso de
escritura
sudo find / -type f -perm -a=x Busca todos los ficheros que tengan permisos de
ejecución
find / -type f -name ".*" Busca todos los ficheros ocultos
find / -user kali Busca todos los ficheros del usuario kali
sudo find / -user root Busca todos los ficheros del usuario root
sudo find / -group www-data Busca todos los ficheros del grupo www-data
Jose Manuel Ayala Wilson

BUSQUEDAS CON FIND (4)


COMANDO DESCRIPCION
sudo find /home -user kali -iname "*.txt" Busca todos los ficheros txt del usuario kali a partir
del directorio /home
find /home -user kali -mtime 15 Busca todos los ficheros actualizados o modificados
por el usuario kali en los últimos 15 días
find / -mtime +50 -mtime -100 Busca los ficheros modificados hace más de 50 días
pero menos de 100 días
find / -user kali -atime 10 Busca los ficheros accedidos por el usuario kali hace
menos de 10 días
find / -mmin -60 Busca todos los ficheros modificados en la última
hora
find / -amin 60 Busca todos los ficheros accedidos en la última hora
find / -size 50M Busca todos los ficheros que tienen un tamaño de
50 MB
find / -size +50M -size -100M Busca todos los ficheros mayores de 50 y menores
de 100 MB
Jose Manuel Ayala Wilson

BUSQUEDAS CON FIND (5)


COMANDO DESCRIPCION
find /bin /usr/bin /usr/sbin -name *.py Busca programas Python en 3 rutas
diferentes:/bin, /usr/bin y /usr/sbin
find / -name "*py" -o -name "*rb" Busca programas Python o programas
Ruby en todo el sistema
find . -type f -perm 0777 -exec chmod 644 {} \; Busca todos los ficheros con permisos de
777 y los cambia por permisos 644 a
partir del directorio actual
find . -type f -name "*.txt" -exec rm -f {} \; Borra todos los ficheros txt a partir del
directorio actual
find . -type f -name "*.mp3" -exec rm -f {} \; Borra todos los ficheros mp3 a partir del
directorio actual
find . -type f -size +100M -exec rm -f {} \; Borra todos los ficheros mayores de 100
MB a partir del directorio actual
find . -type f -name *.mp3 -size +10M -exec rm {} Borra todos los ficheros mp3 mayores de
\; 10 MB a partir del directorio actual
Jose Manuel Ayala Wilson

OTRAS BUSQUEDAS
COMANDO DESCRIPCION
sudo updatedb Actualiza la base de datos de ficheros desde donde
realiza las búsquedas locate (suele actualizarse de
forma automática también)
locate aircrack-ng Busca esta palabra en todo el sistema de ficheros
locate ls Busca todos los ficheros que contengan “ls” dentro
de su nombre en el sistema de ficheros
locate -c ls Solo muestra el número de ocurrencias encontradas
locate -i ls Ignora en las búsquedas las mayúsculas y
minúsculas
whereis python Busca binarios, ficheros fuente o entradas de
manual para el fichero especificado
which python Muestra la ruta donde se ubica el comando de shell
especificado
Jose Manuel Ayala Wilson

BUSQUEDA
DE
CONTENIDO
Jose Manuel Ayala Wilson

QUE ES UNA BUSQUEDA DE CONTENIDO


• Una búsqueda de contenido es la que
realizamos no teniendo en cuenta las
características de los ficheros tales como
nombre, tamaño, fecha de creación o
permisos sino su contenido
• Estás búsquedas se realizan
mayoritariamente sobre ficheros texto e
intentan localizar determinadas cadenas de
caracteres o patrones, mostrando además
la ruta al fichero y las líneas donde aparece
el patrón buscado
• La herramienta por excelencia para estas
búsquedas es grep
Jose Manuel Ayala Wilson

EL COMANDO GREP(1)
COMANDO DESCRIPCION
grep “kali” /etc/passwd Busca la cadena kali en un fichero específico
grep -r “kali” /etc Busca recursivamente -r los ficheros del arbol
completo de directorios de /etc
grep -inor “kali” /etc Busca recursivamente los ficheros del arbol
completo de directorios -r de /etc ignorando
mayúsculas y minúsculas -i, mostrando los números
de línea -n y mostrando solo la cadena encontrada -
o
grep -inor -B 1 -A 1 “kali” /etc Busca recursivamente los ficheros del arbol
completo de directorios -r de /etc ignorando
mayúsculas y minúsculas -i, mostrando los números
de línea -n, mostrando solo la cadena encontrada -o
y dejando una línea por delante -B 1 y una por
detrás -A 1 para separar los ficheros encontrados
Jose Manuel Ayala Wilson

EL COMANDO GREP(2)
COMANDO DESCRIPCION
grep -rl “kali” /etc Muestra solo los nombres de los ficheros -l donde se
encontró kali
sudo grep -c "kali" /etc/passwd Cuenta las ocurrencias de kali -c en el fichero
passwd
sudo grep -vc "kali" /etc/passwd Cuenta las no ocurrencias de kali -vc en el fichero
passwd
sudo grep -rc "kali" /etc Cuenta las ocurrencias de kali en -c cada uno de los
ficheros encontrados
Jose Manuel Ayala Wilson

STREAMS
Jose Manuel Ayala Wilson

QUE SON LOS STREAMS


• Todo proceso que se ejecuta en Linux se
inicializa con tres canales de datos
conocidos con el nombre de streams:
0 • stdin: entrada estándar (teclado por
defecto identificado por 0)
• stdout: salida estándar (mensajes al
usuario, el terminal por defecto
1 identificado por 1)
• stderr: salida estándar para errores (el
2 terminal por defecto identificado por 2)
• Estos canales de datos permiten comunicar
procesos pasando la salida de uno como
entrada de otro (redireccionar)
Jose Manuel Ayala Wilson

REDIRECCIONANDO SALIDAS
COMANDO DESCRIPCION
echo “Hola” > hola.txt Escribe un fichero con la salida del comando echo
cat f1.txt f2.txt > f12.txt Concatena los ficheros f1.txt y f2.txt en f12.txt
cat /etc/passwd > ./usuarios-linux El contenido de /etc/passwd lo copia en el directorio
actual en el fichero usuarios-linux
history > comandos-terminal Guarda los comandos tecleados en el terminal
find / -name "*.txt" 1>ficheros-texto Guarda los nombres de todos los ficheros txt
find ~ -type d > directorios-kali.txt Guarda todos los directorios del usuario kali
find / -type d >> directorios-kali.txt Añade al contenido del fichero directorios-kali.txt los
nuevos directorios encontrados
find / -name "*.txt" 2>/dev/null Elimina la salida de errores
find / -name "*.txt" 2>errores-find.txt Guarda los errores en un fichero
find . 1>/dev/null 2>&1 Envia la salida de errores a donde hayamos enviado la
salida estándar
Jose Manuel Ayala Wilson

REDIRECCIONANDO ENTRADAS
COMANDO DESCRIPCION
wc -l < ficheros-texto Redirecciona el contenido de un fichero al comando
wc y cuenta cuantas líneas tiene
grep < ficheros-texto “password” Encuentra que ficheros llevan la palabra password
grep -n < usuarios-linux “nologin” Encuentra los usuarios que no tienen login permitido
grep -nv < usuarios-linux "nologin" Encuentra los usuarios que podrían hacer login
grep -n < comandos-terminal “find” Encuentra las búsquedas del usuario con find
grep -n < comandos-terminal “rm” Encuentra en comandos-terminal los ficheros o
directorios borrados por el usuario
Jose Manuel Ayala Wilson

REDIRECCIONANDO ENTRADA Y SALIDA


COMANDO DESCRIPCION
wc -l < ficheros-texto > cantidad-txt Redirecciona el contenido de un fichero al
comando wc y cuenta cuantas líneas
tiene guardandolas en cantidad-txt
grep < ficheros-texto “password” > password-txt Encuentra que ficheros llevan la palabra
password y los guarda en un fichero
grep -n < usuarios-linux “nologin” > sin-login Encuentra que usuarios que no tienen
login permitido y los guarda en un fichero
grep -nv < usuarios-linux "nologin" > con-login Encuentra los usuarios que podrían hacer
login y los guarda en un fichero
grep -n < comandos-terminal “find” > busquedas Encuentra las busquedas con find y las
guarda en un fichero
grep -n < comandos-terminal “rm” > borrados Encuentra los ficheros y directorios
borrados y los guarda en un fichero
Jose Manuel Ayala Wilson

PIPES
(TUBERIAS)
Jose Manuel Ayala Wilson

QUE SON LOS PIPES (TUBERIAS)


• Quizás la utilidad más potente de la
entrada/salida estándar es la posibilidad de
encadenar comandos a través del uso de
Proceso Proceso “tuberías” (pipes), que permiten que la
1 2 salida de un comando sirva como entrada a
otro.
• Son un poderoso ejemplo de comunicación
entre procesos que nos permite procesar
Salida Entrada
información utilizando varios comandos o
estándar del estándar del
proceso 1 proceso 2 utilidades del sistema
• Nos ahorran tener que direccionar la
entrada y salida a ficheros temporales que
nos ocupan espacio en el disco
• Y nos permiten crear filtros para
seleccionar mejor la información
Jose Manuel Ayala Wilson

EJEMPLOS DE PIPES(1)
COMANDO DESCRIPCION
ls /bin | more Muestra la lista de ficheros de /bin y la pausa
en terminal
ls /bin | less Muestra la lista de ficheros de /bin y permite
revisarla en terminal con las teclas del cursor
cat ficheros-txt | wc -l Cuenta cuantas líneas hay en ficheros-txt
history | sort Muestra los comandos tecleados en el terminal
ordenados alfabéticamente
history | sort | less Permite revisar los comandos tecleados en el
terminal después de ordenarlos
find / -name "*.txt" -printf "%f\n" 2>/dev/null Muestra los ficheros txt del sistema eliminando
| uniq duplicados
find / -name "*.txt" -printf "%f\n" 2>/dev/null Muestra los ficheros txt del sistema eliminando
| uniq | sort duplicados y ordenandolos
Jose Manuel Ayala Wilson

EJEMPLOS DE PIPES(2)
COMANDO DESCRIPCION
find / -name “*.txt” 2>/dev/null | wc -l Cuenta los ficheros txt que tiene Kali
Linux
find / -name “*.txt” 2>/dev/null | grep “password” Encuentra que ficheros txt tienen la
palabra password en su nombre
cat /etc/passwd | grep “nologin” Encuentra que usuarios no pueden hacer
login
cat /etc/passwd | grep -v “nologin” Encuentra que usuarios podrían hacer
login
history | grep “find” Encuentra las búsquedas con find de un
usuario
history | grep “rm” Encuentra los borrados de un usuario
Jose Manuel Ayala Wilson

PIPES CON REDIRECCIONAMIENTO


COMANDO DESCRIPCION
find / -name “*.txt” 2>/dev/null | wc -l > cantidad- Cuenta los ficheros txt que tiene Kali
txt Linux y los guarda en un fichero
find / -name “*.txt” 2>/dev/null | grep “password” Encuentra que ficheros txt tienen la
> password-txt palabra password en su nombre y los
guarda en un fichero
cat /etc/passwd | grep “nologin” > sin-login Encuentra que usuarios no pueden hacer
login y los guarda en un fichero
cat /etc/passwd | grep -v “nologin” > con-login Encuentra que usuarios podrían hacer
login y los guarda en un fichero
history | grep “find” > busquedas Encuentra las búsquedas con find de un
usuario y las guarda en un fichero
history | grep “rm” > borrados Encuentra los borrados de un usuario y
los guarda en un fichero
Jose Manuel Ayala Wilson

TRATAMIENTO
DE
TEXTO
Jose Manuel Ayala Wilson

TRATAMIENTO DE TEXTO EN LINUX


• Linux incluye poderosos comandos para manipular o
tratar el contenido de ficheros texto desde la línea
comando
• Estos comandos nos van a permitir ordenar,
transformar, cambiar, formatear y escribir el
contenido de texto de uno o más ficheros y todos se
pueden usar con pipes

CREAR CONTENIDO
Vamos a preparar el fichero que usaremos en los
comandos de tratamiento de textos:
find / -name "*.txt" ! -name "[0-9]*.txt" -printf "%f\n"
2>/dev/null > ficheros-texto
Jose Manuel Ayala Wilson

EL COMANDO SORT
COMANDO DESCRIPCION
sort ficheros-texto Ordena el fichero en orden ascendente (a-z)
sort -r ficheros-texto Ordena el fichero en orden descendente (z-a)
sort -R ficheros-texto Ordena el fichero en orden aleatorio
sort -u ficheros-texto Ordena el fichero en orden ascendente eliminando
duplicados
sort -u ficheros-texto -o unicos Escribe la salida sin duplicados en el fichero unico
sort -u ficheros-texto > unicos Escribe la salida sin duplicados en el fichero unico
Jose Manuel Ayala Wilson

EL COMANDO UNIQ
COMANDO DESCRIPCION
uniq -d ficheros-texto Muestra las líneas que tienen duplicados
uniq ficheros-texto Muestra las líneas únicas eliminando duplicados
uniq -u ficheros-texto
uniq -c ficheros-texto Muestra las ocurrencias de cada línea en el fichero
Jose Manuel Ayala Wilson

EL COMANDO COMM
COMANDO DESCRIPCION
comm unicos ficheros-texto Muestra las lineas unicas del primer fichero, las
unicas del segundo fichero y las comunes a
ambos ficheros
comm -1 unicos ficheros-texto Suprime las líneas unicas del primer fichero
comm -2 unicos ficheros-texto Suprime las líneas unicas del segundo fichero
comm -3 unicos ficheros-texto Suprime las líneas comunes entre los dos
ficheros
sort ficheros-texto > f1 && sort unicos > f2 Muestra las líneas comunes entre ficheros-texto
&& comm -12 f1 f2 y unicos (que deberían ser las mismas que
unicos)

Este comando trabaja mejor si los dos ficheros están ordenados de la misma manera
Jose Manuel Ayala Wilson

EL COMANDO DIFF
COMANDO DESCRIPCION
diff -q f1 f2 Reporta si los ficheros son iguales o diferentes
diff -iy f1 f2 Muestra las diferencias a dos columnas e ignora
mayúsculas y minúsculas
diff -iy ficheros-texto unicos Muestra las diferencias a dos columnas e ignora
mayúsculas y minúsculas
diff -r d1 d2 Reporta las diferencias entre dos directorios d1 y d2

Este comando trabaja mejor si los dos ficheros están ordenados de la misma manera
Jose Manuel Ayala Wilson

EL COMANDO TR
COMANDO DESCRIPCION
tr a-z A-Z < unicos Convierte a mayúsculas todo el fichero
tr A-Z a-z < unicos Convierte a minúsculas todo el fichero
tr -d [0-9] < unicos Borra todos los digitos del fichero
tr -d - < unicos Borra el guión del fichero
tr -d _- < unicos Borra el guión bajo y el guión del fichero
tr a-z n-za-m < unicos > encriptados Encripta los nombres de los ficheros
tr a-z n-za-m < encriptados Desencripta los nombres de los ficheros
Jose Manuel Ayala Wilson

EL COMANDO SED (1)


COMANDO DESCRIPCION
sed '/zsploit/d' unicos Borra todas las lineas en unico que contengan
zsploit
sed '/zsploit/!d' unicos Borra todas las lineas en unico que no contengan
zsploit
sed '$d' unicos Borra la última línea del fichero
sed '2,5d' unicos Borra todas las líneas de la 2 a la 5 (2,3,4,5)
sed '1,/zango/d' unicos Borra todas las líneas desde la 1 hasta la línea que
contega la cadena zango (esta línea va incluida)
sed '/zango/,$d' unicos Borra todas las líneas desde la que contiene la
cadena zango hasta el final del fichero
Jose Manuel Ayala Wilson

EL COMANDO SED (2)


COMANDO DESCRIPCION
sed 's/.com/.kom/g' unicos Cambia .com por .kom en todo el
fichero
sed -i 's/.com/.kom/g' unicos Cambia .com por .kom en todo el
fichero y lo modifica
sed -i.bak 's/.com/.kom/g' unicos Realiza el comando anterior pero
creando un fichero de respaldo por si
el cambio no es correcto
sed '1712,1713s/sploit/xploit/gI' unicos Sustituye en las lineas 1712 y 1713 la
cadena sploit por xploit (todas las
ocurrencias con g e ignorando
mayúsculas y minúsculas con I)
sed '/.net/ s/.txt/.texto/g' unicos En todas las líneas donde aparece .net
cambia .txt por .texto
sed -e 's/yahoo/yahoo!/g' -e 's/zsploit/xsploit/g' unicos Sustituciones múltiples en un fichero
Jose Manuel Ayala Wilson

EL COMANDO SED (3)


COMANDO DESCRIPCION
sed -n '5p' unicos Muestra la línea 5 del fichero
sed -n '1,5p' unicos Muestra las líneas de la 1 a la 5
sed -n '/yahoo/p' unicos Muestra todas las líneas que contienen yahoo
sed -n '1,100!p' unicos Muestra todas las líneas excepto las que van de 1 a
100
Jose Manuel Ayala Wilson

EL COMANDO AWK
COMANDO DESCRIPCION
awk '/yahoo/' unicos Muestra todas las líneas que contienen la cadena yahoo
awk '!/yahoo/' unicos Muestra todas las líneas que no contienen la cadena
yahoo
ls -l | awk '{print $1,$9}' Muestra los permisos y el nombre de los ficheros en un
listado de directorio
ps aux | awk '{print $1,$2,$11}' Listado de procesos filtrando el usuario, el PID y el
nombre del proceso
ps aux | awk '{print $1,$NF}' Listado de procesos filtrando la primera y la última
columna

Los espacios en blanco o los tabs dividen las columnas de un fichero


Jose Manuel Ayala Wilson

EL COMANDO CUT
COMANDO DESCRIPCION
ls -l | cut -d' ' -f1,3,4 Muestra las columnas 1,3 y 4 de un listado de directorios.
El separador con -d es el espacio en blanco
cut -d':' -f1 /etc/passwd Muestra la columna 1 del fichero de usuarios
cut -d':' -f1,7 /etc/passwd Muestra las columnas 1 y 7 separadas por dos puntos
cut -d':' -f1-7 /etc/passwd Muestra las columnas de la 1 a la 7 separadas por dos
puntos
cut -d':' -f1-7 --output-delimiter=’ ’ Muestra las columnas de la 1 a la 7 separadas por
/etc/passwd espacio en blanco en vez de por dos puntos
Jose Manuel Ayala Wilson

PROCESOS Y
SERVICIOS
(DEMONIOS)
Jose Manuel Ayala Wilson

PROCESOS EN LINUX (1)


• Un proceso es una instancia (copia) de un programa
en ejecución. El contexto de un programa que esta
en ejecución es la esencia del proceso.
• Este contexto implica que el proceso está definido
por el programa, el espacio de memoria que ocupa
y los procesos hijos que mande a llamar.
• Los hijos de un proceso comienzan siendo copias
exactas del proceso padre, para así llamar al
programa o tarea correspondiente.
• De esta manera el proceso principal (proceso
padre), comparte con sus hijos los recursos del
sistema que este consumiendo, sus atributos de
seguridad (tales como su propietario y permisos)
• Cada proceso que se inicia es referenciado con su
Process ID (PID), que es siempre un entero positivo
entre 0 y 65,535 aunque esto puede modificarse.
Jose Manuel Ayala Wilson

PROCESOS EN LINUX (2)


• Linux es un sistema operativo multitarea y
multiusuario, esto implica que múltiples procesos
pueden operar simultáneamente sin interferirse unos
con los otros. Cada proceso tiene la "ilusión" que es
el único proceso en el sistema y que tiene acceso
exclusivo a todos los servicios del sistema operativo.
• Programas y procesos son entidades distintas.
• En un sistema operativo multitarea, múltiples
instancias de un programa pueden ejecutarse
simultáneamente y cada una es un proceso separado.
• Todo lo que se está ejecutando en el sistema en
cualquier momento es un proceso, excepto el kernel,
el cual es un conjunto de rutinas que residen en
memoria y que entre otras responsabilidades
administra el planificador que se encarga de
controlar los procesos.
Jose Manuel Ayala Wilson

HILOS DE PROCESO
• Los hilos son similares a los procesos ya que ambos
representan una secuencia simple de instrucciones
• ejecutada en paralelo con otras secuencias.
• Los hilos son una forma de dividir un programa en
dos o más tareas que corren simultáneamente,
compitiendo, en algunos casos, por la CPU.
• La diferencia más significativa entre los procesos y
los hilos, es que los primeros son típicamente
independientes, llevan bastante información de
estados, e interactúan sólo a través de mecanismos
de comunicación dados por el sistema.
• Por otra parte, los hilos generalmente comparten la
memoria, es decir, acceden a las mismas variables
• globales o dinámicas, por lo que no necesitan
costosos mecanismos de comunicación para
sincronizarse.
Jose Manuel Ayala Wilson

COMANDOS DE PROCESOS
COMANDO DESCRIPCION
top Muestra los procesos en ejecución (salir con q)
ps aux Muestra los procesos con información detallada
ps axjf Muestra los procesos y sus dependencias en árbol
pstree -AGu Muestra los procesos y sus usuarios en forma de árbol
ps -eo user,pid,tty Muestra las información seleccionada sobre procesos
ps -eF Muestra información detallada sobre los procesos
kill -9 <pid> Mata un proceso por su PID
killall -KILL <nombre> Mata un proceso por su nombre
nice -n <prioridad> <comando> Ejecuta un comando con prioridad entre -20 (más alta) y 19
(más baja). Por defecto la prioridad es 0 y solo root pueda
dar prioridades negativas que son más altas
renice <prioridad> <pid> Permite cambiar la prioridad de un proceso en ejecución
ps -el Permite ver prioridades de los procesos (columna NI)
Jose Manuel Ayala Wilson

SERVICIOS
• Un servicio es un programa que se ejecuta en
segundo plano, fuera del control interactivo de los
usuarios del sistema, ya que carecen de una interfaz.
• Esto con el fin de proporcionar aún más seguridad,
pues algunos de estos servicios son cruciales para el
funcionamiento del sistema operativo.
• Por otro lado, en sistemas como Unix o Linux, los
servicios también se conocen como daemons o
demonios.
• A veces el nombre de estos servicios, o daemons,
terminan con la letra d. Por ejemplo, sshd es el
nombre del servicio que maneja SSH.
• Podemos ver los ficheros de control de los servicios
del sistema en el directorio /etc/init.d
Jose Manuel Ayala Wilson

ESTADO DE LOS SERVICIOS


• Servicios habilitados (Enabled) son los que se están
ejecutando actualmente. Generalmente estos no
tienen problemas.
• Servicios deshabilitados (Disabled) son los que no
están activos, pero se pueden activar en cualquier
momento sin ningún problema.
• Servicios enmascarados (Masked) no se ejecutarán a
menos que les quites esa propiedad.
• Servicios estáticos (Static) solo se utilizarán en caso
de que otro servicio o unidad los necesite.
• Servicios generados (generated) a través de
utilidades del sistema como initscript SysV o LSB con
el generador systemd.
Jose Manuel Ayala Wilson

COMANDOS DE SERVICIOS
COMANDO DESCRIPCION
sudo service --status-all Lista los servicios del sistema (+ activos y - inactivos)
sudo service <serv> start Arranca un servicio
sudo service <serv> stop Detiene un servicio
sudo service <serv> status Muestra el estado de un servicio (arrancado o parado)
sudo systemctl list-unit-files -- Estado de los servicios del sistema
type service --all
sudo systemctl start <serv> Arranca un servicio
sudo systemctl stop <serv> Detiene un servicio
sudo systemctl status <serv> Muestra el estado de un servicio (arrancado o parado)
sudo systemctl enable <serv> Al arrancar el sistema arranca el servicio automáticamente
sudo systemctl disable <serv> Al arrancar el sistema no arranca el servicio
Jose Manuel Ayala Wilson

ACTUALIZAR
EL
SISTEMA
Jose Manuel Ayala Wilson

ACTUALIZAR EL SISTEMA
• Actualizar el sistema se refiere a instalar nuevos
paquetes, borrar paquetes existentes o actualizar la
versión de los paquetes instalados o del propio
kernel del sistema operativo
• Las actualizaciones pueden ser críticas desde el
punto de vista de la estabilidad y seguridad del
sistema operativo además de añadir nuevas
funcionalidades o eliminar las que no usamos
• En este módulo vamos a estudiar la actualización
de sistemas tipo Debian (Debian, Ubuntu, Kali)
• Otras distros como Fedora tienen otros comandos
de actualización
Jose Manuel Ayala Wilson

EL COMANDO APT
COMANDO DESCRIPCION
sudo apt update Actualiza la lista de paquetes
sudo apt --fix-missing update Actualiza la lista verificando que no existan nuevas
versiones
sudo apt upgrade Actualiza de forma segura el sistema
sudo apt autoremove Borra los paquetes que no se usan
sudo apt autoclean Borra todos los paquetes antiguos descargados
sudo apt install -f Actualiza los paquetes rotos durante una actualización
sudo apt install <paquete> Instala un paquete
sudo apt remove <paquete> Desinstala un paquete
sudo apt purge <paquete> Desinstala un paquete y su configuración
sudo apt-cache search <paquete> Busca un paquete en los repositorios
sudo apt version <paquete> Muestra la versión de un paquete instalado
Jose Manuel Ayala Wilson

EL COMANDO DPKG
COMANDO DESCRIPCION
sudo dpkg -i <paquete> Instala el paquete normalmente desde un fichero .deb
descargado en nuestro ordenador
sudo dpkg -r <paquete> Desinstala un paquete del sistema
sudo dpkg -P <paquete> Desinstala un paquete y elimina su configuración
dpkg -l Lista los paquetes instalados en el sistema
dpkg -s <paquete> Verifica si un paquete está instalado o no
sudo dpkg --configure -a Actualiza paquetes rotos
Jose Manuel Ayala Wilson

COMPRESION
DE
FICHEROS
Jose Manuel Ayala Wilson

COMPRESION DE FICHEROS
• La compresión de ficheros es un mecanismo muy
utilizado en los sistemas operativos para ahorrar
espacio en disco y en general en cualquier
transmisión de datos
• Consiste en unos algoritmos matemáticos que
permiten compactar la información redundante en
un fichero o grupo de ficheros haciéndolos más
pequeños (pueden comprimirse directorios)
• La operación inversa a comprimir un fichero sería
descomprimirlo, para lo cuál vamos a necesitar el
correspondiente espacio en el disco.
• Los datos solo pueden usarse descomprimidos!!!
• Existen muchos métodos de compresión en Linux,
entre ellos: tar.gz, zip, rar, lzma, 7zip, xz, gzip, bzip,
etc.
Jose Manuel Ayala Wilson

TIPOS DE COMPRESION
Compresión en volumen único: todos los ficheros o directorios a
comprimir se meten dentro de un único fichero que ocupará el
tamaño que necesite. Puede ser enorme y difícil de enviar por correo,
de copiar en un disco externo o pendrive e incluso de descargar
desde un almacenamiento en la nube.

Compresión multivolumen: todos los ficheros o directorios se


comprimen en múltiples ficheros o volúmenes de tamaño fijo que se
van necesitar para descomprimir el conjunto de la información. Es
más fácil de enviar o descargar pero puede perderse toda la
información si falta un volumen o se daña o se pierde
Jose Manuel Ayala Wilson

EL COMANDO TAR (1)


COMANDO DESCRIPCION
tar cvf <fichero>.tar <fichero-a-comprimir> Comprime un fichero en un tar
tar cvf <fichero>.tar <directorio-a-comprimir> Comprime un directorio en un tar
tar cvfz <fichero>.tar.gz <fichero-a-comprimir> Comprime un fichero en formato tar.gz
tar cvfj <fichero>.tar.bz2 <fichero-a-comprimir> Comprime un fichero en formato tar.bz2
tar xvf <fichero>.tar Descomprime un tar, tar.gz, tar.bz2
tar tvf <fichero>.tar Lista el contenido de un tar, tar.gz,
tar.bz2
tar xvf <fichero>.tar <fichero-a-extraer> Extrae del tar un fichero único
tar xvfz <fichero>.tar.gz <fichero-a-extraer> Extrae del tar.gz un fichero único
tar xvfj <fichero>.tar.bz2 <fichero-a-extraer> Extrae del tar.bz2 un fichero único
Jose Manuel Ayala Wilson

EL COMANDO TAR (2)


COMANDO DESCRIPCION
tar xvf <fichero>.tar <fich-1> <fich-2> Extrae del tar una lista de ficheros
tar xvfz <fichero>.tar.gz <fich-1> <fich-2> Extrae del tar.gz una lista de ficheros
tar xvfj <fichero>.tar.bz2 <fich-1> <fich-2> Extrae del tar.bz2 una lista de ficheros
tar xvf <fichero>.tar --wildcards *.<ext> Extrae del tar una lista de ficheros
tar xvfz <fichero>.tar.gz --wildcards *.<ext> Extrae del tar.gz una lista de ficheros
tar xvfj <fichero>.tar.bz2 --wildcards *.<ext> Extrae del tar.bz2 una lista de ficheros
tar rvf <fichero>.tar <fich-1> Adiciona un fichero al tar

Los ficheros tar que estén comprimidos con gz o bz2 no se pueden actualizar (añadir nuevos
ficheros)
Jose Manuel Ayala Wilson

EL COMANDO GZIP
COMANDO DESCRIPCION
gzip <fichero-a-comprimir> Crea el fichero con extensión .gz y borra el fichero
original
gzip -k <fichero-a-comprimir> Crea el fichero con extensión .gz y manteniendo el
fichero original
gzip fich1 fich2 fich3 Comprime múltiples ficheros creando fich1.gz, fich2.gz
y fich3.gz
gzip -r <directorio> Comprime todos los ficheros de un directorio
incluyendo los contenidos en subdirectorios
gzip -d <fichero-a-descomprimir> Descomprime un fichero y borra el .gz
gzip -dk <fichero-a-descomprimir> Descomprime un fichero y mantiene el .gz
gzip -dr <directorio> Descomprime todos los ficheros del directorio
gzip -d fich1.gz fich2.gz Descomprime múltiples ficheros
gzip -l fich1.gz Lista el contenido del fichero .gz
Jose Manuel Ayala Wilson

LOS COMANDOS ZIP/UNZIP


COMANDO DESCRIPCION
zip fich.zip fich1 fich2 fich3 Comprime fich1, fich2 y fich3 en fich.zip
zip -m fich.zip fich1 fich2 fich3 Comprime fich1, fich2 y fich3 en fich.zip y luego los borra
zip -e fich.zip fich1 Comprime y encripta con contraseña a fich1 en fich.zip
zip -T fich.zip Comprueba la integridad de fich.zip
zip -r fich.zip directorio/ Comprime un arbol de directorio con su contenido en fich.zip
unzip -l fich.zip Lista el contenido de fich.zip
unzip fich.zip Extrae el contenido de fich.zip
Jose Manuel Ayala Wilson

EL COMANDO 7ZIP
COMANDO DESCRIPCION
7z a fich.7z fich1 fich2 fich3 Añade los ficheros fich1, fich2 y fich3 a fich.7z
7z a dir.7z mydir/ Comprime en dir.7z el arbol de directorios mydir
7z e fich.7z Extrae los ficheros de fich.7z sin directorios
7z x fich.7z Extrae los ficheros de fich.7z con sus directorios
7z t fich.7z Comprueba la integridad de fich.7z
7z l fich.7z Muestra la lista de ficheros de fich.7z
7z a -p fich.7z fich1 Comprime fich1 en fich con una contraseña
7z a -v10m fich.7z fich1 Comprime fich1 en fich.7z generando volúmenes de 10
MB. Pueden crearse con -v<tamaño><unidad> donde
estas pueden ser b para bytes, k para kilobytes, m
para megabytes o g para gigabytes
Jose Manuel Ayala Wilson

EL COMANDO RAR
COMANDO DESCRIPCION
rar a fich.rar fich1 fich2 fich3 Añade los ficheros fich1, fich2 y fich3 a fich.rar
rar a dir.rar mydir/ Comprime en dir.rar el arbol de directorios mydir
rar e fich.rar Extrae los ficheros de fich.rar sin directorios
rar x fich.rar Extrae los ficheros de fich.rar con sus directorios
rar t fich.rar Comprueba la integridad de fich.rar
rar l fich.rar Muestra la lista de ficheros de fich.rar
rar a -p fich.rar fich1 Comprime fich1 en fich con una contraseña
rar a -v10m fich.rar fich1 Comprime fich1 en fich.rar generando volúmenes de
10 MB. Pueden crearse con -v<tamaño><unidad>
donde estas pueden ser b para bytes, k para kilobytes,
m para megabytes o g para gigabytes
Jose Manuel Ayala Wilson

COMANDOS
DE
RED
Jose Manuel Ayala Wilson

COMANDOS DE RED
• Los comandos de red nos permiten:
• Verificar las comunicaciones a través de la red
de nuestra máquina Linux
• Conocer las interfaces de red del sistema
• Ver estadísticas de la transmisión de datos
• Cambiar configuraciones de la red
• Ver las conexiones de red de los procesos
Jose Manuel Ayala Wilson

EL COMANDO IFCONFIG
COMANDO DESCRIPCION
ifconfig Muestra la configuración de todas las interfaces de red
ifconfig -s Muestra la configuración en forma de tabla
ifconfig eth0 Muestra la configuración de la interfaz eth0
sudo ifconfig eth0 down Desactiva la interfaz eth0
sudo ifconfig eth0 up Activa la interfaz eth0
sudo ifconfig eth0 hw ether <mac> Cambiamos la dirección MAC con la interfaz
desactivada (en la máquina virtual lo hacemos en la
configuración de red)
Jose Manuel Ayala Wilson

EL COMANDO IP
COMANDO DESCRIPCION
ip addr show Muestra la configuración de todas las interfaces de red
(también se puede ejecutar como ip a)
ip route Verificar la puerta de enlace predeterminada
ip addr show eth0 Muestra la configuración de la interfaz eth0
sudo ip link set eth0 down Desactiva la interfaz eth0
sudo ip link set eth0 up Activa la interfaz eth0
ip -s link Ver las estadísticas de uso de las interfaces de red
Jose Manuel Ayala Wilson

EL COMANDO NETSTAT
COMANDO DESCRIPCION
netstat -a Lista todas las conexiones
netstat -at Lista todas las conexiones TCP
netstat -au Lista todas las conexiones UDP
netstat -lnt Lista conexiones en escucha (puertos abiertos)
sudo netstat -lnpt Lista las conexiones en escucha (puertos
abiertos) y los procesos que las tienen
sudo netstat -ltpe Lista las conexiones en escucha (puertos
abiertos) y los procesos y usuarios que las
tienen
netstat -s Muestra estadísticas por protocolo
sudo netstat -atnp | grep ESTA Muestra las conexiones activas
sudo watch -d -n0 "netstat -atnp | grep ESTA" Vigila las conexiones activas
Jose Manuel Ayala Wilson

EL COMANDO SS
COMANDO DESCRIPCION
ss Listar todas las conexiones
ss -a Listar las conexiones de todos los puertos
ss -l Listar las conexiones que escuchan
ss -lt Listas todas las conexiones tcp que escuchan
ss -lu Listar todas las conexiones udp que escuchan
sudo ss -ltp Listar todas las conexiones tcp que escuchan con sus
procesos
sudo ss -lup Listar todas las conexiones udp que escuchan con sus
procesos
ss -at '( dport = :22 or sport = :22 )' Filtrando conexiones por el número de puerto
ss -at '( dport = :ssh or sport = :ssh)' Filtrando conexiones por el protocolo equivalente
Jose Manuel Ayala Wilson

EL PLANIFICADOR
DE
TAREAS
Jose Manuel Ayala Wilson

QUE ES CRON
• El nombre cron viene del griego chronos que
significa “tiempo”.
• En el sistema operativo Unix/Linux, cron es un
planificador de tareas o administrador de procesos
en segundo plano que ejecuta tareas o scripts a
intervalos regulares (por ejemplo, cada minuto, día,
semana o mes).
• Los procesos que deben ejecutarse y la hora en la
que deben hacerlo se especifican en el fichero
crontab.
• El demonio cron inicia de /etc/rc.d/ o /etc/init.d
dependiendo de la distribucion.
• Cron se ejecuta en el background, revisa cada
minuto la tabla de tareas crontab /etc/crontab o en
/var/spool/cron en búsqueda de tareas que se
deban cumplir.
Jose Manuel Ayala Wilson

CRONTAB
• Crontab es un simple archivo de texto que guarda
una lista de comandos a ejecutar en un tiempo
especificado por el usuario.
• Crontab verificará la fecha y hora en que se debe
ejecutar el script o el comando, los permisos de
ejecución y lo realizará en background.
• Cada usuario puede tener su propio archivo crontab,
de hecho el /etc/crontab se asume que es el archivo
crontab del usuario root, cuando los usuarios
normales (e incluso root) desean generar su propio
archivo de crontab, entonces utilizaremos el
comando crontab.
• Crontab es la manera mas sencilla de administrar
tareas de cron en sistemas multiusuario, ya sea
como simple usuario de sistema o usuario root.
Jose Manuel Ayala Wilson

LAS DEFINICIONES EN CRONTAB


m h dom mon dow command

• Una entrada del archivo crontab para ejecutar por tiempo un proceso tiene el
siguiente formato:
• m corresponde al minuto (0..59)
• h la hora exacta (0..23)
• dom hace referencia al día del mes, por ejemplo se puede especificar 15 si se
quiere ejecutar cada dia 15
• dow significa el día de la semana, puede ser numérico (0 a 7, donde 0 y 7 son
domingo) o las 3 primeras letras del día en inglés: mon, tue, wed, thu, fri, sat,
sun.
• command refiere al comando o a la ruta absoluta del script a ejecutar, ejemplo:
/home/usuario/scripts/actualizar.sh
• Las líneas que empiezan con # son comentarios y no son tenidas en cuenta
Jose Manuel Ayala Wilson

EJEMPLOS DE CRONTAB
ENTRADA DE CRONTAB DESCRIPCION
* * * * * /home/kali/porminuto.sh Ejecuta un script cada minuto
30 10 * * * /home/kali/donikto.sh Ejecuta un script todos los días a las 10:30
00 10 * * 0 /root/dominical.sh Ejecuta el script los domingos a las 10:00
30 7 20 11 * /home/kali/doskipfish.sh Ejecuta el script el 20 de noviembre a las 07:30
@reboot /home/kali/upkali.sh Ejecuta el scrip después de un reboot
@yearly /home/kali/anual.sh Ejecuta el script una vez al año 0 0 1 1 *
@annually /home/kali/anual.sh Ejecuta el script una vez al año 0 0 1 1 *
@monthly /home/kali/mensual.sh Ejecuta el script una vez al mes 0 0 1 * *
@weekly /home/kali/semanal.sh Ejecuta el script una vez a la semana 0 0 * * 0
@daily /home/kali/diario.sh Ejecuta el script una vez al dia 0 0 * * *
@hourly /home/kali/cadahora.sh Ejecuta el script cada hora 0 * * * *
Jose Manuel Ayala Wilson

COMANDOS DE CRON
COMANDO DESCRIPCION
crontab -e Abre el fichero de crontab del usuario actual
sudo crontab -e Abre el fichero de crontab del usuario root
crontab -l Lista todas las tareas del crontab del usuario
crontab -r Borra el contenido del crontab del usuario
crontab -i Pregunta antes de borrar el contenido del crontab del usuario
crontab -u <usuario> Referencia el crontab de un usuario específico

• La primera vez que intentamos


editar el fichero crontab nos
permite elegir con que lo vamos
a editar
• nano es el editor por amigable,
así que seleccionaremos 1

También podría gustarte