Organización del sistema de archivos de Linux

luisllamas - organizacion sistema archivos en linux

En Linux, todo está organizado como un gran “mapa” bajo la raíz /: directorios, permisos, metadatos y puntos de montaje que hacen posible que el sistema (y tú) ubiquen cada cosa con precisión. Por eso, entender el Linux File System (sistema de archivos de Linux) no es solo teoría: es la base para administrar, depurar y mantener cualquier equipo o servidor con soltura.

Luis Llamas lo explica de forma clara y con ejemplos, y además suma un toque interactivo para practicar el razonamiento detrás de cómo se estructuran los directorios y qué significa encontrarte (o no) ciertos archivos donde deberían estar. Ideal si estás empezando, pero también si ya tocas Linux a diario y quieres afinar tu “brújula” cuando algo no cuadra.

https://www.luisllamas.es/organizacion-sistema-de-archivos-en-linux/

Comandos su y sudo en Linux: qué son, en qué se diferencian y cómo usarlos bien

sudo su

Valencia, 16/08/2026, G.B.
Si administras un sistema Linux, tarde o temprano necesitas ejecutar algo con privilegios de administrador. Para eso existen dos comandos clásicos: su y sudo. Se confunden a menudo porque hacen «cosas parecidas», pero funcionan de forma bastante distinta y esa diferencia importa, sobre todo en seguridad.

Qué hace su

su (substitute user) cambia de usuario dentro de la misma sesión de terminal, sin cerrar la sesión actual. Si lo ejecutas sin argumentos, intenta convertirte en root:

su

Te pedirá la contraseña de root. El problema en distribuciones como Ubuntu es que, por defecto, la cuenta root no tiene contraseña establecida (está bloqueada), así que su a secas no funciona salvo que la actives manualmente con sudo passwd root.

Un matiz importante que mucha gente pasa por alto: su sin el guión no carga el entorno completo del usuario destino (variables de entorno, PATH, etc.), lo que puede provocar errores de «orden no encontrada». La forma correcta es:

su -

Esto sí simula un login completo como root, con su propio entorno.

También puedes cambiar a otro usuario que no sea root:

su - nombreusuario

Y ejecutar un único comando como ese usuario sin abrir una sesión interactiva completa:

su nombreusuario -c 'whoami'

Qué hace sudo

sudo (superuser do) no cambia de usuario: ejecuta un comando puntual con privilegios elevados, pidiendo tu propia contraseña, no la de root.

sudo apt update
sudo systemctl restart nginx

Esto es justo lo que hace que Ubuntu y macOS desactiven la contraseña de root por defecto: en vez de compartir una contraseña maestra entre varios administradores, cada uno usa la suya y sudo decide, según el fichero /etc/sudoers, qué puede hacer cada cual.

Si necesitas una sesión completa como root en lugar de un comando suelto, existe el equivalente moderno:

sudo -i

Es prácticamente lo mismo que su -, pero pasando por el mecanismo de autenticación de sudo.

Diferencias clave (resumen práctico)

susudo
Contraseña que pideLa del usuario destino (root)La tuya propia
Uso típicoAbrir una sesión completaEjecutar un comando puntual
Registro de auditoríaLimitadoRegistra en /var/log/auth.log quién ejecutó qué y cuándo
Granularidad de permisosTodo o nadaSe puede limitar por comando, usuario o grupo
Estado en UbuntuRoot bloqueado por defectoHabilitado y recomendado

Este último punto es la razón real por la que sudo se ha impuesto: permite dar acceso administrativo limitado (por ejemplo, solo a systemctl restart nginx, no a todo el sistema), mientras que su es binario: o tienes la contraseña de root, o no tienes nada.

Configurar quién puede usar sudo

Los permisos se definen en /etc/sudoers, pero nunca se edita directamente con un editor de texto normal: un error de sintaxis ahí puede dejarte sin forma de recuperar privilegios de administrador. Se usa siempre:

sudo visudo

visudo bloquea el archivo, valida la sintaxis antes de guardar y evita dejar el sistema en un estado roto.

Hoy en día se recomienda no tocar /etc/sudoers en sí, sino añadir ficheros propios en /etc/sudoers.d/, por ejemplo:

sudo visudo -f /etc/sudoers.d/miusuario

Con una línea como esta le das a un usuario acceso completo:

miusuario ALL=(ALL:ALL) ALL

O, de forma mucho más segura, acceso solo a un comando concreto sin pedir contraseña (útil para scripts automatizados o tareas programadas):

deploy ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx

Añadir a un usuario al grupo sudo (en Ubuntu/Debian) tiene el mismo efecto que la primera línea, y suele ser más práctico que editar ficheros a mano:

sudo usermod -aG sudo nombreusuario

Comandos de sudo que conviene conocer

  • sudo -l — lista qué comandos puede ejecutar tu usuario con sudo.
  • sudo -k — invalida la caché de autenticación, así el próximo sudo te vuelve a pedir contraseña.
  • sudo -v — refresca el «ticket» de sudo sin ejecutar ningún comando.
  • sudo !! — repite el último comando pero con sudo delante (muy útil cuando olvidas anteponerlo).

Sobre este último: por defecto, tras autenticarte con sudo, el sistema no vuelve a pedir contraseña durante 15 minutos. Es cómodo, pero también un riesgo si dejas la terminal desatendida. Se puede ajustar (o eliminar) ese margen con Defaults timestamp_timeout=0 en /etc/sudoers.d/.

sudo su: el atajo que todo el mundo usa

Es habitual ver esta combinación:

sudo su

Aquí pides tu propia contraseña (vía sudo) para lanzar una sesión de root (vía su), sin necesidad de activar nunca la contraseña de root. Es el método recomendado si de verdad necesitas una shell interactiva como root en un sistema Ubuntu moderno, en lugar de activar la cuenta root manualmente.

Alternativa más moderna: doas

En distribuciones más minimalistas (OpenBSD, y disponible también en Debian/Ubuntu vía paquete) existe doas, pensado como una alternativa ligera a sudo, con una configuración mucho más simple en /etc/doas.conf. No ha desplazado a sudo en el mundo Ubuntu/Debian, pero es una opción a tener en cuenta en entornos donde se prioriza minimizar la superficie de ataque.

Buenas prácticas

  1. Evita trabajar como root de forma continua; usa sudo comando a comando.
  2. Nunca edites /etc/sudoers sin visudo.
  3. Da permisos específicos por comando (NOPASSWD con ruta exacta) en vez de acceso total cuando sea posible, especialmente para cuentas de automatización.
  4. Revisa /var/log/auth.log periódicamente si gestionas un servidor con varios administradores; ahí queda constancia de cada uso de sudo.
  5. Ten en cuenta que sudo -s abre un shell que no registra los comandos que escribas dentro de él, a diferencia de invocaciones individuales de sudo comando. Si te importa la auditoría, evita ese patrón.

En resumen

su cambia de identidad; sudo presta privilegios para una acción concreta sin dejar de ser tú mismo. En cualquier sistema Ubuntu o Debian actual, la recomendación sigue siendo la misma que hace más de una década: usa sudo para el día a día, reserva sudo -i o sudo su para cuando de verdad necesites una shell completa como root, y controla los permisos finos vía visudo y /etc/sudoers.d/.

Comandos para configurar Debian desde terminal

Valencia, 13/08/2026, G.B.
Dejo un repaso práctico con comandos que suelen funcionar en Debian actuales para tareas comunes: identificar la versión, actualizar el sistema, configurar red (IP/DNS), revisar historial, gestionar discos, procesos, directorios/ficheros, usuarios y operaciones básicas.

Estructura y puntos principales (índice)

El contenido se divide en 10 bloques, cada uno con comandos concretos y listos para copiar:

  • Identificación del sistema — cat /etc/os-release y cat /etc/debian_version para saber la versión exacta de Debian.
  • Actualización de paquetes — diferencia claramente entre apt update, apt upgrade y apt full-upgrade, explicando que este último puede implicar remociones de paquetes incompatibles; añade autoremove y clean para limpieza de caché.
  • Configuración de red — cubre visualización de interfaces (ip link, ip addr, ip route), asignación temporal de IP y gateway, y edición de /etc/resolv.conf para DNS. Incluye una nota práctica útil: en sistemas donde NetworkManager o systemd-resolved gestionan la red, los cambios manuales al resolv.conf pueden revertirse si no se ajusta también el gestor de red.
  • Historial de comandos — history, borrado selectivo (history -d) y limpieza de pantalla.
  • Discos y particiones — lsblk, fdisk -l, df -h.
  • Procesos — listado con ps aux y terminación de procesos, distinguiendo kill de kill -9.
  • Directorios — operaciones básicas de creación, borrado y navegación.
    Ficheros — creación con touch y concatenación con cat.
  • Usuarios — cambio de contraseña, creación de usuarios, bloqueo de cuentas (passwd -l).
  • Operaciones del sistema — reinicio y apagado.

1) Comprobar sistema y versión de Debian

cat /etc/os-release

Versión específica:

cat /etc/debian_version

2) Actualizar paquetes y sistema

Actualizar listas de paquetes:

sudo apt update

Actualizar paquetes instalados (sin cambios agresivos):

sudo apt upgrade

Actualizar incluyendo dependencias que puedan requerir cambios/remociones (remociones se refiere a desinstalar algunos paquetes que ya no encajan con las nuevas dependencias, o que no se pueden mantener mientras el sistema queda consistente) si es necesario:

sudo apt full-upgrade

Si necesitas limpiar caché:

sudo apt autoremove
sudo apt clean

3) Configurar la red

Ver interfaces y direcciones

ip link
ip addr

Ver la ruta (por dónde sale el tráfico):

ip route

Configuración temporal de IP (para probar)

Asignar IP a una interfaz (temporal, hasta reiniciar o cambiar la configuración persistente):

sudo ip addr add 192.168.1.49/24 dev eth0

Eliminar esa IP:

sudo ip addr del 192.168.1.49/24 dev eth0

Añadir gateway por defecto (si aplica):

sudo ip route add default via 192.168.1.1

Quitar gateway por defecto:

sudo ip route del default via 192.168.1.1

DNS (nameservers)

Editar el fichero de resolución:

sudo nano /etc/resolv.conf

Añadir líneas como:

nameserver 192.168.0.1
nameserver 87.216.1.65

Nota práctica: en algunas instalaciones, /etc/resolv.conf lo gestiona NetworkManager o systemd-resolved. Si al editar “se revierte”, hay que ajustar la configuración en el gestor de red.

4) Historial de comandos

history

Mostrar los últimos 10:

history 10

Borrar historial:

history -c

Borrar una línea concreta (índice del historial):

history -d 342

Borrar la pantalla:

clear

5) Discos y particiones

Listar dispositivos/particiones:

lsblk

Ver particiones con detalle:

sudo fdisk -l

Ver espacio libre y puntos de montaje:

df -h

6) Procesos

Ver procesos en ejecución:

ps aux

Matar un proceso (por PID):

sudo kill -9 <PID>

(Para matar sin -9 cuando sea posible):

sudo kill <PID>

7) Directorios

Crear directorios:

mkdir directorio1 directorio2

Borrar directorio vacío:

rmdir directorio

Borrar directorio no vacío (con cuidado):

rm -r directorio

Mostrar directorio actual:

pwd

Listar contenido:

ls

Listar con permisos y propietarios:

ls -l

Volver al home:

cd ~

8) Ficheros

Crear un archivo vacío:

touch nombrearchivo

Crear un archivo concatenando dos archivos:

cat archivo1 archivo2 > suma

9) Usuarios

Cambiar contraseña del usuario actual:

passwd

Crear un usuario:

sudo useradd pruebas

Establecer contraseña del usuario:

sudo passwd pruebas

Bloquear el acceso por contraseña (bloquear cuenta):

sudo passwd -l pruebas

Mostrar usuarios (lista de /etc/passwd):

cat /etc/passwd

10) Operaciones básicas del sistema

Reiniciar:

sudo reboot

Apagar:

sudo shutdown -h now

ddgr: busca en DuckDuckGo desde la terminal en Linux (comandos y ejemplos)

ddgr
ddgr es una utilidad de búsqueda en DuckDuckGo desde la terminal. En lugar de abrir un navegador, introduces palabras clave y ddgr consulta DuckDuckGo, muestra resultados en texto y (opcionalmente) puede abrir enlaces en tu navegador. Está pensado para usuarios que prefieren la consola o para integrar búsquedas rápidas en flujos de trabajo en Linux.

Cómo instalar ddgr en Ubuntu (Ubuntu MATE 22.04)

La instalación más sencilla suele ser con Snap.

  1. Instala Snapd:
    sudo apt update
    sudo apt install snapd
  2. Instala ddgr:
    sudo snap install ddgr
  3. Comprueba que funciona:
    ddgr --version

¿Para qué sirve?

ddgr sirve para:

  • Buscar en DuckDuckGo sin salir del terminal.
  • Ver resultados en texto de forma rápida.
  • Abrir enlaces directamente en el navegador (opcional).
  • Aplicar filtros: región, tiempo, sitios concretos, etc.
  • Integrarse en scripts (por ejemplo, con salida JSON).

Comandos rápidos

Búsqueda simple

ddgr "noticias España"

Más resultados por página

ddgr -n 25 "noticias España"

Con -n defines cuántos resultados por página mostrar. Si N=0, muestra el número real de resultados consultados por página.

Abrir el primer resultado en el navegador

ddgr --ducky "noticias España"

Buscar y salir (sin interacción)

ddgr --np "noticias España"

Mostrar URLs completas

ddgr -x "noticias España"

Buscar por región

ddgr -r us-en "weather"

Limitar por tiempo

ddgr -t w "economía"

Opciones habituales: d (días), w (semana), m (mes), y (año).

Limitar a un sitio

ddgr -w example.com "guía Linux"

Desactivar safe search (avanzado)

ddgr --unsafe "término"

Salida en JSON (útil para scripts)

ddgr --json "noticias España"

Teclas del modo interactivo (omniprompt)

Cuando ddgr te muestra resultados, puedes usar estas teclas:

  • n, p, f: siguiente, anterior o primera página.
  • index: abre el resultado asociado a ese índice.
  • o index/rango/a...: abre varios resultados.
  • O ...: como o, pero intentando abrir en navegador GUI.
  • c index: copia la URL al portapapeles.
  • x: alterna mostrar URL expandida.
  • q (o Ctrl+D / doble Enter): salir.
  • ?: muestra ayuda del omniprompt.
  • d keywords: inicia una nueva búsqueda manteniendo las opciones originales pero cambiando el texto.
  • Si escribes otro texto, se considera como una nueva búsqueda.

Ejemplos prácticos

Abrir el resultado nº 3

ddgr "noticias España"

(luego escribe 3 cuando aparezca el omniprompt)

Abrir varios resultados

ddgr "tecnología"

(por ejemplo, luego usa o 1 3 5)

Abrir el primer resultado directamente

ddgr --ducky "Linux Ubuntu MATE"

Buscar sin interacción y con URLs completas

ddgr --np -x "eventos Valencia"

📦 Script de copia de seguridad en Linux de tu carpeta home con rsync

Ya tengo un script para copias de seguridad en mi PC con Linux, pero utilizo el comando cp.  El problema es que cp no tiene opción –exclude nativa, por lo que la solución más limpia es sustituirlo por rsync, que es su equivalente mejorado y acepta exclusiones. El resultado es idéntico en cuanto a la copia, pero con control total sobre lo que se incluye.

Las rutas de caché a excluir (en mi caso particular, aunque no son todas)  son:

  • Chromium: .cache/chromium
  • Brave: .cache/BraveSoftware
  • Firefox: .cache/mozilla

NOTA: Ojo, que en mi caso Chromium y Firefox están instalados con snap!

Aquí está el script con bash en miaso particular -copiando a un disc duro externo SSD denominado 224GB : Continuar leyendo «📦 Script de copia de seguridad en Linux de tu carpeta home con rsync»

🚨 URGENTE: Vulnerabilidad del kernel «Copy Fail» (CVE-2026-31431): Acción inmediata requerida

Adjunto una taducción al castellano del artículo del soporte de Nextcloud sobre la reciente vulnerabilidad del Kernel de Linux: Linux Kernel Vulnerability “Copy Fail” (CVE-2026-31431) — Immediate Action Required

Una vulnerabilidad crítica del kernel de Linux conocida como «Copy Fail» (CVE-2026-31431) está siendo activamente discutida y ya cuenta con código de explotación público y fiable disponible.

Esto no es teórico. Esto no es un caso aislado. Si tu sistema es vulnerable y un atacante obtiene cualquier forma de acceso local, el compromiso total como root es trivial.

🔥 Por qué es excepcionalmente peligrosa

  • Afecta a kernels de Linux con muchos años de antigüedad
  • La explotación es determinista (sin condiciones de carrera, sin suposiciones)
  • Funciona en múltiples distribuciones con escasas o ninguna modificación
  • No deja rastros en el disco (las comprobaciones de integridad de archivos no sirven de nada)

En la práctica equivale a: un exploit → root en casi cualquier sistema

Continuar leyendo «🚨 URGENTE: Vulnerabilidad del kernel «Copy Fail» (CVE-2026-31431): Acción inmediata requerida»

🐚Un pequeño script en Bash para decodificar URLs (direcciones web)

Dejo un pequeño script realizado en Bash (uso en GNU/Linux), para decodificar direcciones web, como por ejemplo los enlaces adjuntados en los correos electrónicos cuando accedes al servicio GMX vía webmail.

Recuerda que tienes que darle permisos de ejecución primero:

chmod +x decodeURL.sh

NOTA: El comando sudo al principio no es necesario, ya que el archivo es tuyo (lo acabas de crear) y por lo tanto tienes permisos para modificarlo sin necesidad de ser superusuario. Usar sudo innecesariamente es además una mala práctica que conviene no fomentar.

Luego lo ejecutas así:

./decodeURL.sh

Aquí va: Continuar leyendo «🐚Un pequeño script en Bash para decodificar URLs (direcciones web)»

Instalación de FortiClient en Linux (Ubuntu)

NOTA: Como lo tenía solo escrito en los foros de Puntocomunica, lo publico también aquí, en Indaga.net. el ejemplo es para una distro basada en Debian, en concreto Ubuntu Mate 22.04.x…

– Descargar la nueva versión: Ve al sitio web oficial de Fortinet y descarga la versión más reciente de FortiClient para Linux: https://links.fortinet.com/forticlient/deb/vpnagent (.deb)

– Instalar dependencias necesarias (si es necesario): Continuar leyendo «Instalación de FortiClient en Linux (Ubuntu)»

Cómo proteger tu sitio de WordPress: configuraciones esenciales en el archivo .htaccess

El archivo .htaccess es una herramienta poderosa para gestionar la configuración de tu sitio web en un servidor Apache. En el caso de WordPress, puedes utilizarlo para mejorar la seguridad, optimizar el rendimiento y proteger tu contenido.

Vamos a ver cómo puedes configurar tu archivo .htaccess para proteger tu sitio de WordPress, incluyendo la redirección a HTTPS, la eliminación de hotlinking, el bloqueo de acceso a archivos de configuración y la prohibición de IPs maliciosas.
Continuar leyendo «Cómo proteger tu sitio de WordPress: configuraciones esenciales en el archivo .htaccess»

Atajos de teclado o shortcuts en Linux

Aunque esto lo he publicado en una intranet de mi trabajo, quiero publicarlo aquí también, en Indaga.net. ¿Y por qué? Porque esa intranet es privada y la información solo llegará a los usuarios de la misma. Aquí llegará a todos los que quieran… Así pues, veamos los atajos de teclado (shortcuts) más comunes y útiles en Linux:

Atajos generales

  • Ctrl + Alt + T: Abre una terminal.
  • Ctrl + C: Cancela el comando actual en la terminal.
  • Ctrl + Z: Suspende el comando actual en la terminal.
  • Ctrl + D: Cierra la terminal o finaliza la entrada en la terminal.
  • Ctrl + A: Mueve el cursor al inicio de la línea en la terminal.
  • Ctrl + E: Mueve el cursor al final de la línea en la terminal.

Navegación en la terminal

  • Ctrl + R: Busca en el historial de comandos.
  • Ctrl + L: Limpia la pantalla de la terminal.
  • Tab: Autocompleta nombres de archivos y comandos.

Gestión de ventanas

  • Alt + Tab: Cambia entre aplicaciones abiertas.
  • Super (Tecla de Windows) + D: Muestra el escritorio.
  • Super + L: Bloquea la pantalla.

Atajos en el entorno de escritorio

  • Ctrl + Shift + N: Crea una nueva carpeta en el explorador de archivos.
  • Ctrl + P: Imprime el documento actual (en aplicaciones compatibles).
  • Ctrl + S: Guarda el documento actual.

Navegación en el navegador

  • Ctrl + T: Abre una nueva pestaña.
  • Ctrl + W: Cierra la pestaña actual.
  • Ctrl + Shift + T: Reabre la última pestaña cerrada.

Edición de texto

  • Ctrl + X: Corta el texto seleccionado.
  • Ctrl + C: Copia el texto seleccionado.
  • Ctrl + V: Pega el texto copiado o cortado.
  • Ctrl + Z: Deshace la última acción.
  • Ctrl + Y: Rehace la última acción.

Estos atajos pueden variar ligeramente dependiendo del entorno de escritorio que estés utilizando (como GNOME, KDE, XFCE, etc.), pero en general, muchos de ellos son estándar en la mayoría de las distribuciones de Linux.