GNU/Linux LPIC-1 / 5 de Noviembre de 2018: directorio proc, Grub, udev, etc

El directorio /proc

Pseudofilesystem que guarda información sobre el sistema y los procesos

  • se inicializa durante el arranque
  • está implementado en memoria y no se guarda en disco
  • la estructura del directorio /proc depende de la versión del kernel
  • los comandos vistos (ps, top, etc.) obtienen la información sobre los procesos de este directorio

Algunos ficheros y directorios son:

  • cpuinfo: información estática de la CPU
  • meminfo: información de uso de la memoria
  • partitions: información sobre las particiones
  • filesystems: sistemas de ficheros soportados por el kernel
  • version: versión y fecha del kernel
  • bus/: directorio con información de los buses PCI y USB
  • cmdline: línea de arranque del kernel
  • devices: dispositivos del sistema de caracteres o bloques
  • modules: módulos del kernel
  • net/: directorio con información de red
  • interrupts: muestra el número de interrupciones por IRQ
  • ioports: lista los puertos de entrada salida usados en el sistema

Además, existen un directorio por cada proceso, que se identifica con el PID del proceso, en el que se puede encontrar información sobre cada proceso, incluidos:

  • el directorio desde que se invoco el proceso (enlace cwd)
  • nombre del ejecutable (enlace exe) y la línea de comandos con la que fue invocado (fichero cmdline)
  • entorno en que se ejecuta el proceso (fichero environ)
  • estado del proceso (fichero status)
  • descriptores de ficheros abiertos y archivos o procesos relacionados (directorio fd)
  • mapa de memoria (fichero maps)

Nota: en el kernel 2.6 de Linux aparece un nuevo pseudofilesystem (/sys) que reemplaza al /proc en lo que se refiere a visualización y ajuste de dispositivos


Herramienta “docker”: gestión de contenedores en temas de virtualización.

Contenedor: compartimos kernel con varias máquinas.

md5
colisión: diferentes entradas, dan el mismo resultado de md5.

Temas SQL no entran en la versión 5 del LPIC-1


Capítulo final SSH:

Copia de archivo remoto a escritorio de máquina local:
scp lpic1@192.168.20.203:/home/lpic1/Escritorio/fstab /home/lpic1/Escritorio

scp /etc/fstab lpic1@192.168.20.203:/home/lpic1/Escritorio

scp /etc/* lpic1@192.168.20.203:/home/lpic1/Escritorio

sudo apt install sshfs
sshfs: monta una carpeta remota de un servidor

sudo mount unacarpetaremota /mnt/hola

(nfs,webdab: otras tecnologías para montar carpetas remotas)

Claves ÇSSH: normalmente, es por contraseña, pero el otro sistema de autentificación es por claves.
Entras no gracias una cosa que tú sabes (contraseña) si no por algo que tú tienes: un archivo.

Claves privadas y claves públicas

HTTPS: comunicación segura. También hace servir claves públicas y privadas.

En HHTPS:
Son 2 ficheros que van en pareja. Fichero de clave privada: en el servidor. Clave pública: se las das a todo el mundo. Compruebas la identificación del servidor… ¿es el que es? ¿es el bueno?

En SSH: al revés. El cliente, tiene la clave privada y el servidor tiene la clave pública. Comprueba la identificación del cliente… ¿es quien toca? ¿está en la lista?

Configuración del servidor para aceptar claves públicas y privadas.

Crear pareja de claves: ssh-keygen -b 2048 -t rsa

rsa: algoritmo criptográfico
2048: tamaño de la clave en bits
passphrase: contraseña extra opcional, que te la pide al establecer la conexión. Por si te roban la llave privada, tienes a parte, la contraseña.

Ficheros de claves pública y privada


En el servidor, carpeta .ssh, hemos de crear: nano authorized_keys

Y añadir todo el contenido de la clave pública en ese fichero.

Confirmar que la configuracion del servidor hace uso de este sistema de autentificación:

sudo nano /etc/ssh/sshd_config

Está comentada: el valor por defecto es el comentado. Si queremos cambiarlo, quitar comentario y poner no.

por defecto, también está activado el sistema por defecto de autentificación

Hay granjas de servidores que están continuamente probando claves SSH para entrar.

Modo verbose en ssh:

ssh -v -Info de lo que pasa
ssh -vv -> Mucha más info!
ssh -vvv -> Todo!


BIOS -> MBR (primer sector del disco duro). 1 sector=512 bytes
aunque ocupemos 1 bit, usaremos 512 bytes (un sector entero)

En el MBR ha de haber el gestor de arranque y la tabla de particiones.
Gestor de arranque lee tabla de particiones.
La particion activa es la que el gestor de arranque coge y allí va a buscar un kernel.
Y el Kernel hace el proceso de arranque, monta la raíz del disco y cuando acaba, le pasa el marron al proceso numero 1.

Gestores de arranque:
Grub, Syslinux, NTLDR

BIOS->MBR->Particion activa : Estrucutra msdos

Sólo permite 4 particiones.

Truco: convertíamos una de las particiones en una particion extendida, la cuál si se puede dividir en varias (particiones lógicas).

En 512 bytes, ha de caber el grub y la tabla de las 4 particiones!
Discos tipo msdos (formato msdos)


UEFI: discos tipo gpt
No hay MBR. Está el ESP (EFI System Partition). U de universal (standar universal).
ESP ya no es de 512 btytes! Es una partición! Ha de ser FAT32.
En el ESP tiene el Gestor de Arranque y la Tabla de Particiones.

No hay límites en el número de particiones en un sistema con UEFI.

Comando: efibootmgtr: se puede elegir qué gestor de arranque inicia por defecto

ESP se suele poner en /boot/efi -> suele ser el punto de montaje de un sistema UEFI: punto de montaje de la partición ESP.

Una forma de comprobar si el sistema es UEFI, es si existe /boot/efi

Sistema EFI mínimo

GRUB

/etc/default/grub :

GRUB_DEFAULT=-1 (sin timeout, fijo)

GRUB_CMDLINE_LINUX_DEFAULT=”quiet” -> parámetros que le pasamos al Kernel.

cd /etc/grub.d

Otra parte de la configuración del Grub:

son bash scripts! son los que construyen el menú.

booter: calzador

por ejemplo, en 05_debian_theme, podemos modificar la imagen de fondo del Grub que cargamos.

10_linux => scripts que muestran las entradas del Kernel que encuentra en /boot (los archivos kernel zmlinuz que encuentra)

linux_xen => tema virtualización

os-prober: añade al menu todas las entradas que son del otro sistema

uefi-firmware => si no se puede entrar en ningun sistema, podemos entrar al sistema EFI

custom: agregar nuestras propias entradas

nano /boot/grub/grub.cfg :

os-prober => buscar otras entradas de SS.OO.

ahora hay que re-generar el arranque (regenera archivo grub.cfg). No tocarlo! Tocar los otros archivos. Es por tema de actualizaciones del software, para que no re-escribir archivos de configuracion del Grub:

sudo grub-mkconfig -o /boot/grub/grub.cfg

y se regenera el fichero cfg:

sudo update-grub -> es un alias! ojo! en Fedora no está!) es un alias al grub-mkconfig!

Podemos tener un almacén de ISOs, podemos añadir una entrada para cada iso que tengamos. Ver apuntes profe sobre Grub.

OJO hay un parámetro e arranque del kernel que permite arrancar linux modo terminal en modo ROOT sin que te pida la contraseña!!! MUY PELIGROSO.

para evitar esto, se puede proteger una entrada del grub con contraseña.

Buscar info tema modo “Grub”


Udev

Mecanismo dentro del sistema para reconocer en tiempo real el hardware que se enchufa y se desenchufa en la máquina.


Udev también está siendo engullido por el systemd!
Udev ha sido integrado en el systemd!



buscamos información del dispositivo, primero sabiendo la ruta real de la informacion del dispositivo y luego, consultándola

comando1 $(comando2) => el comando1 recibe el resultado de comando2.

archivos de reglas del udev:
/etc/udev/rules.d/ -> reglas personalizadas, las ponemos aquí
/lib/udev/rules.d/ -> reglas que en principio no tendria que tocar, ya vienen hechas y en principio están bien. Provienen de la instalación


Con esto, se podría ejecutar comandos cada vez que conectemos cierto dispositivo,



SYMLINK: añadirle otro nombre a parte del nombre original del dispositivo